ladybird/Userland/Libraries/LibWeb/DOM/Node.idl
Andrew Kaster 67ceba2e6a LibWeb: Add Exposed attribute and IDL spec links where missing
The intent is to use these to autogenerate prototype declarations for
Window and WorkerGlobalScope classes.

And the spec links are just nice to have :^)
2022-10-09 10:14:57 +02:00

66 lines
2.7 KiB
Text

#import <DOM/Document.idl>
#import <DOM/Element.idl>
#import <DOM/EventTarget.idl>
// https://dom.spec.whatwg.org/#node
[Exposed=Window]
interface Node : EventTarget {
readonly attribute unsigned short nodeType;
readonly attribute DOMString nodeName;
readonly attribute USVString baseURI;
boolean hasChildNodes();
[SameObject] readonly attribute NodeList childNodes;
readonly attribute Node? firstChild;
readonly attribute Node? lastChild;
readonly attribute Node? previousSibling;
readonly attribute Node? nextSibling;
readonly attribute Node? parentNode;
readonly attribute Element? parentElement;
readonly attribute boolean isConnected;
readonly attribute Document? ownerDocument;
Node getRootNode(optional GetRootNodeOptions options = {});
[CEReactions] attribute DOMString? nodeValue;
// FIXME: [LegacyNullToEmptyString] is not allowed on nullable types as per the Web IDL spec.
// However, we only apply it to setters, so this works as a stop gap.
// Replace this with something like a special cased [LegacyNullToEmptyString].
[LegacyNullToEmptyString] attribute DOMString? textContent;
Node appendChild(Node node);
[ImplementedAs=pre_insert] Node insertBefore(Node node, Node? child);
Node replaceChild(Node node, Node child);
[ImplementedAs=pre_remove] Node removeChild(Node child);
[ImplementedAs=clone_node_binding] Node cloneNode(optional boolean deep = false);
boolean contains(Node? other);
boolean isEqualNode(Node? otherNode);
boolean isSameNode(Node? otherNode);
const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short CDATA_SECTION_NODE = 4;
const unsigned short ENTITY_REFERENCE_NODE = 5;
const unsigned short ENTITY_NODE = 6;
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;
unsigned short compareDocumentPosition(Node? otherNode);
// Node.compareDocumentPosition() constants
const unsigned short DOCUMENT_POSITION_DISCONNECTED = 1;
const unsigned short DOCUMENT_POSITION_PRECEDING = 2;
const unsigned short DOCUMENT_POSITION_FOLLOWING = 4;
const unsigned short DOCUMENT_POSITION_CONTAINS = 8;
const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 16;
const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;
};
dictionary GetRootNodeOptions {
boolean composed = false;
};