| 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>
|
|
|