Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/interfaces.html |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/interfaces.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/interfaces.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8065a9881b2b21a3b12dfad4bc801eb0af855411 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/interfaces.html |
@@ -0,0 +1,505 @@ |
+<!doctype html> |
+<meta charset=utf-8> |
+<title>DOM IDL tests</title> |
+<script src=../../../resources/testharness.js></script> |
+<script src=../../../resources/testharnessreport.js></script> |
+<script src=../../../resources/WebIDLParser.js></script> |
+<script src=../../../resources/idlharness.js></script> |
+ |
+<h1>DOM IDL tests</h1> |
+<div id=log></div> |
+ |
+<script type=text/plain> |
+[Constructor(DOMString type, optional EventInit eventInitDict)/*, |
+ Exposed=(Window,Worker)*/] |
+interface Event { |
+ readonly attribute DOMString type; |
+ readonly attribute EventTarget? target; |
+ readonly attribute EventTarget? currentTarget; |
+ |
+ const unsigned short NONE = 0; |
+ const unsigned short CAPTURING_PHASE = 1; |
+ const unsigned short AT_TARGET = 2; |
+ const unsigned short BUBBLING_PHASE = 3; |
+ readonly attribute unsigned short eventPhase; |
+ |
+ void stopPropagation(); |
+ void stopImmediatePropagation(); |
+ |
+ readonly attribute boolean bubbles; |
+ readonly attribute boolean cancelable; |
+ void preventDefault(); |
+ readonly attribute boolean defaultPrevented; |
+ |
+ [Unforgeable] readonly attribute boolean isTrusted; |
+ readonly attribute DOMTimeStamp timeStamp; |
+ |
+ void initEvent(DOMString type, boolean bubbles, boolean cancelable); |
+}; |
+ |
+dictionary EventInit { |
+ boolean bubbles = false; |
+ boolean cancelable = false; |
+}; |
+ |
+[Constructor(DOMString type, optional CustomEventInit eventInitDict)/*, |
+ Exposed=(Window,Worker)*/] |
+interface CustomEvent : Event { |
+ readonly attribute any detail; |
+ |
+ void initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any detail); |
+}; |
+ |
+dictionary CustomEventInit : EventInit { |
+ any detail = null; |
+}; |
+ |
+//[Exposed=(Window,Worker)] |
+interface EventTarget { |
+ void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false); |
+ void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false); |
+ boolean dispatchEvent(Event event); |
+}; |
+ |
+callback interface EventListener { |
+ void handleEvent(Event event); |
+}; |
+ |
+[NoInterfaceObject] |
+interface NonElementParentNode { |
+ Element? getElementById(DOMString elementId); |
+}; |
+Document implements NonElementParentNode; |
+DocumentFragment implements NonElementParentNode; |
+ |
+[NoInterfaceObject] |
+interface ParentNode { |
+ [SameObject] readonly attribute HTMLCollection children; |
+ readonly attribute Element? firstElementChild; |
+ readonly attribute Element? lastElementChild; |
+ readonly attribute unsigned long childElementCount; |
+ |
+ [Unscopeable] void prepend((Node or DOMString)... nodes); |
+ [Unscopeable] void append((Node or DOMString)... nodes); |
+ |
+ [Unscopeable] Element? query(DOMString relativeSelectors); |
+ [NewObject, Unscopeable] Elements queryAll(DOMString relativeSelectors); |
+ Element? querySelector(DOMString selectors); |
+ [NewObject] NodeList querySelectorAll(DOMString selectors); |
+}; |
+Document implements ParentNode; |
+DocumentFragment implements ParentNode; |
+Element implements ParentNode; |
+ |
+[NoInterfaceObject] |
+interface NonDocumentTypeChildNode { |
+ readonly attribute Element? previousElementSibling; |
+ readonly attribute Element? nextElementSibling; |
+}; |
+Element implements NonDocumentTypeChildNode; |
+CharacterData implements NonDocumentTypeChildNode; |
+ |
+[NoInterfaceObject] |
+interface ChildNode { |
+ [Unscopeable] void before((Node or DOMString)... nodes); |
+ [Unscopeable] void after((Node or DOMString)... nodes); |
+ [Unscopeable] void replaceWith((Node or DOMString)... nodes); |
+ [Unscopeable] void remove(); |
+}; |
+DocumentType implements ChildNode; |
+Element implements ChildNode; |
+CharacterData implements ChildNode; |
+ |
+// XXX unrecognized tokens "class", "extends" |
+// https://www.w3.org/Bugs/Public/show_bug.cgi?id=20020 |
+// https://www.w3.org/Bugs/Public/show_bug.cgi?id=23225 |
+//class Elements extends Array { |
+// Element? query(DOMString relativeSelectors); |
+// Elements queryAll(DOMString relativeSelectors); |
+//}; |
+ |
+interface NodeList { |
+ getter Node? item(unsigned long index); |
+ readonly attribute unsigned long length; |
+// iterable<Node>; |
+}; |
+ |
+interface HTMLCollection { |
+ readonly attribute unsigned long length; |
+ getter Element? item(unsigned long index); |
+ getter Element? namedItem(DOMString name); |
+}; |
+ |
+[Constructor(MutationCallback callback)] |
+interface MutationObserver { |
+ void observe(Node target, MutationObserverInit options); |
+ void disconnect(); |
+ sequence<MutationRecord> takeRecords(); |
+}; |
+ |
+callback MutationCallback = void (sequence<MutationRecord> mutations, MutationObserver observer); |
+ |
+dictionary MutationObserverInit { |
+ boolean childList = false; |
+ boolean attributes; |
+ boolean characterData; |
+ boolean subtree = false; |
+ boolean attributeOldValue; |
+ boolean characterDataOldValue; |
+ sequence<DOMString> attributeFilter; |
+}; |
+ |
+interface MutationRecord { |
+ readonly attribute DOMString type; |
+ readonly attribute Node target; |
+ [SameObject] readonly attribute NodeList addedNodes; |
+ [SameObject] readonly attribute NodeList removedNodes; |
+ readonly attribute Node? previousSibling; |
+ readonly attribute Node? nextSibling; |
+ readonly attribute DOMString? attributeName; |
+ readonly attribute DOMString? attributeNamespace; |
+ readonly attribute DOMString? oldValue; |
+}; |
+ |
+interface Node : EventTarget { |
+ const unsigned short ELEMENT_NODE = 1; |
+ const unsigned short ATTRIBUTE_NODE = 2; // historical |
+ const unsigned short TEXT_NODE = 3; |
+ const unsigned short CDATA_SECTION_NODE = 4; // historical |
+ const unsigned short ENTITY_REFERENCE_NODE = 5; // historical |
+ const unsigned short ENTITY_NODE = 6; // historical |
+ const unsigned short PROCESSING_INSTRUCTION_NODE = 7; |
+ const unsigned short COMMENT_NODE = 8; |
+ const unsigned short DOCUMENT_NODE = 9; |
+ const unsigned short DOCUMENT_TYPE_NODE = 10; |
+ const unsigned short DOCUMENT_FRAGMENT_NODE = 11; |
+ const unsigned short NOTATION_NODE = 12; // historical |
+ readonly attribute unsigned short nodeType; |
+ readonly attribute DOMString nodeName; |
+ |
+ readonly attribute DOMString? baseURI; |
+ |
+ readonly attribute Document? ownerDocument; |
+ readonly attribute Node? parentNode; |
+ readonly attribute Element? parentElement; |
+ boolean hasChildNodes(); |
+ [SameObject] readonly attribute NodeList childNodes; |
+ readonly attribute Node? firstChild; |
+ readonly attribute Node? lastChild; |
+ readonly attribute Node? previousSibling; |
+ readonly attribute Node? nextSibling; |
+ |
+ attribute DOMString? nodeValue; |
+ attribute DOMString? textContent; |
+ void normalize(); |
+ |
+ [NewObject] Node cloneNode(optional boolean deep = false); |
+ boolean isEqualNode(Node? node); |
+ |
+ const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01; |
+ const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02; |
+ const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04; |
+ const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08; |
+ const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10; |
+ const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; |
+ unsigned short compareDocumentPosition(Node other); |
+ boolean contains(Node? other); |
+ |
+ DOMString? lookupPrefix(DOMString? namespace); |
+ DOMString? lookupNamespaceURI(DOMString? prefix); |
+ boolean isDefaultNamespace(DOMString? namespace); |
+ |
+ Node insertBefore(Node node, Node? child); |
+ Node appendChild(Node node); |
+ Node replaceChild(Node node, Node child); |
+ Node removeChild(Node child); |
+}; |
+ |
+[Constructor] |
+interface Document : Node { |
+ [SameObject] readonly attribute DOMImplementation implementation; |
+ readonly attribute DOMString URL; |
+ readonly attribute DOMString documentURI; |
+ readonly attribute DOMString origin; |
+ readonly attribute DOMString compatMode; |
+ readonly attribute DOMString characterSet; |
+ readonly attribute DOMString charset; // legacy alias of .characterSet |
+ readonly attribute DOMString inputEncoding; // legacy alias of .characterSet |
+ readonly attribute DOMString contentType; |
+ |
+ readonly attribute DocumentType? doctype; |
+ readonly attribute Element? documentElement; |
+ HTMLCollection getElementsByTagName(DOMString localName); |
+ HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); |
+ HTMLCollection getElementsByClassName(DOMString classNames); |
+ |
+ [NewObject] Element createElement(DOMString localName); |
+ [NewObject] Element createElementNS(DOMString? namespace, DOMString qualifiedName); |
+ [NewObject] DocumentFragment createDocumentFragment(); |
+ [NewObject] Text createTextNode(DOMString data); |
+ [NewObject] Comment createComment(DOMString data); |
+ [NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data); |
+ |
+ [NewObject] Node importNode(Node node, optional boolean deep = false); |
+ Node adoptNode(Node node); |
+ |
+ [NewObject] Attr createAttribute(DOMString localName); |
+ [NewObject] Attr createAttributeNS(DOMString? namespace, DOMString name); |
+ |
+ [NewObject] Event createEvent(DOMString interface); |
+ |
+ [NewObject] Range createRange(); |
+ |
+ // NodeFilter.SHOW_ALL = 0xFFFFFFFF |
+ [NewObject] NodeIterator createNodeIterator(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null); |
+ [NewObject] TreeWalker createTreeWalker(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null); |
+}; |
+ |
+interface XMLDocument : Document {}; |
+ |
+interface DOMImplementation { |
+ [NewObject] DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId); |
+ [NewObject] XMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, optional DocumentType? doctype = null); |
+ [NewObject] Document createHTMLDocument(optional DOMString title); |
+ |
+ boolean hasFeature(); // useless; always returns true |
+}; |
+ |
+[Constructor] |
+interface DocumentFragment : Node { |
+}; |
+ |
+interface DocumentType : Node { |
+ readonly attribute DOMString name; |
+ readonly attribute DOMString publicId; |
+ readonly attribute DOMString systemId; |
+}; |
+ |
+interface Element : Node { |
+ readonly attribute DOMString? namespaceURI; |
+ readonly attribute DOMString? prefix; |
+ readonly attribute DOMString localName; |
+ readonly attribute DOMString tagName; |
+ |
+ attribute DOMString id; |
+ attribute DOMString className; |
+ [SameObject] readonly attribute DOMTokenList classList; |
+ |
+ boolean hasAttributes(); |
+ [SameObject] readonly attribute NamedNodeMap attributes; |
+ DOMString? getAttribute(DOMString name); |
+ DOMString? getAttributeNS(DOMString? namespace, DOMString localName); |
+ void setAttribute(DOMString name, DOMString value); |
+ void setAttributeNS(DOMString? namespace, DOMString name, DOMString value); |
+ void removeAttribute(DOMString name); |
+ void removeAttributeNS(DOMString? namespace, DOMString localName); |
+ boolean hasAttribute(DOMString name); |
+ boolean hasAttributeNS(DOMString? namespace, DOMString localName); |
+ |
+ Attr? getAttributeNode(DOMString name); |
+ Attr? getAttributeNodeNS(DOMString? namespace, DOMString localName); |
+ Attr? setAttributeNode(Attr attr); |
+ Attr? setAttributeNodeNS(Attr attr); |
+ Attr removeAttributeNode(Attr attr); |
+ |
+ Element? closest(DOMString selectors); |
+ boolean matches(DOMString selectors); |
+ |
+ HTMLCollection getElementsByTagName(DOMString localName); |
+ HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); |
+ HTMLCollection getElementsByClassName(DOMString classNames); |
+}; |
+ |
+interface NamedNodeMap { |
+ readonly attribute unsigned long length; |
+ getter Attr? item(unsigned long index); |
+ getter Attr? getNamedItem(DOMString name); |
+ Attr? getNamedItemNS(DOMString? namespace, DOMString localName); |
+ Attr? setNamedItem(Attr attr); |
+ Attr? setNamedItemNS(Attr attr); |
+ Attr removeNamedItem(DOMString name); |
+ Attr removeNamedItemNS(DOMString? namespace, DOMString localName); |
+}; |
+ |
+interface Attr { |
+ readonly attribute DOMString? namespaceURI; |
+ readonly attribute DOMString? prefix; |
+ readonly attribute DOMString localName; |
+ readonly attribute DOMString name; |
+ attribute DOMString value; |
+ attribute DOMString nodeValue; // legacy alias of .value |
+ attribute DOMString textContent; // legacy alias of .value |
+ |
+ readonly attribute Element? ownerElement; |
+ |
+ readonly attribute boolean specified; // useless; always returns true |
+}; |
+ |
+interface CharacterData : Node { |
+ [TreatNullAs=EmptyString] attribute DOMString data; |
+ readonly attribute unsigned long length; |
+ DOMString substringData(unsigned long offset, unsigned long count); |
+ void appendData(DOMString data); |
+ void insertData(unsigned long offset, DOMString data); |
+ void deleteData(unsigned long offset, unsigned long count); |
+ void replaceData(unsigned long offset, unsigned long count, DOMString data); |
+}; |
+ |
+[Constructor(optional DOMString data = "")] |
+interface Text : CharacterData { |
+ [NewObject] Text splitText(unsigned long offset); |
+ readonly attribute DOMString wholeText; |
+}; |
+ |
+interface ProcessingInstruction : CharacterData { |
+ readonly attribute DOMString target; |
+}; |
+ |
+[Constructor(optional DOMString data = "")] |
+interface Comment : CharacterData { |
+}; |
+ |
+[Constructor] |
+interface Range { |
+ readonly attribute Node startContainer; |
+ readonly attribute unsigned long startOffset; |
+ readonly attribute Node endContainer; |
+ readonly attribute unsigned long endOffset; |
+ readonly attribute boolean collapsed; |
+ readonly attribute Node commonAncestorContainer; |
+ |
+ void setStart(Node node, unsigned long offset); |
+ void setEnd(Node node, unsigned long offset); |
+ void setStartBefore(Node node); |
+ void setStartAfter(Node node); |
+ void setEndBefore(Node node); |
+ void setEndAfter(Node node); |
+ void collapse(optional boolean toStart = false); |
+ void selectNode(Node node); |
+ void selectNodeContents(Node node); |
+ |
+ const unsigned short START_TO_START = 0; |
+ const unsigned short START_TO_END = 1; |
+ const unsigned short END_TO_END = 2; |
+ const unsigned short END_TO_START = 3; |
+ short compareBoundaryPoints(unsigned short how, Range sourceRange); |
+ |
+ void deleteContents(); |
+ [NewObject] DocumentFragment extractContents(); |
+ [NewObject] DocumentFragment cloneContents(); |
+ void insertNode(Node node); |
+ void surroundContents(Node newParent); |
+ |
+ [NewObject] Range cloneRange(); |
+ void detach(); |
+ |
+ boolean isPointInRange(Node node, unsigned long offset); |
+ short comparePoint(Node node, unsigned long offset); |
+ |
+ boolean intersectsNode(Node node); |
+ |
+ stringifier; |
+}; |
+ |
+interface NodeIterator { |
+ [SameObject] readonly attribute Node root; |
+ readonly attribute Node referenceNode; |
+ readonly attribute boolean pointerBeforeReferenceNode; |
+ readonly attribute unsigned long whatToShow; |
+ readonly attribute NodeFilter? filter; |
+ |
+ Node? nextNode(); |
+ Node? previousNode(); |
+ |
+ void detach(); |
+}; |
+ |
+interface TreeWalker { |
+ [SameObject] readonly attribute Node root; |
+ readonly attribute unsigned long whatToShow; |
+ readonly attribute NodeFilter? filter; |
+ attribute Node currentNode; |
+ |
+ Node? parentNode(); |
+ Node? firstChild(); |
+ Node? lastChild(); |
+ Node? previousSibling(); |
+ Node? nextSibling(); |
+ Node? previousNode(); |
+ Node? nextNode(); |
+}; |
+ |
+callback interface NodeFilter { |
+ // Constants for acceptNode() |
+ const unsigned short FILTER_ACCEPT = 1; |
+ const unsigned short FILTER_REJECT = 2; |
+ const unsigned short FILTER_SKIP = 3; |
+ |
+ // Constants for whatToShow |
+ const unsigned long SHOW_ALL = 0xFFFFFFFF; |
+ const unsigned long SHOW_ELEMENT = 0x1; |
+ const unsigned long SHOW_ATTRIBUTE = 0x2; // historical |
+ const unsigned long SHOW_TEXT = 0x4; |
+ const unsigned long SHOW_CDATA_SECTION = 0x8; // historical |
+ const unsigned long SHOW_ENTITY_REFERENCE = 0x10; // historical |
+ const unsigned long SHOW_ENTITY = 0x20; // historical |
+ const unsigned long SHOW_PROCESSING_INSTRUCTION = 0x40; |
+ const unsigned long SHOW_COMMENT = 0x80; |
+ const unsigned long SHOW_DOCUMENT = 0x100; |
+ const unsigned long SHOW_DOCUMENT_TYPE = 0x200; |
+ const unsigned long SHOW_DOCUMENT_FRAGMENT = 0x400; |
+ const unsigned long SHOW_NOTATION = 0x800; // historical |
+ |
+ unsigned short acceptNode(Node node); |
+}; |
+ |
+interface DOMTokenList { |
+ readonly attribute unsigned long length; |
+ getter DOMString? item(unsigned long index); |
+ boolean contains(DOMString token); |
+ void add(DOMString... tokens); |
+ void remove(DOMString... tokens); |
+ boolean toggle(DOMString token, optional boolean force); |
+ stringifier; |
+// iterable<DOMString>; |
+}; |
+ |
+interface DOMSettableTokenList : DOMTokenList { |
+ attribute DOMString value; |
+}; |
+</script> |
+<script> |
+"use strict"; |
+var xmlDoc, detachedRange, element; |
+var idlArray; |
+setup(function() { |
+ xmlDoc = document.implementation.createDocument(null, "", null); |
+ detachedRange = document.createRange(); |
+ detachedRange.detach(); |
+ element = xmlDoc.createElementNS(null, "test"); |
+ element.setAttribute("bar", "baz"); |
+ |
+ idlArray = new IdlArray(); |
+ idlArray.add_idls(document.querySelector("script[type=text\\/plain]").textContent); |
+ idlArray.add_objects({ |
+ Event: ['document.createEvent("Event")', 'new Event("foo")'], |
+ CustomEvent: ['new CustomEvent("foo")'], |
+ XMLDocument: ['xmlDoc'], |
+ DOMImplementation: ['document.implementation'], |
+ DocumentFragment: ['document.createDocumentFragment()'], |
+ DocumentType: ['document.doctype'], |
+ Element: ['element'], |
+ Attr: ['document.querySelector("[id]").attributes[0]'], |
+ Text: ['document.createTextNode("abc")'], |
+ ProcessingInstruction: ['xmlDoc.createProcessingInstruction("abc", "def")'], |
+ Comment: ['document.createComment("abc")'], |
+ Range: ['document.createRange()', 'detachedRange'], |
+ NodeIterator: ['document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)'], |
+ TreeWalker: ['document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)'], |
+ NodeList: ['document.querySelectorAll("script")'], |
+ HTMLCollection: ['document.body.children'], |
+ DOMTokenList: ['document.body.classList'], |
+ }); |
+}); |
+idlArray.test(); |
+</script> |