Bug 1355351 - Make pseudo-elements return the correct style via getComputedStyle

* Add a node property to access the ::before and ::after pseudo-elements
* Look for the frame for ::before and ::after pseudos
* Clean up pseudo-element props
* Simplify nsLayoutUtils callers, and make child iterators notice display: contents pseudos

Tag #1375
This commit is contained in:
Matt A. Tobin 2020-04-17 05:10:25 -04:00 committed by Roy Tam
commit d3ffda520f
16 changed files with 188 additions and 241 deletions

View file

@ -9995,19 +9995,16 @@ nsIFrame::IsPseudoStackingContextFromStyle() {
Element*
nsIFrame::GetPseudoElement(CSSPseudoElementType aType)
{
nsIFrame* frame = nullptr;
if (aType == CSSPseudoElementType::before) {
frame = nsLayoutUtils::GetBeforeFrame(this);
} else if (aType == CSSPseudoElementType::after) {
frame = nsLayoutUtils::GetAfterFrame(this);
if (!mContent) {
return nullptr;
}
if (frame) {
nsIContent* content = frame->GetContent();
if (content->IsElement()) {
return content->AsElement();
}
if (aType == CSSPseudoElementType::before) {
return nsLayoutUtils::GetBeforePseudo(mContent);
}
if (aType == CSSPseudoElementType::after) {
return nsLayoutUtils::GetAfterPseudo(mContent);
}
return nullptr;