author | Daniel Holbert <dholbert@cs.stanford.edu> |
Wed, 20 Feb 2013 23:35:02 -0800 (2013-02-21) | |
changeset 122521 | 4caff5d7a8f0e937b31aca57b1642a00effa5e1d |
parent 122520 | 1ac9186392e6c3391d696cebc5981ffdaaad282a |
child 122522 | 32e86b67c86291000fb04b6e6042d4e8c4933469 |
push id | 23343 |
push user | dholbert@mozilla.com |
push date | Thu, 21 Feb 2013 07:35:55 +0000 (2013-02-21) |
treeherder | mozilla-inbound@8f592616ab7b [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bz |
bugs | 812822 |
milestone | 22.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/style/nsStyleSet.cpp +++ b/layout/style/nsStyleSet.cpp @@ -1315,17 +1315,20 @@ nsStyleSet::ResolvePseudoElementStyle(El WalkRestrictionRule(aType, &ruleWalker); FileRules(EnumRulesMatching<PseudoElementRuleProcessorData>, &data, aParentElement, &ruleWalker); visitedRuleNode = ruleWalker.CurrentNode(); } // For pseudos, |data.IsLink()| being true means that // our parent node is a link. - uint32_t flags = eNoFlags; + // Also: Flex containers shouldn't have pseudo-elements, so given that we're + // looking up pseudo-element style, make sure we're not treating our node as + // a flex item. + uint32_t flags = eSkipFlexItemStyleFixup; if (aType == nsCSSPseudoElements::ePseudo_before || aType == nsCSSPseudoElements::ePseudo_after) { flags |= eDoAnimation; } return GetContext(aParentContext, ruleNode, visitedRuleNode, nsCSSPseudoElements::GetPseudoAtom(aType), aType, aParentElement, flags); @@ -1378,17 +1381,20 @@ nsStyleSet::ProbePseudoElementStyle(Elem WalkRestrictionRule(aType, &ruleWalker); FileRules(EnumRulesMatching<PseudoElementRuleProcessorData>, &data, aParentElement, &ruleWalker); visitedRuleNode = ruleWalker.CurrentNode(); } // For pseudos, |data.IsLink()| being true means that // our parent node is a link. - uint32_t flags = eNoFlags; + // Also: Flex containers shouldn't have pseudo-elements, so given that we're + // looking up pseudo-element style, make sure we're not treating our node as + // a flex item. + uint32_t flags = eSkipFlexItemStyleFixup; if (aType == nsCSSPseudoElements::ePseudo_before || aType == nsCSSPseudoElements::ePseudo_after) { flags |= eDoAnimation; } nsRefPtr<nsStyleContext> result = GetContext(aParentContext, ruleNode, visitedRuleNode, pseudoTag, aType,