From dbe1c3f9a9379511d6f951b25643a4264bc4a8fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Sat, 22 Apr 2017 22:53:03 +0200 Subject: [PATCH] Bug 1331047: Require a child iterator for elements with ::before and ::after pseudos. r=bholley MozReview-Commit-ID: e1UTlnNn3X --- dom/base/ChildIterator.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dom/base/ChildIterator.cpp b/dom/base/ChildIterator.cpp index 7fa9e180cf70..851f4630e51c 100644 --- a/dom/base/ChildIterator.cpp +++ b/dom/base/ChildIterator.cpp @@ -512,6 +512,16 @@ StyleChildrenIterator::IsNeeded(const Element* aElement) } } + // If the node has a ::before or ::after pseudo, return true, because we want + // to visit those. + // + // TODO(emilio): Make this fast adding a bit? or, perhaps just using + // ProbePseudoElementStyle? It should be quite fast in Stylo. + if (aElement->GetProperty(nsGkAtoms::beforePseudoProperty) || + aElement->GetProperty(nsGkAtoms::afterPseudoProperty)) { + return true; + } + // If the node has native anonymous content, return true. nsIAnonymousContentCreator* ac = do_QueryFrame(aElement->GetPrimaryFrame()); if (ac) {