From fac9cd65179d7da957ab0fb6db1e81ba663e2a2d Mon Sep 17 00:00:00 2001 From: "jst%mozilla.jstenback.com" Date: Fri, 30 Apr 2004 17:44:53 +0000 Subject: [PATCH] Checking in patch by smaug@welho.com. Fixing bug 242151. Making document.body work right in XHTML documents when the body is a frameset element. Also fixing a compiler warning while I'm at it. r+sr=jst@mozilla.jstenback.com git-svn-id: svn://10.0.0.236/trunk@155758 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/document/src/nsHTMLDocument.cpp | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index 109df229943..2d4a69c7fd7 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -1719,20 +1719,23 @@ nsHTMLDocument::GetBody(nsIDOMHTMLElement** aBody) nsCOMPtr nodeList; - // XXX: This is not quite right, and we should deal with XHTML - // here too. - nsresult rv = GetElementsByTagName(NS_LITERAL_STRING("frameset"), - getter_AddRefs(nodeList)); - if (NS_FAILED(rv)) - return rv; + nsresult rv; + if (IsXHTML()) { + rv = GetElementsByTagNameNS(NS_LITERAL_STRING(NS_HTML_NAMESPACE), + NS_LITERAL_STRING("frameset"), + getter_AddRefs(nodeList)); + } else { + rv = GetElementsByTagName(NS_LITERAL_STRING("frameset"), + getter_AddRefs(nodeList)); + } if (nodeList) { - rv = nodeList->Item(0, getter_AddRefs(node)); - if (NS_FAILED(rv)) - return rv; + rv |= nodeList->Item(0, getter_AddRefs(node)); element = node; } + + NS_ENSURE_SUCCESS(rv, rv); } return element ? CallQueryInterface(element, aBody) : NS_OK; @@ -2175,7 +2178,7 @@ nsHTMLDocument::Open(PRBool aReplace, nsIDOMDocument** aReturn) return CallQueryInterface(this, aReturn); } -#define NS_GENERATE_PARSER_KEY() (void*)((mIsWriting << 31) | (mWriteLevel & 0x7fffffff)) +#define NS_GENERATE_PARSER_KEY() NS_INT32_TO_PTR((mIsWriting << 31) | (mWriteLevel & 0x7fffffff)) NS_IMETHODIMP nsHTMLDocument::Clear()