Changeset 196833 in webkit
- Timestamp:
- Feb 19, 2016, 1:49:34 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 7 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/shadow-dom/composed-tree-basic-expected.txt (added)
-
LayoutTests/fast/shadow-dom/composed-tree-basic.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/dom/ComposedTreeIterator.cpp (modified) (3 diffs)
-
Source/WebCore/dom/ComposedTreeIterator.h (modified) (3 diffs)
-
Source/WebCore/testing/Internals.cpp (modified) (2 diffs)
-
Source/WebCore/testing/Internals.h (modified) (1 diff)
-
Source/WebCore/testing/Internals.idl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r196824 r196833 1 2016-02-19 Antti Koivisto <antti@apple.com> 2 3 ComposedTreeIterator traverses normal children for elements with empty shadow root 4 https://bugs.webkit.org/show_bug.cgi?id=154464 5 6 Reviewed by Ryosuke Niwa. 7 8 * fast/shadow-dom/composed-tree-basic-expected.txt: Added. 9 * fast/shadow-dom/composed-tree-basic.html: Added. 10 1 11 2016-02-19 Nan Wang <n_wang@apple.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r196831 r196833 1 2016-02-19 Antti Koivisto <antti@apple.com> 2 3 ComposedTreeIterator traverses normal children for elements with empty shadow root 4 https://bugs.webkit.org/show_bug.cgi?id=154464 5 6 Reviewed by Ryosuke Niwa. 7 8 Test: fast/shadow-dom/composed-tree-basic.html 9 10 * dom/ComposedTreeIterator.cpp: 11 (WebCore::ComposedTreeIterator::initializeContextStack): 12 (WebCore::ComposedTreeIterator::traverseShadowRoot): 13 14 If the shadow root is empty continue by skipping the real children. 15 16 (WebCore::ComposedTreeIterator::traverseNextInShadowTree): 17 (WebCore::composedTreeAsText): 18 (WebCore::ComposedTreeIterator::pushContext): Deleted. 19 * dom/ComposedTreeIterator.h: 20 (WebCore::ComposedTreeIterator::context): 21 (WebCore::ComposedTreeIterator::current): 22 (WebCore::ComposedTreeIterator::traverseNext): 23 (WebCore::composedTreeChildren): 24 * testing/Internals.cpp: 25 (WebCore::Internals::composedTreeAsText): 26 27 Testing support. 28 29 * testing/Internals.h: 30 * testing/Internals.idl: 31 1 32 2016-02-19 Jer Noble <jer.noble@apple.com> 2 33 -
trunk/Source/WebCore/dom/ComposedTreeIterator.cpp
r196281 r196833 28 28 29 29 #include "HTMLSlotElement.h" 30 #include "TextStream.h" 30 31 31 32 namespace WebCore { … … 106 107 } 107 108 108 bool ComposedTreeIterator::pushContext(ShadowRoot& shadowRoot)109 void ComposedTreeIterator::traverseShadowRoot(ShadowRoot& shadowRoot) 109 110 { 110 111 Context shadowContext(shadowRoot); 111 if (!shadowContext.iterator) 112 return false; 112 if (!shadowContext.iterator) { 113 // Empty shadow root. 114 traverseNextSkippingChildren(); 115 return; 116 } 117 113 118 m_contextStack.append(WTFMove(shadowContext)); 114 return true;115 119 } 116 120 … … 181 185 #endif 182 186 183 } 187 String composedTreeAsText(ContainerNode& root) 188 { 189 TextStream stream; 190 auto descendants = composedTreeDescendants(root); 191 for (auto it = descendants.begin(), end = descendants.end(); it != end; ++it) { 192 writeIndent(stream, it.depth()); 193 194 if (is<Text>(*it)) { 195 stream << "#text\n"; 196 continue; 197 } 198 auto& element = downcast<Element>(*it); 199 stream << element.localName(); 200 if (element.shadowRoot()) 201 stream << " (shadow root)"; 202 stream << "\n"; 203 } 204 return stream.release(); 205 } 206 207 } -
trunk/Source/WebCore/dom/ComposedTreeIterator.h
r196422 r196833 59 59 void traverseNextInShadowTree(); 60 60 void traverseNextLeavingContext(); 61 bool pushContext(ShadowRoot&);61 void traverseShadowRoot(ShadowRoot&); 62 62 #if ENABLE(SHADOW_DOM) || ENABLE(DETAILS_ELEMENT) 63 63 bool advanceInSlot(int direction); … … 93 93 { 94 94 if (auto* shadowRoot = context().iterator->shadowRoot()) { 95 if (pushContext(*shadowRoot))96 return *this;95 traverseShadowRoot(*shadowRoot); 96 return *this; 97 97 } 98 98 … … 201 201 } 202 202 203 } 204 205 #endif 203 WEBCORE_EXPORT String composedTreeAsText(ContainerNode& root); 204 205 } 206 207 #endif -
trunk/Source/WebCore/testing/Internals.cpp
r196722 r196833 40 40 #include "ClientRect.h" 41 41 #include "ClientRectList.h" 42 #include "ComposedTreeIterator.h" 42 43 #include "Cursor.h" 43 44 #include "DOMPath.h" … … 3488 3489 } 3489 3490 3490 } 3491 String Internals::composedTreeAsText(Node* node) 3492 { 3493 if (!is<ContainerNode>(node)) 3494 return ""; 3495 return WebCore::composedTreeAsText(downcast<ContainerNode>(*node)); 3496 } 3497 3498 } -
trunk/Source/WebCore/testing/Internals.h
r196706 r196833 472 472 #endif 473 473 474 String composedTreeAsText(Node*); 475 474 476 private: 475 477 explicit Internals(Document*); -
trunk/Source/WebCore/testing/Internals.idl
r196706 r196833 440 440 441 441 [RaisesException] void setCanShowModalDialogOverride(boolean allow); 442 }; 442 443 DOMString composedTreeAsText(Node parent); 444 };
Note:
See TracChangeset
for help on using the changeset viewer.