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; };