Changeset 204543 in webkit
- Timestamp:
- Aug 16, 2016 5:25:36 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r204540 r204543 1 2016-08-16 Chris Dumez <cdumez@apple.com> 2 3 Add support for ShadowRoot.mode attribute 4 https://bugs.webkit.org/show_bug.cgi?id=160919 5 6 Reviewed by Ryosuke Niwa. 7 8 Add layout test coverage. 9 10 * fast/shadow-dom/ShadowRoot-mode-expected.txt: Added. 11 * fast/shadow-dom/ShadowRoot-mode.html: Added. 12 1 13 2016-08-16 Ryosuke Niwa <rniwa@webkit.org> 2 14 -
trunk/LayoutTests/imported/w3c/ChangeLog
r204536 r204543 1 2016-08-16 Chris Dumez <cdumez@apple.com> 2 3 Add support for ShadowRoot.mode attribute 4 https://bugs.webkit.org/show_bug.cgi?id=160919 5 6 Reviewed by Ryosuke Niwa. 7 8 Rebaseline W3C test now that one more check is passing. 9 10 * web-platform-tests/dom/interfaces-expected.txt: 11 1 12 2016-08-16 Chris Dumez <cdumez@apple.com> 2 13 -
trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt
r204247 r204543 726 726 PASS ShadowRoot interface: existence and properties of interface prototype object 727 727 PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property 728 FAIL ShadowRoot interface: attribute mode assert_true: The prototype object must have a property "mode" expected true got false 728 PASS ShadowRoot interface: attribute mode 729 729 PASS ShadowRoot interface: attribute host 730 730 PASS Element interface: existence and properties of interface object -
trunk/Source/WebCore/ChangeLog
r204540 r204543 1 2016-08-16 Chris Dumez <cdumez@apple.com> 2 3 Add support for ShadowRoot.mode attribute 4 https://bugs.webkit.org/show_bug.cgi?id=160919 5 6 Reviewed by Ryosuke Niwa. 7 8 Add support for ShadowRoot.mode attribute: 9 - https://dom.spec.whatwg.org/#interface-shadowroot 10 11 Test: fast/shadow-dom/ShadowRoot-mode.html 12 13 * css/ElementRuleCollector.cpp: 14 (WebCore::ElementRuleCollector::collectMatchingRules): 15 * css/SelectorChecker.cpp: 16 (WebCore::SelectorChecker::matchRecursively): 17 * dom/Element.cpp: 18 (WebCore::Element::bindingsOffsetParent): 19 (WebCore::Element::addShadowRoot): 20 (WebCore::Element::attachShadow): 21 (WebCore::Element::shadowRootForBindings): 22 (WebCore::Element::userAgentShadowRoot): 23 (WebCore::Element::ensureUserAgentShadowRoot): 24 * dom/Node.cpp: 25 (WebCore::Node::isUnclosedNode): 26 (WebCore::Node::assignedSlotForBindings): 27 (WebCore::Node::isInUserAgentShadowTree): 28 * dom/ShadowRoot.cpp: 29 (WebCore::ShadowRoot::ShadowRoot): 30 (WebCore::ShadowRoot::styleResolver): 31 * dom/ShadowRoot.h: 32 * dom/ShadowRoot.idl: 33 * dom/SlotAssignment.cpp: 34 (WebCore::SlotAssignment::didChangeSlot): 35 * html/HTMLSummaryElement.cpp: 36 (WebCore::HTMLSummaryElement::create): 37 * inspector/InspectorDOMAgent.cpp: 38 (WebCore::shadowRootType): 39 (WebCore::InspectorDOMAgent::buildObjectForNode): 40 * rendering/HitTestResult.cpp: 41 (WebCore::moveOutOfUserAgentShadowTree): 42 * rendering/RenderElement.cpp: 43 (WebCore::RenderElement::selectionPseudoStyle): 44 * rendering/RenderLayer.cpp: 45 (WebCore::rendererForScrollbar): 46 * svg/SVGElement.cpp: 47 (WebCore::SVGElement::correspondingUseElement): 48 * testing/Internals.cpp: 49 (WebCore::Internals::shadowRootType): 50 1 51 2016-08-16 Ryosuke Niwa <rniwa@webkit.org> 2 52 -
trunk/Source/WebCore/css/ElementRuleCollector.cpp
r204220 r204543 149 149 150 150 auto* shadowRoot = m_element.containingShadowRoot(); 151 if (shadowRoot && shadowRoot-> type() == ShadowRoot::Type::UserAgent) {151 if (shadowRoot && shadowRoot->mode() == ShadowRoot::Mode::UserAgent) { 152 152 const AtomicString& pseudoId = m_element.shadowPseudoId(); 153 153 if (!pseudoId.isEmpty()) -
trunk/Source/WebCore/css/SelectorChecker.cpp
r203976 r204543 279 279 return MatchResult::fails(Match::SelectorFailsLocally); 280 280 281 if (context.selector->isWebKitCustomPseudoElement() && root-> type() != ShadowRoot::Type::UserAgent)281 if (context.selector->isWebKitCustomPseudoElement() && root->mode() != ShadowRoot::Mode::UserAgent) 282 282 return MatchResult::fails(Match::SelectorFailsLocally); 283 283 } else -
trunk/Source/WebCore/dom/Element.cpp
r204540 r204543 811 811 if (!element || !element->isInShadowTree()) 812 812 return element; 813 return element->containingShadowRoot()-> type() == ShadowRoot::Type::UserAgent ? nullptr : element;813 return element->containingShadowRoot()->mode() == ShadowRoot::Mode::UserAgent ? nullptr : element; 814 814 } 815 815 … … 1675 1675 InspectorInstrumentation::didPushShadowRoot(*this, shadowRoot); 1676 1676 1677 if (shadowRoot. type() == ShadowRoot::Type::UserAgent)1677 if (shadowRoot.mode() == ShadowRoot::Mode::UserAgent) 1678 1678 didAddUserAgentShadowRoot(&shadowRoot); 1679 1679 } … … 1754 1754 } 1755 1755 1756 auto shadow = ShadowRoot::create(document(), init.mode == ShadowRootMode::Open ? ShadowRoot:: Type::Open : ShadowRoot::Type::Closed);1756 auto shadow = ShadowRoot::create(document(), init.mode == ShadowRootMode::Open ? ShadowRoot::Mode::Open : ShadowRoot::Mode::Closed); 1757 1757 addShadowRoot(shadow.copyRef()); 1758 1758 return WTFMove(shadow); … … 1765 1765 return nullptr; 1766 1766 1767 if (root-> type() != ShadowRoot::Type::Open) {1767 if (root->mode() != ShadowRoot::Mode::Open) { 1768 1768 if (!JSC::jsCast<JSDOMGlobalObject*>(state.lexicalGlobalObject())->world().shadowRootIsAlwaysOpen()) 1769 1769 return nullptr; … … 1776 1776 { 1777 1777 if (ShadowRoot* shadowRoot = this->shadowRoot()) { 1778 ASSERT(shadowRoot-> type() == ShadowRoot::Type::UserAgent);1778 ASSERT(shadowRoot->mode() == ShadowRoot::Mode::UserAgent); 1779 1779 return shadowRoot; 1780 1780 } … … 1786 1786 ShadowRoot* shadowRoot = userAgentShadowRoot(); 1787 1787 if (!shadowRoot) { 1788 addShadowRoot(ShadowRoot::create(document(), ShadowRoot:: Type::UserAgent));1788 addShadowRoot(ShadowRoot::create(document(), ShadowRoot::Mode::UserAgent)); 1789 1789 shadowRoot = userAgentShadowRoot(); 1790 1790 } -
trunk/Source/WebCore/dom/Node.cpp
r204536 r204543 1089 1089 } 1090 1090 auto& root = treeScopeThatCanAccessOtherNode->rootNode(); 1091 if (is<ShadowRoot>(root) && downcast<ShadowRoot>(root). type() != ShadowRoot::Type::Open)1091 if (is<ShadowRoot>(root) && downcast<ShadowRoot>(root).mode() != ShadowRoot::Mode::Open) 1092 1092 break; 1093 1093 } … … 1113 1113 { 1114 1114 auto* shadowRoot = parentShadowRoot(*this); 1115 if (shadowRoot && shadowRoot-> type() == ShadowRoot::Type::Open)1115 if (shadowRoot && shadowRoot->mode() == ShadowRoot::Mode::Open) 1116 1116 return shadowRoot->findAssignedSlot(*this); 1117 1117 return nullptr; … … 1131 1131 { 1132 1132 auto* shadowRoot = containingShadowRoot(); 1133 return shadowRoot && shadowRoot-> type() == ShadowRoot::Type::UserAgent;1133 return shadowRoot && shadowRoot->mode() == ShadowRoot::Mode::UserAgent; 1134 1134 } 1135 1135 -
trunk/Source/WebCore/dom/ShadowRoot.cpp
r202091 r204543 50 50 COMPILE_ASSERT(sizeof(ShadowRoot) == sizeof(SameSizeAsShadowRoot), shadowroot_should_stay_small); 51 51 52 ShadowRoot::ShadowRoot(Document& document, Type type)52 ShadowRoot::ShadowRoot(Document& document, Mode type) 53 53 : DocumentFragment(document, CreateShadowRoot) 54 54 , TreeScope(*this, document) … … 61 61 : DocumentFragment(document, CreateShadowRoot) 62 62 , TreeScope(*this, document) 63 , m_type( Type::UserAgent)63 , m_type(Mode::UserAgent) 64 64 , m_slotAssignment(WTFMove(slotAssignment)) 65 65 { … … 83 83 StyleResolver& ShadowRoot::styleResolver() 84 84 { 85 if (m_type == Type::UserAgent)85 if (m_type == Mode::UserAgent) 86 86 return document().userAgentShadowTreeStyleResolver(); 87 87 -
trunk/Source/WebCore/dom/ShadowRoot.h
r202091 r204543 43 43 class ShadowRoot final : public DocumentFragment, public TreeScope { 44 44 public: 45 enum class Type : uint8_t {45 enum class Mode : uint8_t { 46 46 UserAgent = 0, 47 47 Closed, … … 49 49 }; 50 50 51 static Ref<ShadowRoot> create(Document& document, Type type)51 static Ref<ShadowRoot> create(Document& document, Mode type) 52 52 { 53 53 return adoptRef(*new ShadowRoot(document, type)); … … 80 80 Element* activeElement() const; 81 81 82 Type type() const { return m_type; }82 Mode mode() const { return m_type; } 83 83 84 84 void removeAllEventListeners() override; … … 98 98 99 99 protected: 100 ShadowRoot(Document&, Type);100 ShadowRoot(Document&, Mode); 101 101 102 102 ShadowRoot(Document&, std::unique_ptr<SlotAssignment>&&); … … 111 111 112 112 bool m_resetStyleInheritance { false }; 113 Type m_type { Type::UserAgent };113 Mode m_type { Mode::UserAgent }; 114 114 115 115 Element* m_host { nullptr }; -
trunk/Source/WebCore/dom/ShadowRoot.idl
r202091 r204543 28 28 JSGenerateToJSObject 29 29 ] interface ShadowRoot : DocumentFragment { 30 readonly attribute ShadowRootMode mode; 30 31 readonly attribute Element activeElement; 31 32 readonly attribute Element host; … … 33 34 [TreatNullAs=EmptyString, SetterRaisesException] attribute DOMString innerHTML; 34 35 }; 36 37 // "user-agent" is a WebKit extension that is not exposed to the Web. 38 enum ShadowRootMode { "user-agent", "closed", "open" }; -
trunk/Source/WebCore/dom/SlotAssignment.cpp
r203324 r204543 159 159 } 160 160 161 if (shadowRoot. type() == ShadowRoot::Type::UserAgent)161 if (shadowRoot.mode() == ShadowRoot::Mode::UserAgent) 162 162 return; 163 163 -
trunk/Source/WebCore/html/HTMLSummaryElement.cpp
r202105 r204543 41 41 { 42 42 Ref<HTMLSummaryElement> summary = adoptRef(*new HTMLSummaryElement(tagName, document)); 43 summary->addShadowRoot(ShadowRoot::create(document, ShadowRoot:: Type::UserAgent));43 summary->addShadowRoot(ShadowRoot::create(document, ShadowRoot::Mode::UserAgent)); 44 44 return summary; 45 45 } -
trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp
r204499 r204543 1281 1281 } 1282 1282 1283 static Inspector::Protocol::DOM::ShadowRootType shadowRootType(ShadowRoot:: Type type)1284 { 1285 switch ( type) {1286 case ShadowRoot:: Type::UserAgent:1283 static Inspector::Protocol::DOM::ShadowRootType shadowRootType(ShadowRoot::Mode mode) 1284 { 1285 switch (mode) { 1286 case ShadowRoot::Mode::UserAgent: 1287 1287 return Inspector::Protocol::DOM::ShadowRootType::UserAgent; 1288 case ShadowRoot:: Type::Closed:1288 case ShadowRoot::Mode::Closed: 1289 1289 return Inspector::Protocol::DOM::ShadowRootType::Closed; 1290 case ShadowRoot:: Type::Open:1290 case ShadowRoot::Mode::Open: 1291 1291 return Inspector::Protocol::DOM::ShadowRootType::Open; 1292 1292 } … … 1408 1408 } else if (is<ShadowRoot>(*node)) { 1409 1409 ShadowRoot& shadowRoot = downcast<ShadowRoot>(*node); 1410 value->setShadowRootType(shadowRootType(shadowRoot. type()));1410 value->setShadowRootType(shadowRootType(shadowRoot.mode())); 1411 1411 } 1412 1412 -
trunk/Source/WebCore/rendering/HitTestResult.cpp
r203338 r204543 128 128 if (node.isInShadowTree()) { 129 129 if (ShadowRoot* root = node.containingShadowRoot()) { 130 if (root-> type() == ShadowRoot::Type::UserAgent)130 if (root->mode() == ShadowRoot::Mode::UserAgent) 131 131 return root->host(); 132 132 } -
trunk/Source/WebCore/rendering/RenderElement.cpp
r203738 r204543 1584 1584 1585 1585 if (ShadowRoot* root = element()->containingShadowRoot()) { 1586 if (root-> type() == ShadowRoot::Type::UserAgent) {1586 if (root->mode() == ShadowRoot::Mode::UserAgent) { 1587 1587 if (Element* shadowHost = element()->shadowHost()) 1588 1588 return shadowHost->renderer()->getUncachedPseudoStyle(PseudoStyleRequest(SELECTION)); -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r204047 r204543 3097 3097 if (Element* element = renderer.element()) { 3098 3098 if (ShadowRoot* shadowRoot = element->containingShadowRoot()) { 3099 if (shadowRoot-> type() == ShadowRoot::Type::UserAgent)3099 if (shadowRoot->mode() == ShadowRoot::Mode::UserAgent) 3100 3100 return shadowRoot->host()->renderer(); 3101 3101 } -
trunk/Source/WebCore/svg/SVGElement.cpp
r204459 r204543 439 439 if (!root) 440 440 return nullptr; 441 if (root-> type() != ShadowRoot::Type::UserAgent)441 if (root->mode() != ShadowRoot::Mode::UserAgent) 442 442 return nullptr; 443 443 auto* host = root->host(); -
trunk/Source/WebCore/testing/Internals.cpp
r204394 r204543 823 823 } 824 824 825 switch (downcast<ShadowRoot>(root). type()) {826 case ShadowRoot:: Type::UserAgent:825 switch (downcast<ShadowRoot>(root).mode()) { 826 case ShadowRoot::Mode::UserAgent: 827 827 return String("UserAgentShadowRoot"); 828 case ShadowRoot:: Type::Closed:828 case ShadowRoot::Mode::Closed: 829 829 return String("ClosedShadowRoot"); 830 case ShadowRoot:: Type::Open:830 case ShadowRoot::Mode::Open: 831 831 return String("OpenShadowRoot"); 832 832 default:
Note: See TracChangeset
for help on using the changeset viewer.