diff --git a/layout/inspector/tests/mochitest.ini b/layout/inspector/tests/mochitest.ini index e119cf2ce301..a4220d60d1ff 100644 --- a/layout/inspector/tests/mochitest.ini +++ b/layout/inspector/tests/mochitest.ini @@ -23,7 +23,6 @@ support-files = file_getCSSStyleRules-alternate.html getCSSStyleRules-1.css getCSSStyleRules-2.css -[test_getCSSStyleRules_pseudo.html] [test_getCSSPseudoElementNames.html] [test_getRelativeRuleLine.html] [test_get_all_style_sheets.html] diff --git a/layout/inspector/tests/test_getCSSStyleRules_pseudo.html b/layout/inspector/tests/test_getCSSStyleRules_pseudo.html deleted file mode 100644 index 097a66baedb7..000000000000 --- a/layout/inspector/tests/test_getCSSStyleRules_pseudo.html +++ /dev/null @@ -1,76 +0,0 @@ - -Test getCSSStyleRules for pseudo elements - - - - - -
block pseudos
-
table pseudos
-
flex pseudos
-
grid pseudos
- - diff --git a/layout/style/nsComputedDOMStyle.cpp b/layout/style/nsComputedDOMStyle.cpp index 081c169a2338..82084f82dc51 100644 --- a/layout/style/nsComputedDOMStyle.cpp +++ b/layout/style/nsComputedDOMStyle.cpp @@ -576,25 +576,21 @@ nsComputedDOMStyle::DoGetComputedStyleNoFlush(Element* aElement, if (inDocWithShell && aStyleType == eAll && !aElement->IsHTMLElement(nsGkAtoms::area)) { - Element* element = nullptr; + nsIFrame* frame = nullptr; if (aPseudo == nsCSSPseudoElements::before()) { - element = nsLayoutUtils::GetBeforePseudo(aElement); + frame = nsLayoutUtils::GetBeforeFrame(aElement); } else if (aPseudo == nsCSSPseudoElements::after()) { - element = nsLayoutUtils::GetAfterPseudo(aElement); + frame = nsLayoutUtils::GetAfterFrame(aElement); } else if (!aPseudo) { - element = aElement; + frame = nsLayoutUtils::GetStyleFrame(aElement); } - - if (element) { - nsIFrame* primaryFrame = element->GetPrimaryFrame(); - if (nsIFrame* styleFrame = nsLayoutUtils::GetStyleFrame(element)) { - ComputedStyle* result = styleFrame->Style(); - // Don't use the style if it was influenced by pseudo-elements, - // since then it's not the primary style for this element / pseudo. - if (!MustReresolveStyle(result)) { - RefPtr ret = result; - return ret.forget(); - } + if (frame) { + ComputedStyle* result = frame->Style(); + // Don't use the style if it was influenced by pseudo-elements, since then + // it's not the primary style for this element / pseudo. + if (!MustReresolveStyle(result)) { + RefPtr ret = result; + return ret.forget(); } } }