diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index 1462b4db145..03f0a5972f5 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -1314,7 +1314,6 @@ SinkContext::OpenContainer(const nsIParserNode& aNode) case eHTMLTag_noembed: case eHTMLTag_noframes: - case eHTMLTag_nolayer: case eHTMLTag_noscript: mSink->mInsideNoXXXTag++; break; diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index 448a5ea672c..5178e1c209a 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -530,6 +530,7 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, static NS_DEFINE_IID(kCParserIID, NS_IPARSER_IID); static NS_DEFINE_IID(kCParserCID, NS_PARSER_IID); + static NS_DEFINE_IID(kParserBundleIID, NS_IPARSER_BUNDLE_IID); if (needsParser) { @@ -554,6 +555,21 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, NS_PRECONDITION(nsnull != aContainer, "No content viewer container"); nsCOMPtr docShell(do_QueryInterface(aContainer)); + if(mParser) { + nsCOMPtr webShellServices(do_QueryInterface(docShell)); + nsISupportsParserBundle* parserBundle=nsnull; + + nsresult result=mParser->QueryInterface(kParserBundleIID,(void**)&parserBundle); + + if(NS_SUCCEEDED(result)) { + // We do this to help consumers who don't have access to the webshell. + nsAutoString theID; + theID.AssignWithConversion("webshell"); + parserBundle->SetDataIntoBundle(theID,webShellServices); + NS_IF_RELEASE(parserBundle); + } + } + // // The following logic is mirrored in nsWebShell::Embed! // diff --git a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp index 1462b4db145..03f0a5972f5 100644 --- a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp @@ -1314,7 +1314,6 @@ SinkContext::OpenContainer(const nsIParserNode& aNode) case eHTMLTag_noembed: case eHTMLTag_noframes: - case eHTMLTag_nolayer: case eHTMLTag_noscript: mSink->mInsideNoXXXTag++; break; diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp index 448a5ea672c..5178e1c209a 100644 --- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp @@ -530,6 +530,7 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, static NS_DEFINE_IID(kCParserIID, NS_IPARSER_IID); static NS_DEFINE_IID(kCParserCID, NS_PARSER_IID); + static NS_DEFINE_IID(kParserBundleIID, NS_IPARSER_BUNDLE_IID); if (needsParser) { @@ -554,6 +555,21 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, NS_PRECONDITION(nsnull != aContainer, "No content viewer container"); nsCOMPtr docShell(do_QueryInterface(aContainer)); + if(mParser) { + nsCOMPtr webShellServices(do_QueryInterface(docShell)); + nsISupportsParserBundle* parserBundle=nsnull; + + nsresult result=mParser->QueryInterface(kParserBundleIID,(void**)&parserBundle); + + if(NS_SUCCEEDED(result)) { + // We do this to help consumers who don't have access to the webshell. + nsAutoString theID; + theID.AssignWithConversion("webshell"); + parserBundle->SetDataIntoBundle(theID,webShellServices); + NS_IF_RELEASE(parserBundle); + } + } + // // The following logic is mirrored in nsWebShell::Embed! //