From ad66f47ab52be4162a75c15e3a3ee8bd3fc043eb Mon Sep 17 00:00:00 2001 From: "jst%netscape.com" Date: Sat, 10 Nov 2001 07:36:19 +0000 Subject: [PATCH] Checking in Fabian's patch for bug 105640. Add support for IE's document.compatMode property. r=sicking@bigfoot.com, sr=jst@netscape.com git-svn-id: svn://10.0.0.236/trunk@107824 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/document/src/nsHTMLDocument.cpp | 20 +++++++++++++++++++ .../public/idl/html/nsIDOMNSHTMLDocument.idl | 2 ++ 2 files changed, 22 insertions(+) diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index 32192dd85b5..e33dba016c7 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -3051,6 +3051,26 @@ nsHTMLDocument::RouteEvent(nsIDOMEvent* aEvt) return NS_OK; } +// readonly attribute DOMString compatMode; +// Returns "BackCompat" if we are in quirks mode, +// "CSS1Compat" if we are in strict mode. See bug 105640. +// This was implemented to match MSIE's compatMode property +NS_IMETHODIMP +nsHTMLDocument::GetCompatMode(nsAWritableString& aCompatMode) +{ + aCompatMode.Truncate(); + NS_ASSERTION((mDTDMode == eDTDMode_quirks) || (mDTDMode == eDTDMode_strict), + "mDTDMode is neither quirks nor strict for this document"); + + if (mDTDMode == eDTDMode_quirks) { + aCompatMode.Assign(NS_LITERAL_STRING("BackCompat")); + } else { + aCompatMode.Assign(NS_LITERAL_STRING("CSS1Compat")); + } + + return NS_OK; +} + static PRBool PR_CALLBACK NameHashCleanupEnumeratorCallback(nsHashKey *aKey, void *aData, void* closure) { diff --git a/mozilla/dom/public/idl/html/nsIDOMNSHTMLDocument.idl b/mozilla/dom/public/idl/html/nsIDOMNSHTMLDocument.idl index 77ef15b085b..31a2508c48d 100644 --- a/mozilla/dom/public/idl/html/nsIDOMNSHTMLDocument.idl +++ b/mozilla/dom/public/idl/html/nsIDOMNSHTMLDocument.idl @@ -64,4 +64,6 @@ interface nsIDOMNSHTMLDocument : nsISupports void captureEvents(in long eventFlags); void releaseEvents(in long eventFlags); void routeEvent(in nsIDOMEvent evt); + + readonly attribute DOMString compatMode; };