Chromium Code Reviews| 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..5a572112b31f6058a106ad3dff44621452f29fad 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()) { |
|
hayato
2015/10/19 06:58:19
Updated: Use m_shadowRoots.isEmpty() here because
kochi
2015/10/19 07:02:03
Acknowledged.
|
| shadowHost.willAddFirstAuthorShadowRoot(); |
| - } else if (youngestShadowRoot()->type() == ShadowRootType::UserAgent) { |
| + } else if (m_shadowRoots.tail()->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.tail(); root; root = root->olderShadowRoot()) |
|
kochi
2015/10/19 07:02:03
Should this be m_shadowRoots.head() instead of m_s
hayato
2015/10/19 07:12:11
Done. Nice catch!
|
| 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); |
| } |