Index: third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp |
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp |
index 701a69d21356084fa8e36e23d9a353dcd8aa1989..09c7bcb1175c686caf609fa4ea3bbee8bee217a3 100644 |
--- a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp |
+++ b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp |
@@ -179,9 +179,7 @@ static void collectScopedResolversForHostedShadowTrees( |
} |
StyleResolver::StyleResolver(Document& document) |
- : m_document(document), |
- m_printMediaType(false), |
- m_styleSharingDepth(0) { |
+ : m_document(document), m_printMediaType(false), m_styleSharingDepth(0) { |
FrameView* view = document.view(); |
DCHECK(view); |
m_medium = new MediaQueryEvaluator(&view->frame()); |
@@ -859,7 +857,11 @@ PseudoElement* StyleResolver::createPseudoElementIfNeeded(Element& parent, |
!FirstLetterPseudoElement::firstLetterTextLayoutObject(parent))) |
return nullptr; |
- if (!canHaveGeneratedChildren(*parentLayoutObject)) |
+ // The backdrop pseudo element generates a new stacking context and its |
+ // layout object does not become a child of |parentLayoutObject|. The |
+ // exemption is needed so that replaced content also gets a backdrop. |
+ if (pseudoId != PseudoIdBackdrop && |
+ !canHaveGeneratedChildren(*parentLayoutObject)) |
return nullptr; |
ComputedStyle* parentStyle = parentLayoutObject->mutableStyle(); |