Bug 1331322 - Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time

* Stop using a node bit for HasExplicitBaseURI
* Move MAY_HAVE_CLASS to mBoolFlags
* Add a flag to indicate that a node is native anonymous content
* Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time, and eliminate explicit style contexts in nsIAnonymousContentCreator::ContentInfo

Tag #1375
This commit is contained in:
Matt A. Tobin 2020-04-16 16:37:28 -04:00 committed by Roy Tam
commit b723a5c8c4
25 changed files with 267 additions and 128 deletions

View file

@ -2341,6 +2341,16 @@ ElementRestyler::ComputeRestyleResultFromFrame(nsIFrame* aSelf,
return;
}
// Each NAC element inherits from the first non-NAC ancestor, so child
// NAC may inherit from our parent instead of us. That means we can't
// cull traversal if our style context didn't change.
if (aSelf->GetContent() && aSelf->GetContent()->IsNativeAnonymous()) {
LOG_RESTYLE_CONTINUE("native anonymous content");
aRestyleResult = RestyleResult::eContinue;
aCanStopWithStyleChange = false;
return;
}
// Style changes might have moved children between the two nsLetterFrames
// (the one matching ::first-letter and the one containing the rest of the
// content). Continue restyling to the children of the nsLetterFrame so