Change "InvalidStateError" to "NotSupportedError" for attachShadow()
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 5 Oct 2019 03:02:58 +0000 (03:02 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 5 Oct 2019 03:02:58 +0000 (03:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=197948

Reviewed by Wenson Hsieh.

LayoutTests/imported/w3c:

Rebaselined the tests.

* web-platform-tests/shadow-dom/Element-interface-attachShadow-custom-element-expected.txt:
* web-platform-tests/shadow-dom/Element-interface-attachShadow-expected.txt:

Source/WebCore:

Match the latest spec. See https://github.com/whatwg/dom/pull/761

* dom/Element.cpp:
(WebCore::Element::attachShadow): Throw NotSupportedError when there is already a shadow tree.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/shadow-dom/Element-interface-attachShadow-custom-element-expected.txt
LayoutTests/imported/w3c/web-platform-tests/shadow-dom/Element-interface-attachShadow-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/dom/Element.cpp

index b17eda6..46abd9a 100644 (file)
@@ -1,3 +1,15 @@
+2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Change "InvalidStateError" to "NotSupportedError" for attachShadow()
+        https://bugs.webkit.org/show_bug.cgi?id=197948
+
+        Reviewed by Wenson Hsieh.
+
+        Rebaselined the tests.
+
+        * web-platform-tests/shadow-dom/Element-interface-attachShadow-custom-element-expected.txt:
+        * web-platform-tests/shadow-dom/Element-interface-attachShadow-expected.txt:
+
 2019-10-04  Joonghun Park  <jh718.park@samsung.com>
 
         Negative radii in radial gradients should be rejected.
index 420da6b..3baf9e6 100644 (file)
@@ -1,12 +1,12 @@
 
 PASS Element.attachShadow must create an instance of ShadowRoot for autonomous custom elements 
 PASS Element.attachShadow must create an instance of ShadowRoot for undefined autonomous custom elements 
-FAIL Element.attachShadow for an autonomous custom element with disabledFeatures=["shadow"] should throw a NotSupportedError assert_throws: No definition, host function "() => {
-    element.attachShadow({mode: 'closed'});
-  }" threw object "InvalidStateError: The object is in an invalid state." that is not a DOMException NotSupportedError: property "code" is equal to 11, expected 9
-FAIL Element.attachShadow for a customized built-in element with disabledFeatures=["shadow"] should throw a NotSupportedError assert_throws: No definition, host. function "() => {
-    element.attachShadow({mode: 'closed'});
-  }" threw object "InvalidStateError: The object is in an invalid state." that is not a DOMException NotSupportedError: property "code" is equal to 11, expected 9
+FAIL Element.attachShadow for an autonomous custom element with disabledFeatures=["shadow"] should throw a NotSupportedError assert_throws: Definition, not a host function "() => {
+    document.createElement('shadow-disabled-element').attachShadow({mode: 'closed'});
+  }" did not throw
+FAIL Element.attachShadow for a customized built-in element with disabledFeatures=["shadow"] should throw a NotSupportedError assert_throws: Definition, not a host function "() => {
+    h2.attachShadow({mode: 'closed'});
+  }" did not throw
 PASS Element.attachShadow for a custom element with disabledFeatures=["SHADOW"] should not throw a NotSupportedError 
 PASS Element.attachShadow must throw a NotSupportedError for customized built-in elements 
 
index edc89e5..47f24ea 100644 (file)
@@ -3,10 +3,6 @@ PASS Check the existence of Element.attachShadow
 PASS Nodes other than Element should not have attachShadow 
 PASS Element.attachShadow must throw a TypeError if mode is not "open" or "closed" 
 PASS Element.attachShadow must create an instance of ShadowRoot 
-FAIL Element.attachShadow must throw a NotSupportedError if the context object already hosts a shadow tree assert_throws: Calling attachShadow({mode: "open"}) twice on the same element must throw function "function () {
-        var div = document.createElement('div');
-        div.attachShadow({mode: "open"});
-        div.attachShadow({mode: "open"});
-    }" threw object "InvalidStateError: The object is in an invalid state." ("InvalidStateError") expected object "[object Object]" ("NotSupportedError")
+PASS Element.attachShadow must throw a NotSupportedError if the context object already hosts a shadow tree 
 PASS Element.attachShadow must throw a NotSupportedError for non-safelisted elements 
 
index 45e3cd0..bec43da 100644 (file)
@@ -1,3 +1,15 @@
+2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Change "InvalidStateError" to "NotSupportedError" for attachShadow()
+        https://bugs.webkit.org/show_bug.cgi?id=197948
+
+        Reviewed by Wenson Hsieh.
+
+        Match the latest spec. See https://github.com/whatwg/dom/pull/761
+
+        * dom/Element.cpp:
+        (WebCore::Element::attachShadow): Throw NotSupportedError when there is already a shadow tree.
+
 2019-10-04  Chris Dumez  <cdumez@apple.com>
 
         Allow pages using EventSource to enter the back/forward cache
index 08c49e0..3793e10 100644 (file)
@@ -2317,7 +2317,7 @@ ExceptionOr<ShadowRoot&> Element::attachShadow(const ShadowRootInit& init)
     if (!canAttachAuthorShadowRoot(*this))
         return Exception { NotSupportedError };
     if (shadowRoot())
-        return Exception { InvalidStateError };
+        return Exception { NotSupportedError };
     if (init.mode == ShadowRootMode::UserAgent)
         return Exception { TypeError };
     auto shadow = ShadowRoot::create(document(), init.mode);