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!
//