| Index: third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| index 4d379568e1dbac73b9b58710f82c9fede316ace2..5e7237bc79863efecfebd026872fbfdb7462ca25 100644
|
| --- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp
|
| @@ -150,6 +150,13 @@ void ShadowRoot::attach(const AttachContext& context)
|
| DocumentFragment::attach(context);
|
| }
|
|
|
| +void ShadowRoot::detach(const AttachContext& context)
|
| +{
|
| + if (context.clearInvalidation)
|
| + document().styleEngine().styleInvalidator().clearInvalidation(*this);
|
| + DocumentFragment::detach(context);
|
| +}
|
| +
|
| Node::InsertionNotificationRequest ShadowRoot::insertedInto(ContainerNode* insertionPoint)
|
| {
|
| DocumentFragment::insertedInto(insertionPoint);
|
| @@ -183,6 +190,8 @@ void ShadowRoot::removedFrom(ContainerNode* insertionPoint)
|
| root->removeChildShadowRoot();
|
| m_registeredWithParentShadowRoot = false;
|
| }
|
| + if (needsStyleInvalidation())
|
| + document().styleEngine().styleInvalidator().clearInvalidation(*this);
|
| }
|
|
|
| DocumentFragment::removedFrom(insertionPoint);
|
| @@ -193,7 +202,7 @@ void ShadowRoot::childrenChanged(const ChildrenChange& change)
|
| ContainerNode::childrenChanged(change);
|
|
|
| if (change.isChildElementChange())
|
| - checkForSiblingStyleChanges(change.type == ElementRemoved ? SiblingElementRemoved : SiblingElementInserted, change.siblingBeforeChange, change.siblingAfterChange);
|
| + checkForSiblingStyleChanges(change.type == ElementRemoved ? SiblingElementRemoved : SiblingElementInserted, change.siblingChanged, change.siblingBeforeChange, change.siblingAfterChange);
|
|
|
| if (InsertionPoint* point = shadowInsertionPointOfYoungerShadowRoot()) {
|
| if (ShadowRoot* root = point->containingShadowRoot())
|
|
|