diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp
index f0de7b459c5..74ede1196b7 100644
--- a/mozilla/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/htmlparser/src/CNavDTD.cpp
@@ -706,7 +706,7 @@ nsresult CNavDTD::HandleToken(CToken* aToken,nsIParser* aParser){
if(!FindTagInSet(theTag,passThru,sizeof(passThru)/sizeof(eHTMLTag_unknown))){
if(!gHTMLElements[eHTMLTag_html].SectionContains(theTag,PR_FALSE)) {
if((!mHadBody) && (!mHadFrameset)){
- if(mHasOpenHead) {
+ if(mHasOpenHead) {
//just fall through and handle current token
if(!gHTMLElements[eHTMLTag_head].IsChildOfHead(theTag)){
@@ -1333,6 +1333,7 @@ nsresult CNavDTD::HandleStartToken(CToken* aToken) {
break;
case eHTMLTag_userdefined:
+ case eHTMLTag_noscript: //HACK XXX! Throw noscript on the floor for now.
isTokenHandled=PR_TRUE;
break;
@@ -2515,6 +2516,7 @@ nsresult CNavDTD::OpenHead(const nsIParserNode *aNode){
*/
nsresult CNavDTD::CloseHead(const nsIParserNode *aNode){
nsresult result=NS_OK;
+
if(mHasOpenHead) {
if(0==--mHasOpenHead){
@@ -3198,12 +3200,12 @@ nsresult CNavDTD::AddHeadLeaf(nsIParserNode *aNode){
//this code has been added to prevent tags from being processed inside
//the document if the tag itself was found in a , , or tag.
eHTMLTags theTag=(eHTMLTags)aNode->GetNodeType();
+
if(eHTMLTag_meta==theTag)
if(HasOpenContainer(gNoXTags,sizeof(gNoXTags)/sizeof(eHTMLTag_unknown))) {
return result;
}
-
if(mSink) {
result=OpenHead(aNode);
if(NS_OK==result) {
diff --git a/mozilla/htmlparser/src/nsElementTable.cpp b/mozilla/htmlparser/src/nsElementTable.cpp
index cea8c7f7d6a..5033a356a7d 100644
--- a/mozilla/htmlparser/src/nsElementTable.cpp
+++ b/mozilla/htmlparser/src/nsElementTable.cpp
@@ -131,7 +131,7 @@ TagList gFormKids={1,{eHTMLTag_keygen}};
TagList gFramesetKids={3,{eHTMLTag_frame,eHTMLTag_frameset,eHTMLTag_noframes}};
TagList gHtmlKids={9,{eHTMLTag_body,eHTMLTag_frameset,eHTMLTag_head,eHTMLTag_map,eHTMLTag_noscript,eHTMLTag_noframes,eHTMLTag_script,eHTMLTag_newline,eHTMLTag_whitespace}};
-TagList gHeadKids={8,{eHTMLTag_base,eHTMLTag_bgsound,eHTMLTag_link,eHTMLTag_meta,eHTMLTag_script,eHTMLTag_style,eHTMLTag_title,eHTMLTag_noembed}};
+TagList gHeadKids={9,{eHTMLTag_base,eHTMLTag_bgsound,eHTMLTag_link,eHTMLTag_meta,eHTMLTag_script,eHTMLTag_style,eHTMLTag_title,eHTMLTag_noembed,eHTMLTag_noscript}};
TagList gLabelKids={1,{eHTMLTag_span}};
TagList gLIKids={2,{eHTMLTag_ol,eHTMLTag_ul}};
@@ -911,7 +911,7 @@ void InitializeElementTable(void) {
/*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity|kSelf, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
- /*special parents,kids,skip*/ 0,0,eHTMLTag_unknown);
+ /*special parents,kids,skip*/ 0,0,eHTMLTag_noscript);
Initialize(
/*tag*/ eHTMLTag_object,
diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp
index f0de7b459c5..74ede1196b7 100644
--- a/mozilla/parser/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp
@@ -706,7 +706,7 @@ nsresult CNavDTD::HandleToken(CToken* aToken,nsIParser* aParser){
if(!FindTagInSet(theTag,passThru,sizeof(passThru)/sizeof(eHTMLTag_unknown))){
if(!gHTMLElements[eHTMLTag_html].SectionContains(theTag,PR_FALSE)) {
if((!mHadBody) && (!mHadFrameset)){
- if(mHasOpenHead) {
+ if(mHasOpenHead) {
//just fall through and handle current token
if(!gHTMLElements[eHTMLTag_head].IsChildOfHead(theTag)){
@@ -1333,6 +1333,7 @@ nsresult CNavDTD::HandleStartToken(CToken* aToken) {
break;
case eHTMLTag_userdefined:
+ case eHTMLTag_noscript: //HACK XXX! Throw noscript on the floor for now.
isTokenHandled=PR_TRUE;
break;
@@ -2515,6 +2516,7 @@ nsresult CNavDTD::OpenHead(const nsIParserNode *aNode){
*/
nsresult CNavDTD::CloseHead(const nsIParserNode *aNode){
nsresult result=NS_OK;
+
if(mHasOpenHead) {
if(0==--mHasOpenHead){
@@ -3198,12 +3200,12 @@ nsresult CNavDTD::AddHeadLeaf(nsIParserNode *aNode){
//this code has been added to prevent tags from being processed inside
//the document if the tag itself was found in a , , or tag.
eHTMLTags theTag=(eHTMLTags)aNode->GetNodeType();
+
if(eHTMLTag_meta==theTag)
if(HasOpenContainer(gNoXTags,sizeof(gNoXTags)/sizeof(eHTMLTag_unknown))) {
return result;
}
-
if(mSink) {
result=OpenHead(aNode);
if(NS_OK==result) {
diff --git a/mozilla/parser/htmlparser/src/nsElementTable.cpp b/mozilla/parser/htmlparser/src/nsElementTable.cpp
index cea8c7f7d6a..5033a356a7d 100644
--- a/mozilla/parser/htmlparser/src/nsElementTable.cpp
+++ b/mozilla/parser/htmlparser/src/nsElementTable.cpp
@@ -131,7 +131,7 @@ TagList gFormKids={1,{eHTMLTag_keygen}};
TagList gFramesetKids={3,{eHTMLTag_frame,eHTMLTag_frameset,eHTMLTag_noframes}};
TagList gHtmlKids={9,{eHTMLTag_body,eHTMLTag_frameset,eHTMLTag_head,eHTMLTag_map,eHTMLTag_noscript,eHTMLTag_noframes,eHTMLTag_script,eHTMLTag_newline,eHTMLTag_whitespace}};
-TagList gHeadKids={8,{eHTMLTag_base,eHTMLTag_bgsound,eHTMLTag_link,eHTMLTag_meta,eHTMLTag_script,eHTMLTag_style,eHTMLTag_title,eHTMLTag_noembed}};
+TagList gHeadKids={9,{eHTMLTag_base,eHTMLTag_bgsound,eHTMLTag_link,eHTMLTag_meta,eHTMLTag_script,eHTMLTag_style,eHTMLTag_title,eHTMLTag_noembed,eHTMLTag_noscript}};
TagList gLabelKids={1,{eHTMLTag_span}};
TagList gLIKids={2,{eHTMLTag_ol,eHTMLTag_ul}};
@@ -911,7 +911,7 @@ void InitializeElementTable(void) {
/*autoclose starttags and endtags*/ 0,0,0,0,
/*parent,incl,exclgroups*/ kBlock, kFlowEntity|kSelf, kNone,
/*special props, prop-range*/ 0, kNoPropRange,
- /*special parents,kids,skip*/ 0,0,eHTMLTag_unknown);
+ /*special parents,kids,skip*/ 0,0,eHTMLTag_noscript);
Initialize(
/*tag*/ eHTMLTag_object,