mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 16:18:12 +00:00

The mutation algorithms now more closely follow the spec and fixes some assertion failures in tests such as Acid3 and Dromaeo. The main thing that is missing right now is passing exceptions to the bindings layer. This is because of issue #6075. I spent a while trying to work it out and got so frustrated I just left it as a FIXME. Besides that, the algorithms bail at the appropriate points. This also makes the adopting steps in the document more spec compliant as it's needed by the insertion algorithm. While I was at it, I added the adoptNode IDL binding. This adds a bunch of ancestor/descendant checks to TreeNode as well. I moved the "remove_all_children" function to Node as it needs to use the full remove algorithm instead of simply removing it from the child list.
121 lines
4.3 KiB
Text
121 lines
4.3 KiB
Text
interface Document : Node {
|
|
|
|
constructor();
|
|
|
|
readonly attribute DOMImplementation implementation;
|
|
|
|
readonly attribute DOMString characterSet;
|
|
readonly attribute DOMString charset;
|
|
readonly attribute DOMString inputEncoding;
|
|
readonly attribute DOMString contentType;
|
|
|
|
readonly attribute Window? defaultView;
|
|
|
|
attribute DOMString cookie;
|
|
|
|
Element? getElementById(DOMString id);
|
|
ArrayFromVector getElementsByName(DOMString name);
|
|
ArrayFromVector getElementsByTagName(DOMString tagName);
|
|
ArrayFromVector getElementsByClassName(DOMString className);
|
|
|
|
readonly attribute Element? firstElementChild;
|
|
readonly attribute Element? lastElementChild;
|
|
|
|
Element? querySelector(DOMString selectors);
|
|
ArrayFromVector querySelectorAll(DOMString selectors);
|
|
|
|
Element createElement(DOMString tagName);
|
|
Element createElementNS(DOMString? namespace, DOMString qualifiedName);
|
|
DocumentFragment createDocumentFragment();
|
|
Text createTextNode(DOMString data);
|
|
Comment createComment(DOMString data);
|
|
Range createRange();
|
|
|
|
[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 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;
|
|
|
|
};
|