Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Side by Side Diff: third_party/WebKit/Source/core/dom/shadow/ElementShadow.cpp

Issue 1901403002: Remove UserAgent ShadowRoot + Author ShadowRoot code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Element::createShadowRoot, update some tests Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Neither the name of Google Inc. nor the names of its 10 * * Neither the name of Google Inc. nor the names of its
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 142
143 ElementShadow::~ElementShadow() 143 ElementShadow::~ElementShadow()
144 { 144 {
145 } 145 }
146 146
147 ShadowRoot& ElementShadow::addShadowRoot(Element& shadowHost, ShadowRootType typ e) 147 ShadowRoot& ElementShadow::addShadowRoot(Element& shadowHost, ShadowRootType typ e)
148 { 148 {
149 EventDispatchForbiddenScope assertNoEventDispatch; 149 EventDispatchForbiddenScope assertNoEventDispatch;
150 ScriptForbiddenScope forbidScript; 150 ScriptForbiddenScope forbidScript;
151 151
152 if (type == ShadowRootType::V0) { 152 if (type == ShadowRootType::V0 && !m_shadowRoots.isEmpty()) {
153 if (m_shadowRoots.isEmpty()) { 153 DCHECK_NE(ShadowRootType::UserAgent, m_shadowRoots.head()->type());
154 shadowHost.willAddFirstAuthorShadowRoot(); 154 Deprecation::countDeprecation(shadowHost.document(), UseCounter::Element CreateShadowRootMultiple);
155 } else if (m_shadowRoots.head()->type() == ShadowRootType::UserAgent) {
156 shadowHost.willAddFirstAuthorShadowRoot();
157 Deprecation::countDeprecation(shadowHost.document(), UseCounter::Ele mentCreateShadowRootMultipleWithUserAgentShadowRoot);
158 } else {
159 Deprecation::countDeprecation(shadowHost.document(), UseCounter::Ele mentCreateShadowRootMultiple);
160 }
161 } else if (type == ShadowRootType::Open || type == ShadowRootType::Closed) {
162 shadowHost.willAddFirstAuthorShadowRoot();
163 } 155 }
164 156
165 for (ShadowRoot* root = m_shadowRoots.head(); root; root = root->olderShadow Root()) 157 for (ShadowRoot* root = m_shadowRoots.head(); root; root = root->olderShadow Root())
166 root->lazyReattachIfAttached(); 158 root->lazyReattachIfAttached();
167 159
168 ShadowRoot* shadowRoot = ShadowRoot::create(shadowHost.document(), type); 160 ShadowRoot* shadowRoot = ShadowRoot::create(shadowHost.document(), type);
169 shadowRoot->setParentOrShadowHostNode(&shadowHost); 161 shadowRoot->setParentOrShadowHostNode(&shadowHost);
170 shadowRoot->setParentTreeScope(shadowHost.treeScope()); 162 shadowRoot->setParentTreeScope(shadowHost.treeScope());
171 m_shadowRoots.push(shadowRoot); 163 m_shadowRoots.push(shadowRoot);
172 setNeedsDistributionRecalc(); 164 setNeedsDistributionRecalc();
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 { 354 {
363 visitor->trace(m_nodeToInsertionPoints); 355 visitor->trace(m_nodeToInsertionPoints);
364 visitor->trace(m_selectFeatures); 356 visitor->trace(m_selectFeatures);
365 // Shadow roots are linked with previous and next pointers which are traced. 357 // Shadow roots are linked with previous and next pointers which are traced.
366 // It is therefore enough to trace one of the shadow roots here and the 358 // It is therefore enough to trace one of the shadow roots here and the
367 // rest will be traced from there. 359 // rest will be traced from there.
368 visitor->trace(m_shadowRoots.head()); 360 visitor->trace(m_shadowRoots.head());
369 } 361 }
370 362
371 } // namespace blink 363 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/Element.cpp ('k') | third_party/WebKit/Source/core/dom/shadow/ShadowRoot.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698