From 5288903c8f951151bff052d312d8c1373417a3ff Mon Sep 17 00:00:00 2001 From: "harishd%netscape.com" Date: Wed, 21 Jun 2000 20:50:00 +0000 Subject: [PATCH] Fix bug 40713 ( nsbeta2+ ) - Style should leak out of TABLE. r=dbaron@fas.harvard.edu git-svn-id: svn://10.0.0.236/trunk@72804 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/htmlparser/src/CNavDTD.cpp | 6 +++++- mozilla/htmlparser/src/nsElementTable.cpp | 4 ++-- mozilla/parser/htmlparser/src/CNavDTD.cpp | 6 +++++- mozilla/parser/htmlparser/src/nsElementTable.cpp | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp index 61e4b8718c4..71c5d8895b3 100644 --- a/mozilla/htmlparser/src/CNavDTD.cpp +++ b/mozilla/htmlparser/src/CNavDTD.cpp @@ -3291,7 +3291,11 @@ nsresult CNavDTD::CloseContainersTo(PRInt32 anIndex,eHTMLTags aTarget, PRBool aC #ifdef ENABLE_RESIDUALSTYLE PRBool theTagIsStyle=nsHTMLElement::IsResidualStyleTag(theTag); - PRBool theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut); + // If the current tag cannot leak out then we shouldn't leak out of the target - Fix 40713 + PRBool theStyleDoesntLeakOut = gHTMLElements[theTag].HasSpecialProperty(kNoStyleLeaksOut); + if(!theStyleDoesntLeakOut) { + theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut); + } // (aClosedByStartTag) ? gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut) // : gHTMLElements[theParent].HasSpecialProperty(kNoStyleLeaksOut); diff --git a/mozilla/htmlparser/src/nsElementTable.cpp b/mozilla/htmlparser/src/nsElementTable.cpp index 3c0bbdf2a4c..f0a3ef0e52a 100644 --- a/mozilla/htmlparser/src/nsElementTable.cpp +++ b/mozilla/htmlparser/src/nsElementTable.cpp @@ -372,7 +372,7 @@ void InitializeElementTable(void) { /*rootnodes,endrootnodes*/ &gInTable,&gInTable, /*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,0, /*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf, - /*special props, prop-range*/ kNoPropagate,kDefaultPropRange, + /*special props, prop-range*/ (kNoPropagate|kNoStyleLeaksOut),kDefaultPropRange, /*special parents,kids,skip*/ &gInTable,0,eHTMLTag_unknown); Initialize( @@ -1112,7 +1112,7 @@ void InitializeElementTable(void) { /*rootnodes,endrootnodes*/ &gTableRootTags,&gTableRootTags, /*autoclose starttags and endtags*/ 0,&gTableCloseTags,0,0, /*parent,incl,exclgroups*/ kBlock, kNone, (kSelf|kInlineEntity), - /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kNoStyleLeaksOut), 2, + /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), 2, /*special parents,kids,skip*/ 0,&gTableKids,eHTMLTag_unknown); Initialize( diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp index 61e4b8718c4..71c5d8895b3 100644 --- a/mozilla/parser/htmlparser/src/CNavDTD.cpp +++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp @@ -3291,7 +3291,11 @@ nsresult CNavDTD::CloseContainersTo(PRInt32 anIndex,eHTMLTags aTarget, PRBool aC #ifdef ENABLE_RESIDUALSTYLE PRBool theTagIsStyle=nsHTMLElement::IsResidualStyleTag(theTag); - PRBool theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut); + // If the current tag cannot leak out then we shouldn't leak out of the target - Fix 40713 + PRBool theStyleDoesntLeakOut = gHTMLElements[theTag].HasSpecialProperty(kNoStyleLeaksOut); + if(!theStyleDoesntLeakOut) { + theStyleDoesntLeakOut = gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut); + } // (aClosedByStartTag) ? gHTMLElements[aTarget].HasSpecialProperty(kNoStyleLeaksOut) // : gHTMLElements[theParent].HasSpecialProperty(kNoStyleLeaksOut); diff --git a/mozilla/parser/htmlparser/src/nsElementTable.cpp b/mozilla/parser/htmlparser/src/nsElementTable.cpp index 3c0bbdf2a4c..f0a3ef0e52a 100644 --- a/mozilla/parser/htmlparser/src/nsElementTable.cpp +++ b/mozilla/parser/htmlparser/src/nsElementTable.cpp @@ -372,7 +372,7 @@ void InitializeElementTable(void) { /*rootnodes,endrootnodes*/ &gInTable,&gInTable, /*autoclose starttags and endtags*/ &gCaptionAutoClose,0,0,0, /*parent,incl,exclgroups*/ kNone, kFlowEntity, kSelf, - /*special props, prop-range*/ kNoPropagate,kDefaultPropRange, + /*special props, prop-range*/ (kNoPropagate|kNoStyleLeaksOut),kDefaultPropRange, /*special parents,kids,skip*/ &gInTable,0,eHTMLTag_unknown); Initialize( @@ -1112,7 +1112,7 @@ void InitializeElementTable(void) { /*rootnodes,endrootnodes*/ &gTableRootTags,&gTableRootTags, /*autoclose starttags and endtags*/ 0,&gTableCloseTags,0,0, /*parent,incl,exclgroups*/ kBlock, kNone, (kSelf|kInlineEntity), - /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn|kNoStyleLeaksOut), 2, + /*special props, prop-range*/ (kOmitWS|kBadContentWatch|kNoStyleLeaksIn), 2, /*special parents,kids,skip*/ 0,&gTableKids,eHTMLTag_unknown); Initialize(