Diff
Modified: trunk/LayoutTests/ChangeLog (202872 => 202873)
--- trunk/LayoutTests/ChangeLog 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/LayoutTests/ChangeLog 2016-07-06 20:09:32 UTC (rev 202873)
@@ -1,5 +1,19 @@
2016-07-06 Chris Dumez <[email protected]>
+ [ShadowDOM] assignedSlot property should be on Text, not CharacterData
+ https://bugs.webkit.org/show_bug.cgi?id=159482
+ <rdar://problem/27201687>
+
+ Reviewed by Ryosuke Niwa.
+
+ Update / rebaseline a couple of existing tests.
+
+ * fast/shadow-dom/Slotable-interface-assignedSlot-expected.txt: Renamed from LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot-expected.txt.
+ * fast/shadow-dom/Slotable-interface-assignedSlot.html: Renamed from LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html.
+ * js/dom/dom-static-property-for-in-iteration-expected.txt:
+
+2016-07-06 Chris Dumez <[email protected]>
+
Add support for Node.isConnected
https://bugs.webkit.org/show_bug.cgi?id=159474
<rdar://problem/27197947>
Deleted: trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot-expected.txt (202872 => 202873)
--- trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot-expected.txt 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot-expected.txt 2016-07-06 20:09:32 UTC (rev 202873)
@@ -1,6 +0,0 @@
-
-PASS assignedSlot attribute must be defined on NonDocumentTypeChildNode interface
-PASS assignedSlot must return null when the node does not have an assigned node
-PASS assignedSlot must return the assigned slot
-PASS assignedSlot must return null when the assigned slot element is inside a closed shadow tree
-
Deleted: trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html (202872 => 202873)
--- trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html 2016-07-06 20:09:32 UTC (rev 202873)
@@ -1,119 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Shadow DOM: Extensions to NonDocumentTypeChildNode interface</title>
-<meta name="author" title="Ryosuke Niwa" href=""
-<meta name="assert" content="NonDocumentTypeChildNode interface must have assignedSlot attribute">
-<link rel="help" href=""
-<script src=""
-<script src=""
-<link rel='stylesheet' href=''>
-</head>
-<body>
-<div id="log"></div>
-<script>
-
-test(function () {
- assert_true('assignedSlot' in Element.prototype, 'assignedSlot must be defined on Element.prototype');
- assert_true('assignedSlot' in document.createElement('div'), 'assignedSlot must be defined on a div element');
-
- assert_true('assignedSlot' in CharacterData.prototype, 'assignedSlot must be defined on CharacterData.prototype');
- assert_true('assignedSlot' in document.createTextNode(''), 'assignedSlot must be defined on a text node');
- assert_true('assignedSlot' in document.createComment(''), 'assignedSlot must be defined on a comment node');
-
-}, 'assignedSlot attribute must be defined on NonDocumentTypeChildNode interface');
-
-test(function () {
- assert_equals(document.createElement('div').assignedSlot, null, 'assignedSlot must be null when the element is not in any tree');
-
- var shadowHost = document.createElement('div');
- var shadowRoot = shadowHost.attachShadow({mode: 'open'});
-
- var childElement = document.createElement('b');
- shadowHost.appendChild(childElement);
- assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must be null when a node is not assigned of any slot');
-
- var childTextNode = document.createTextNode('');
- shadowHost.appendChild(childTextNode);
- assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must be null when a node is not assigned of any slot');
-
- var commentNode = document.createComment('');
- shadowHost.appendChild(commentNode);
- assert_equals(commentNode.assignedSlot, null, 'assignedSlot on a comment node must be null when a node is not assigned of any slot');
-
- var slot = document.createElement('slot');
- slot.name = 'foo';
- shadowRoot.appendChild(slot);
- assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must be null when a node does not match any slot');
- assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must be null when a node does not match any slot');
- assert_equals(commentNode.assignedSlot, null, 'assignedSlot on a comment must be null when a node does not match any slot');
-
-}, 'assignedSlot must return null when the node does not have an assigned node');
-
-test(function () {
- var shadowHost = document.createElement('div');
- var childElement = document.createElement('b');
- shadowHost.appendChild(childElement);
-
- var childTextNode = document.createTextNode('');
- shadowHost.appendChild(childTextNode);
-
- var commentNode = document.createComment('');
- shadowHost.appendChild(commentNode);
-
- var processingInstructionNode = document.createProcessingInstruction('target', 'data');
- shadowHost.appendChild(processingInstructionNode);
-
- var shadowRoot = shadowHost.attachShadow({mode: 'open'});
- var slot = document.createElement('slot');
- shadowRoot.appendChild(slot);
-
- assert_equals(childElement.assignedSlot, slot, 'assignedSlot on an element must return the assigned default slot element');
- assert_equals(childTextNode.assignedSlot, slot, 'assignedSlot on a text node must return the assigned default slot element');
- assert_equals(commentNode.assignedSlot, null, 'assignedSlot on a comment node must always return null');
- assert_equals(processingInstructionNode.assignedSlot, null, 'assignedSlot on a comment node must always return null');
-
- slot.name = 'foo';
- assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must null when the element is unassigned from a slot element');
- assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must null when the node is unassigned from a slot element');
- assert_equals(commentNode.assignedSlot, null, 'assignedSlot on a text node must null when the node is unassigned from a slot element');
- assert_equals(processingInstructionNode.assignedSlot, null, 'assignedSlot on a text node must null when the node is unassigned from a slot element');
-
- childElement.slot = 'foo';
- assert_equals(childElement.assignedSlot, slot, 'assignedSlot on an element must return the re-assigned slot element');
-
- slot.removeAttribute('name');
- assert_equals(childTextNode.assignedSlot, slot, 'assignedSlot on a text node must return the re-assigned slot element');
- assert_equals(commentNode.assignedSlot, null, 'assignedSlot on a comment node must always return null');
- assert_equals(processingInstructionNode.assignedSlot, null, 'assignedSlot on a comment node must always return null');
-
-}, 'assignedSlot must return the assigned slot');
-
-test(function () {
- var shadowHost = document.createElement('div');
- var childElement = document.createElement('b');
- shadowHost.appendChild(childElement);
-
- var childTextNode = document.createTextNode('');
- shadowHost.appendChild(childTextNode);
-
- var commentNode = document.createTextNode('');
- shadowHost.appendChild(commentNode);
-
- var processingInstructionNode = document.createProcessingInstruction('target', 'data');
- shadowHost.appendChild(processingInstructionNode);
-
- var shadowRoot = shadowHost.attachShadow({mode: 'closed'});
- var slot = document.createElement('slot');
- shadowRoot.appendChild(slot);
-
- assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must return null if the slot is inside a closed shadow tree.');
- assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must return null if the slot is inside a closed shadow tree.');
- assert_equals(commentNode.assignedSlot, null, 'assignedSlot on a comment node must always return null.');
- assert_equals(processingInstructionNode.assignedSlot, null, 'assignedSlot on a processing instruction must always return null.');
-
-}, 'assignedSlot must return null when the assigned slot element is inside a closed shadow tree');
-
-</script>
-</body>
-</html>
Copied: trunk/LayoutTests/fast/shadow-dom/Slotable-interface-assignedSlot-expected.txt (from rev 202872, trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot-expected.txt) (0 => 202873)
--- trunk/LayoutTests/fast/shadow-dom/Slotable-interface-assignedSlot-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/shadow-dom/Slotable-interface-assignedSlot-expected.txt 2016-07-06 20:09:32 UTC (rev 202873)
@@ -0,0 +1,6 @@
+
+PASS assignedSlot attribute must be defined on NonDocumentTypeChildNode interface
+PASS assignedSlot must return null when the node does not have an assigned node
+PASS assignedSlot must return the assigned slot
+PASS assignedSlot must return null when the assigned slot element is inside a closed shadow tree
+
Copied: trunk/LayoutTests/fast/shadow-dom/Slotable-interface-assignedSlot.html (from rev 202872, trunk/LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html) (0 => 202873)
--- trunk/LayoutTests/fast/shadow-dom/Slotable-interface-assignedSlot.html (rev 0)
+++ trunk/LayoutTests/fast/shadow-dom/Slotable-interface-assignedSlot.html 2016-07-06 20:09:32 UTC (rev 202873)
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Shadow DOM: Slotable interface</title>
+<meta name="author" title="Ryosuke Niwa" href=""
+<meta name="assert" content="Slotable interface must have assignedSlot attribute">
+<link rel="help" href=""
+<script src=""
+<script src=""
+<link rel='stylesheet' href=''>
+</head>
+<body>
+<div id="log"></div>
+<script>
+
+test(function () {
+ assert_true('assignedSlot' in Element.prototype, 'assignedSlot must be defined on Element.prototype');
+ assert_true('assignedSlot' in document.createElement('div'), 'assignedSlot must be defined on a div element');
+
+ assert_true('assignedSlot' in Text.prototype, 'assignedSlot must be defined on Text.prototype');
+ assert_true('assignedSlot' in document.createTextNode(''), 'assignedSlot must be defined on a text node');
+ assert_false('assignedSlot' in document.createComment(''), 'assignedSlot must not be defined on a comment node');
+ assert_false('assignedSlot' in document.createProcessingInstruction('target', 'data'), 'assignedSlot must not be defined on a processing instruction node');
+
+}, 'assignedSlot attribute must be defined on NonDocumentTypeChildNode interface');
+
+test(function () {
+ assert_equals(document.createElement('div').assignedSlot, null, 'assignedSlot must be null when the element is not in any tree');
+
+ var shadowHost = document.createElement('div');
+ var shadowRoot = shadowHost.attachShadow({mode: 'open'});
+
+ var childElement = document.createElement('b');
+ shadowHost.appendChild(childElement);
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must be null when a node is not assigned of any slot');
+
+ var childTextNode = document.createTextNode('');
+ shadowHost.appendChild(childTextNode);
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must be null when a node is not assigned of any slot');
+
+ var slot = document.createElement('slot');
+ slot.name = 'foo';
+ shadowRoot.appendChild(slot);
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must be null when a node does not match any slot');
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must be null when a node does not match any slot');
+
+}, 'assignedSlot must return null when the node does not have an assigned node');
+
+test(function () {
+ var shadowHost = document.createElement('div');
+ var childElement = document.createElement('b');
+ shadowHost.appendChild(childElement);
+
+ var childTextNode = document.createTextNode('');
+ shadowHost.appendChild(childTextNode);
+
+ var shadowRoot = shadowHost.attachShadow({mode: 'open'});
+ var slot = document.createElement('slot');
+ shadowRoot.appendChild(slot);
+
+ assert_equals(childElement.assignedSlot, slot, 'assignedSlot on an element must return the assigned default slot element');
+ assert_equals(childTextNode.assignedSlot, slot, 'assignedSlot on a text node must return the assigned default slot element');
+
+ slot.name = 'foo';
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must null when the element is unassigned from a slot element');
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must null when the node is unassigned from a slot element');
+
+ childElement.slot = 'foo';
+ assert_equals(childElement.assignedSlot, slot, 'assignedSlot on an element must return the re-assigned slot element');
+
+ slot.removeAttribute('name');
+ assert_equals(childTextNode.assignedSlot, slot, 'assignedSlot on a text node must return the re-assigned slot element');
+
+}, 'assignedSlot must return the assigned slot');
+
+test(function () {
+ var shadowHost = document.createElement('div');
+ var childElement = document.createElement('b');
+ shadowHost.appendChild(childElement);
+
+ var childTextNode = document.createTextNode('');
+ shadowHost.appendChild(childTextNode);
+
+ var shadowRoot = shadowHost.attachShadow({mode: 'closed'});
+ var slot = document.createElement('slot');
+ shadowRoot.appendChild(slot);
+
+ assert_equals(childElement.assignedSlot, null, 'assignedSlot on an element must return null if the slot is inside a closed shadow tree.');
+ assert_equals(childTextNode.assignedSlot, null, 'assignedSlot on a text node must return null if the slot is inside a closed shadow tree.');
+
+}, 'assignedSlot must return null when the assigned slot element is inside a closed shadow tree');
+
+</script>
+</body>
+</html>
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (202872 => 202873)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2016-07-06 20:09:32 UTC (rev 202873)
@@ -1,5 +1,17 @@
2016-07-06 Chris Dumez <[email protected]>
+ [ShadowDOM] assignedSlot property should be on Text, not CharacterData
+ https://bugs.webkit.org/show_bug.cgi?id=159482
+ <rdar://problem/27201687>
+
+ Reviewed by Ryosuke Niwa.
+
+ Rebaseline W3C test now that one more check is passing.
+
+ * web-platform-tests/dom/interfaces-expected.txt:
+
+2016-07-06 Chris Dumez <[email protected]>
+
Add support for Node.isConnected
https://bugs.webkit.org/show_bug.cgi?id=159474
<rdar://problem/27197947>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt (202872 => 202873)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt 2016-07-06 20:09:32 UTC (rev 202873)
@@ -1178,7 +1178,7 @@
PASS Text interface: existence and properties of interface prototype object's "constructor" property
PASS Text interface: operation splitText(unsigned long)
PASS Text interface: attribute wholeText
-FAIL Text interface: attribute assignedSlot assert_own_property: expected property "assignedSlot" missing
+PASS Text interface: attribute assignedSlot
PASS Text must be primary interface of document.createTextNode("abc")
PASS Stringification of document.createTextNode("abc")
PASS Text interface: document.createTextNode("abc") must inherit property "splitText" with the proper type (0)
Modified: trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt (202872 => 202873)
--- trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt 2016-07-06 20:09:32 UTC (rev 202873)
@@ -127,11 +127,11 @@
PASS a["slot"] is
PASS a["previousElementSibling"] is [object HTMLDivElement]
PASS a["nextElementSibling"] is [object HTMLScriptElement]
-PASS a["assignedSlot"] is null
PASS a["children"] is [object HTMLCollection]
PASS a["firstElementChild"] is null
PASS a["lastElementChild"] is null
PASS a["childElementCount"] is 0
+PASS a["assignedSlot"] is null
PASS a["ALLOW_KEYBOARD_INPUT"] is 1
PASS a["nodeName"] is A
PASS a["nodeValue"] is null
Modified: trunk/Source/WebCore/CMakeLists.txt (202872 => 202873)
--- trunk/Source/WebCore/CMakeLists.txt 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/CMakeLists.txt 2016-07-06 20:09:32 UTC (rev 202873)
@@ -411,6 +411,7 @@
dom/RequestAnimationFrameCallback.idl
dom/SecurityPolicyViolationEvent.idl
dom/ShadowRoot.idl
+ dom/Slotable.idl
dom/StringCallback.idl
dom/Text.idl
dom/TextEvent.idl
Modified: trunk/Source/WebCore/ChangeLog (202872 => 202873)
--- trunk/Source/WebCore/ChangeLog 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/ChangeLog 2016-07-06 20:09:32 UTC (rev 202873)
@@ -1,3 +1,26 @@
+2016-07-06 Chris Dumez <[email protected]>
+
+ [ShadowDOM] assignedSlot property should be on Text, not CharacterData
+ https://bugs.webkit.org/show_bug.cgi?id=159482
+ <rdar://problem/27201687>
+
+ Reviewed by Ryosuke Niwa.
+
+ assignedSlot property should be on Text, not CharacterData as per:
+ - https://dom.spec.whatwg.org/#mixin-slotable
+
+ Align with the latest specification.
+
+ No new tests, rebaselined existing test.
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/Element.idl:
+ * dom/NonDocumentTypeChildNode.idl:
+ * dom/Slotable.idl: Copied from Source/WebCore/dom/NonDocumentTypeChildNode.idl.
+ * dom/Text.idl:
+
2016-07-06 Jeremy Jones <[email protected]>
Do not animate video fullscreen exit when page has navigated away.
Modified: trunk/Source/WebCore/DerivedSources.make (202872 => 202873)
--- trunk/Source/WebCore/DerivedSources.make 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/DerivedSources.make 2016-07-06 20:09:32 UTC (rev 202873)
@@ -334,6 +334,7 @@
$(WebCore)/dom/RequestAnimationFrameCallback.idl \
$(WebCore)/dom/SecurityPolicyViolationEvent.idl \
$(WebCore)/dom/ShadowRoot.idl \
+ $(WebCore)/dom/Slotable.idl \
$(WebCore)/dom/StringCallback.idl \
$(WebCore)/dom/Text.idl \
$(WebCore)/dom/TextEvent.idl \
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (202872 => 202873)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2016-07-06 20:09:32 UTC (rev 202873)
@@ -10687,6 +10687,7 @@
834DD4F31BE08989002C9C3E /* PageMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PageMac.mm; sourceTree = "<group>"; };
83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSFontFamily.h; sourceTree = "<group>"; };
835D363619FF6193004C93AB /* StyleBuilderCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBuilderCustom.h; sourceTree = "<group>"; };
+ 835F8B261D2D90BA00E408EC /* Slotable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Slotable.idl; sourceTree = "<group>"; };
8369E58F1AFDD0300087DF68 /* NonDocumentTypeChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NonDocumentTypeChildNode.idl; sourceTree = "<group>"; };
836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableHeaderCellElement.h; sourceTree = "<group>"; };
836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableDataCellElement.h; sourceTree = "<group>"; };
@@ -24817,6 +24818,7 @@
31741AAB16635E45008A5B7E /* SimulatedClickOptions.h */,
9B532EA11BA928570038A827 /* SlotAssignment.cpp */,
9B532EA21BA928570038A827 /* SlotAssignment.h */,
+ 835F8B261D2D90BA00E408EC /* Slotable.idl */,
D01A27AB10C9BFD800026A42 /* SpaceSplitString.cpp */,
D01A27AC10C9BFD800026A42 /* SpaceSplitString.h */,
BC7FA62C0D1F0EFF00DB22A9 /* StaticNodeList.cpp */,
Modified: trunk/Source/WebCore/dom/Element.idl (202872 => 202873)
--- trunk/Source/WebCore/dom/Element.idl 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/dom/Element.idl 2016-07-06 20:09:32 UTC (rev 202873)
@@ -241,5 +241,6 @@
};
Element implements ChildNode;
+Element implements NonDocumentTypeChildNode;
Element implements ParentNode;
-Element implements NonDocumentTypeChildNode;
+Element implements Slotable;
Modified: trunk/Source/WebCore/dom/NonDocumentTypeChildNode.idl (202872 => 202873)
--- trunk/Source/WebCore/dom/NonDocumentTypeChildNode.idl 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/dom/NonDocumentTypeChildNode.idl 2016-07-06 20:09:32 UTC (rev 202873)
@@ -30,8 +30,4 @@
] interface NonDocumentTypeChildNode {
readonly attribute Element previousElementSibling;
readonly attribute Element nextElementSibling;
-
-#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
- [EnabledAtRuntime=ShadowDOM, ImplementedAs=assignedSlotForBindings] readonly attribute HTMLSlotElement assignedSlot;
-#endif
};
Copied: trunk/Source/WebCore/dom/Slotable.idl (from rev 202872, trunk/Source/WebCore/dom/NonDocumentTypeChildNode.idl) (0 => 202873)
--- trunk/Source/WebCore/dom/Slotable.idl (rev 0)
+++ trunk/Source/WebCore/dom/Slotable.idl 2016-07-06 20:09:32 UTC (rev 202873)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2016 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+[
+ NoInterfaceObject,
+ EnabledAtRuntime=ShadowDOM,
+] interface Slotable {
+#if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT
+ [ImplementedAs=assignedSlotForBindings] readonly attribute HTMLSlotElement? assignedSlot;
+#endif
+};
Modified: trunk/Source/WebCore/dom/Text.idl (202872 => 202873)
--- trunk/Source/WebCore/dom/Text.idl 2016-07-06 20:03:09 UTC (rev 202872)
+++ trunk/Source/WebCore/dom/Text.idl 2016-07-06 20:09:32 UTC (rev 202873)
@@ -33,3 +33,4 @@
[RaisesException] Text replaceWholeText(optional DOMString content = "undefined");
};
+Text implements Slotable;