Changeset 90026 in webkit
- Timestamp:
- Jun 29, 2011 10:46:56 AM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r90022 r90026 1 2011-06-29 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Reviewed by Adam Barth. 4 5 Extract setShadowRoot function, harden it in preparation to be exposed to script. 6 https://bugs.webkit.org/show_bug.cgi?id=63596 7 8 Refactoring, covered by existing tests. 9 10 * dom/Element.cpp: 11 (WebCore::validateShadowRoot): Added. 12 (WebCore::Element::setShadowRoot): Extracted from ensureShadowRoot. 13 (WebCore::Element::ensureShadowRoot): Changed to use setShadowRoot. 14 * dom/Element.h: Added decl. 15 1 16 2011-06-29 Vsevolod Vlasov <vsevik@chromium.org> 2 17 -
trunk/Source/WebCore/dom/Element.cpp
r90004 r90026 1197 1197 } 1198 1198 1199 static bool validateShadowRoot(Document* document, ShadowRoot* shadowRoot, ExceptionCode& ec) 1200 { 1201 if (!shadowRoot) 1202 return true; 1203 1204 if (shadowRoot->shadowHost()) { 1205 ec = HIERARCHY_REQUEST_ERR; 1206 return false; 1207 } 1208 1209 if (shadowRoot->document() != document) { 1210 ec = WRONG_DOCUMENT_ERR; 1211 return false; 1212 } 1213 1214 return true; 1215 } 1216 1217 void Element::setShadowRoot(PassRefPtr<ShadowRoot> prpShadowRoot, ExceptionCode& ec) 1218 { 1219 RefPtr<ShadowRoot> shadowRoot = prpShadowRoot; 1220 if (!validateShadowRoot(document(), shadowRoot.get(), ec)) 1221 return; 1222 1223 removeShadowRoot(); 1224 1225 ensureRareData()->m_shadowRoot = shadowRoot.get(); 1226 shadowRoot->setShadowHost(this); 1227 if (inDocument()) 1228 shadowRoot->insertedIntoDocument(); 1229 if (attached()) 1230 shadowRoot->lazyAttach(); 1231 } 1232 1199 1233 ShadowRoot* Element::ensureShadowRoot() 1200 1234 { … … 1202 1236 return existingRoot; 1203 1237 1204 RefPtr<ShadowRoot> newRoot = ShadowRoot::create(document()); 1205 ensureRareData()->m_shadowRoot = newRoot.get(); 1206 newRoot->setShadowHost(this); 1207 if (inDocument()) 1208 newRoot->insertedIntoDocument(); 1209 if (attached()) 1210 newRoot->lazyAttach(); 1211 return newRoot.get(); 1238 ExceptionCode ec = 0; 1239 setShadowRoot(ShadowRoot::create(document()), ec); 1240 ASSERT(!ec); 1241 return shadowRoot(); 1212 1242 } 1213 1243 -
trunk/Source/WebCore/dom/Element.h
r89989 r90026 232 232 233 233 ShadowRoot* shadowRoot() const; 234 void setShadowRoot(PassRefPtr<ShadowRoot>, ExceptionCode&); 234 235 ShadowRoot* ensureShadowRoot(); 235 236 void removeShadowRoot();
Note: See TracChangeset
for help on using the changeset viewer.