| Index: Source/core/dom/Element.cpp
|
| diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp
|
| index 9f8667f5605a008d599e066ade553788839b3c09..27de1a8ff0f99a06458a8105b66d77cc74fc55ea 100644
|
| --- a/Source/core/dom/Element.cpp
|
| +++ b/Source/core/dom/Element.cpp
|
| @@ -205,6 +205,7 @@ Element::~Element()
|
| ElementRareData* data = elementRareData();
|
| data->setPseudoElement(BEFORE, 0);
|
| data->setPseudoElement(AFTER, 0);
|
| + data->setPseudoElement(BACKDROP, 0);
|
| data->clearShadow();
|
| }
|
|
|
| @@ -1350,6 +1351,7 @@ void Element::attach(const AttachContext& context)
|
| ContainerNode::attach(context);
|
|
|
| createPseudoElementIfNeeded(AFTER);
|
| + createPseudoElementIfNeeded(BACKDROP);
|
|
|
| if (hasRareData()) {
|
| ElementRareData* data = elementRareData();
|
| @@ -2423,7 +2425,10 @@ void Element::updatePseudoElement(PseudoId pseudoId, StyleChange change)
|
|
|
| void Element::createPseudoElementIfNeeded(PseudoId pseudoId)
|
| {
|
| - if (!document()->styleSheetCollection()->usesBeforeAfterRules())
|
| + if ((pseudoId == BEFORE || pseudoId == AFTER) && !document()->styleSheetCollection()->usesBeforeAfterRules())
|
| + return;
|
| +
|
| + if (pseudoId == BACKDROP && !isInTopLayer())
|
| return;
|
|
|
| if (!renderer() || !pseudoElementRendererIsNeeded(renderer()->getCachedPseudoStyle(pseudoId)))
|
|
|