mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:48:14 +00:00

This patch adds NodeIterator (created via Document.createNodeIterator()) which allows you to iterate through all the nodes in a subtree while filtering with a provided NodeFilter callback along the way. This first cut implements the full API, but does not yet handle nodes being removed from the document while referenced by the iterator. That will be done in a subsequent patch.
180 lines
6.6 KiB
Text
180 lines
6.6 KiB
Text
#import <CSS/StyleSheetList.idl>
|
|
#import <DOM/Comment.idl>
|
|
#import <DOM/DOMImplementation.idl>
|
|
#import <DOM/DocumentFragment.idl>
|
|
#import <DOM/DocumentType.idl>
|
|
#import <DOM/Element.idl>
|
|
#import <DOM/Event.idl>
|
|
#import <DOM/HTMLCollection.idl>
|
|
#import <DOM/Node.idl>
|
|
#import <DOM/NodeFilter.idl>
|
|
#import <DOM/NodeIterator.idl>
|
|
#import <DOM/NodeList.idl>
|
|
#import <DOM/Range.idl>
|
|
#import <DOM/Text.idl>
|
|
#import <HTML/HTMLElement.idl>
|
|
#import <HTML/HTMLHeadElement.idl>
|
|
#import <HTML/HTMLScriptElement.idl>
|
|
|
|
interface Document : Node {
|
|
|
|
constructor();
|
|
|
|
boolean hasFocus();
|
|
|
|
// FIXME: These attributes currently don't do anything.
|
|
[PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;
|
|
|
|
readonly attribute DOMImplementation implementation;
|
|
|
|
readonly attribute DOMString characterSet;
|
|
readonly attribute DOMString charset;
|
|
readonly attribute DOMString inputEncoding;
|
|
readonly attribute DOMString contentType;
|
|
|
|
readonly attribute Window? defaultView;
|
|
|
|
[CEReactions] Document open(optional DOMString unused1, optional DOMString unused2);
|
|
// FIXME: implement ExceptionOr<HTML::Window> Document::open(...)
|
|
// WindowProxy? open(USVString url, DOMString name, DOMString features);
|
|
[CEReactions] undefined close();
|
|
[CEReactions] undefined write(DOMString... text);
|
|
[CEReactions] undefined writeln(DOMString... text);
|
|
|
|
attribute DOMString cookie;
|
|
|
|
readonly attribute USVString referrer;
|
|
|
|
readonly attribute Element? activeElement;
|
|
|
|
Element? getElementById(DOMString id);
|
|
HTMLCollection getElementsByName(DOMString name);
|
|
HTMLCollection getElementsByTagName(DOMString tagName);
|
|
HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
|
|
HTMLCollection getElementsByClassName(DOMString className);
|
|
|
|
readonly attribute HTMLCollection applets;
|
|
readonly attribute HTMLCollection anchors;
|
|
readonly attribute HTMLCollection images;
|
|
readonly attribute HTMLCollection embeds;
|
|
readonly attribute HTMLCollection plugins;
|
|
readonly attribute HTMLCollection links;
|
|
readonly attribute HTMLCollection forms;
|
|
readonly attribute HTMLCollection scripts;
|
|
|
|
Element createElement(DOMString tagName);
|
|
Element createElementNS(DOMString? namespace, DOMString qualifiedName);
|
|
DocumentFragment createDocumentFragment();
|
|
Text createTextNode(DOMString data);
|
|
Comment createComment(DOMString data);
|
|
Range createRange();
|
|
Event createEvent(DOMString interface);
|
|
|
|
[CEReactions, NewObject] Node importNode(Node node, optional boolean deep = false);
|
|
[CEReactions, ImplementedAs=adopt_node_binding] Node adoptNode(Node node);
|
|
|
|
[ImplementedAs=style_sheets_for_bindings] readonly attribute StyleSheetList styleSheets;
|
|
|
|
readonly attribute DOMString compatMode;
|
|
readonly attribute DocumentType? doctype;
|
|
|
|
readonly attribute Element? documentElement;
|
|
attribute HTMLElement? body;
|
|
readonly attribute HTMLHeadElement? head;
|
|
readonly attribute HTMLScriptElement? currentScript;
|
|
|
|
readonly attribute DOMString readyState;
|
|
|
|
attribute DOMString title;
|
|
|
|
// FIXME: These should all come from a ParentNode mixin
|
|
readonly attribute Element? firstElementChild;
|
|
readonly attribute Element? lastElementChild;
|
|
readonly attribute unsigned long childElementCount;
|
|
|
|
[CEReactions, Unscopable] undefined prepend((Node or DOMString)... nodes);
|
|
[CEReactions, Unscopable] undefined append((Node or DOMString)... nodes);
|
|
[CEReactions, Unscopable] undefined replaceChildren((Node or DOMString)... nodes);
|
|
|
|
Element? querySelector(DOMString selectors);
|
|
[NewObject] NodeList querySelectorAll(DOMString selectors);
|
|
|
|
[SameObject] readonly attribute HTMLCollection children;
|
|
|
|
// FIXME: These should all come from a GlobalEventHandlers mixin
|
|
attribute EventHandler onabort;
|
|
attribute EventHandler onauxclick;
|
|
attribute EventHandler onblur;
|
|
attribute EventHandler oncancel;
|
|
attribute EventHandler oncanplay;
|
|
attribute EventHandler oncanplaythrough;
|
|
attribute EventHandler onchange;
|
|
attribute EventHandler onclick;
|
|
attribute EventHandler onclose;
|
|
attribute EventHandler oncontextmenu;
|
|
attribute EventHandler oncuechange;
|
|
attribute EventHandler ondblclick;
|
|
attribute EventHandler ondrag;
|
|
attribute EventHandler ondragend;
|
|
attribute EventHandler ondragenter;
|
|
attribute EventHandler ondragleave;
|
|
attribute EventHandler ondragover;
|
|
attribute EventHandler ondragstart;
|
|
attribute EventHandler ondrop;
|
|
attribute EventHandler ondurationchange;
|
|
attribute EventHandler onemptied;
|
|
attribute EventHandler onended;
|
|
|
|
// FIXME: Should be an OnErrorEventHandler
|
|
attribute EventHandler onerror;
|
|
|
|
attribute EventHandler onfocus;
|
|
attribute EventHandler onformdata;
|
|
attribute EventHandler oninput;
|
|
attribute EventHandler oninvalid;
|
|
attribute EventHandler onkeydown;
|
|
attribute EventHandler onkeypress;
|
|
attribute EventHandler onkeyup;
|
|
attribute EventHandler onload;
|
|
attribute EventHandler onloadeddata;
|
|
attribute EventHandler onloadedmetadata;
|
|
attribute EventHandler onloadstart;
|
|
attribute EventHandler onmousedown;
|
|
[LegacyLenientThis] attribute EventHandler onmouseenter;
|
|
[LegacyLenientThis] attribute EventHandler onmouseleave;
|
|
attribute EventHandler onmousemove;
|
|
attribute EventHandler onmouseout;
|
|
attribute EventHandler onmouseover;
|
|
attribute EventHandler onmouseup;
|
|
attribute EventHandler onpause;
|
|
attribute EventHandler onplay;
|
|
attribute EventHandler onplaying;
|
|
attribute EventHandler onprogress;
|
|
attribute EventHandler onratechange;
|
|
attribute EventHandler onreset;
|
|
attribute EventHandler onresize;
|
|
attribute EventHandler onscroll;
|
|
attribute EventHandler onsecuritypolicyviolation;
|
|
attribute EventHandler onseeked;
|
|
attribute EventHandler onseeking;
|
|
attribute EventHandler onselect;
|
|
attribute EventHandler onslotchange;
|
|
attribute EventHandler onstalled;
|
|
attribute EventHandler onsubmit;
|
|
attribute EventHandler onsuspend;
|
|
attribute EventHandler ontimeupdate;
|
|
attribute EventHandler ontoggle;
|
|
attribute EventHandler onvolumechange;
|
|
attribute EventHandler onwaiting;
|
|
attribute EventHandler onwebkitanimationend;
|
|
attribute EventHandler onwebkitanimationiteration;
|
|
attribute EventHandler onwebkitanimationstart;
|
|
attribute EventHandler onwebkittransitionend;
|
|
attribute EventHandler onwheel;
|
|
|
|
readonly boolean hidden;
|
|
readonly DOMString visibilityState;
|
|
|
|
[NewObject] NodeIterator createNodeIterator(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
|
|
|
|
};
|