Index: third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp |
diff --git a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp |
index 906fa2a83679cff8eb30572e2461d7d3ba7ac693..ccf05a80afca47ba0092611129ff765fe93df283 100644 |
--- a/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp |
+++ b/third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp |
@@ -149,9 +149,9 @@ ShadowRoot& ElementShadow::addShadowRoot(Element& shadowHost, ShadowRootType typ |
ScriptForbiddenScope forbidScript; |
if (type == ShadowRootType::V0) { |
- if (!youngestShadowRoot()) { |
+ if (m_shadowRoots.isEmpty()) { |
shadowHost.willAddFirstAuthorShadowRoot(); |
- } else if (youngestShadowRoot()->type() == ShadowRootType::UserAgent) { |
+ } else if (m_shadowRoots.head()->type() == ShadowRootType::UserAgent) { |
shadowHost.willAddFirstAuthorShadowRoot(); |
UseCounter::countDeprecation(shadowHost.document(), UseCounter::ElementCreateShadowRootMultipleWithUserAgentShadowRoot); |
} else { |
@@ -161,7 +161,7 @@ ShadowRoot& ElementShadow::addShadowRoot(Element& shadowHost, ShadowRootType typ |
shadowHost.willAddFirstAuthorShadowRoot(); |
} |
- for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) |
+ for (ShadowRoot* root = m_shadowRoots.head(); root; root = root->olderShadowRoot()) |
root->lazyReattachIfAttached(); |
RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = ShadowRoot::create(shadowHost.document(), type); |
@@ -203,7 +203,7 @@ void ElementShadow::attach(const Node::AttachContext& context) |
Node::AttachContext childrenContext(context); |
childrenContext.resolvedStyle = 0; |
- for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) { |
+ for (ShadowRoot* root = &youngestShadowRoot(); root; root = root->olderShadowRoot()) { |
if (root->needsAttach()) |
root->attach(childrenContext); |
} |
@@ -214,7 +214,7 @@ void ElementShadow::detach(const Node::AttachContext& context) |
Node::AttachContext childrenContext(context); |
childrenContext.resolvedStyle = 0; |
- for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) |
+ for (ShadowRoot* root = &youngestShadowRoot(); root; root = root->olderShadowRoot()) |
root->detach(childrenContext); |
} |
@@ -229,8 +229,8 @@ void ElementShadow::setNeedsDistributionRecalc() |
bool ElementShadow::hasSameStyles(const ElementShadow* other) const |
{ |
- ShadowRoot* root = youngestShadowRoot(); |
- ShadowRoot* otherRoot = other->youngestShadowRoot(); |
+ ShadowRoot* root = &youngestShadowRoot(); |
+ ShadowRoot* otherRoot = &other->youngestShadowRoot(); |
while (root || otherRoot) { |
if (!root || !otherRoot) |
return false; |
@@ -280,7 +280,7 @@ void ElementShadow::distribute() |
WillBeHeapVector<RawPtrWillBeMember<HTMLShadowElement>, 32> shadowInsertionPoints; |
DistributionPool pool(*host()); |
- for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) { |
+ for (ShadowRoot* root = &youngestShadowRoot(); root; root = root->olderShadowRoot()) { |
HTMLShadowElement* shadowInsertionPoint = 0; |
const WillBeHeapVector<RefPtrWillBeMember<InsertionPoint>>& insertionPoints = root->descendantInsertionPoints(); |
for (size_t i = 0; i < insertionPoints.size(); ++i) { |
@@ -372,7 +372,7 @@ void ElementShadow::clearDistribution() |
{ |
m_nodeToInsertionPoints.clear(); |
- for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) |
+ for (ShadowRoot* root = &youngestShadowRoot(); root; root = root->olderShadowRoot()) |
root->setShadowInsertionPointOfYoungerShadowRoot(nullptr); |
} |