package org.w3c.dom; // Downloaded from https://raw.githubusercontent.com/whatwg/html-mirror/master/source [LegacyUnenumerableNamedProperties] interface HTMLAllCollection { readonly attribute unsigned long length; getter Element? (unsigned long index); getter (HTMLCollection or Element)? namedItem(DOMString name); legacycaller (HTMLCollection or Element)? item(optional DOMString nameOrIndex); }; interface HTMLFormControlsCollection : HTMLCollection { // inherits length and item() getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem() }; interface RadioNodeList : NodeList { attribute DOMString value; }; interface HTMLOptionsCollection : HTMLCollection { // inherits item(), namedItem() attribute unsigned long length; // shadows inherited length [CEReactions] setter void (unsigned long index, HTMLOptionElement? option); [CEReactions] void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); [CEReactions] void remove(long index); attribute long selectedIndex; }; enum DocumentReadyState { "loading", "interactive", "complete" }; typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; [OverrideBuiltins] partial interface Document { // resource metadata management [PutForwards=href, Unforgeable] readonly attribute Location? location; attribute USVString domain; readonly attribute USVString referrer; attribute USVString cookie; readonly attribute DOMString lastModified; readonly attribute DocumentReadyState readyState; // DOM tree accessors getter object (DOMString name); [CEReactions] attribute DOMString title; [CEReactions] attribute DOMString dir; [CEReactions] attribute HTMLElement? body; readonly attribute HTMLHeadElement? head; [SameObject] readonly attribute HTMLCollection images; [SameObject] readonly attribute HTMLCollection embeds; [SameObject] readonly attribute HTMLCollection plugins; [SameObject] readonly attribute HTMLCollection links; [SameObject] readonly attribute HTMLCollection forms; [SameObject] readonly attribute HTMLCollection scripts; NodeList getElementsByName(DOMString elementName); readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only // dynamic markup insertion [CEReactions] Document open(optional DOMString type = "text/html", optional DOMString replace = ""); WindowProxy open(USVString url, DOMString name, DOMString features); [CEReactions] void close(); [CEReactions] void write(DOMString... text); [CEReactions] void writeln(DOMString... text); // user interaction readonly attribute WindowProxy? defaultView; readonly attribute Element? activeElement; boolean hasFocus(); [CEReactions] attribute DOMString designMode; [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = ""); boolean queryCommandEnabled(DOMString commandId); boolean queryCommandIndeterm(DOMString commandId); boolean queryCommandState(DOMString commandId); boolean queryCommandSupported(DOMString commandId); DOMString queryCommandValue(DOMString commandId); // special event handler IDL attributes that only apply to Document objects [LenientThis] attribute EventHandler onreadystatechange; }; Document implements GlobalEventHandlers; Document implements DocumentAndElementEventHandlers; [HTMLConstructor] interface HTMLElement : Element { // metadata attributes [CEReactions] attribute DOMString title; [CEReactions] attribute DOMString lang; [CEReactions] attribute boolean translate; [CEReactions] attribute DOMString dir; [SameObject] readonly attribute DOMStringMap dataset; // user interaction [CEReactions] attribute boolean hidden; void click(); [CEReactions] attribute long tabIndex; void focus(); void blur(); [CEReactions] attribute DOMString accessKey; readonly attribute DOMString accessKeyLabel; [CEReactions] attribute boolean draggable; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList dropzone; [CEReactions] attribute HTMLMenuElement? contextMenu; [CEReactions] attribute boolean spellcheck; void forceSpellCheck(); [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText; }; HTMLElement implements GlobalEventHandlers; HTMLElement implements DocumentAndElementEventHandlers; HTMLElement implements ElementContentEditable; interface HTMLUnknownElement : HTMLElement { }; [OverrideBuiltins] interface DOMStringMap { getter DOMString (DOMString name); [CEReactions] setter void (DOMString name, DOMString value); [CEReactions] deleter void (DOMString name); }; [HTMLConstructor] interface HTMLHtmlElement : HTMLElement {}; interface HTMLHeadElement : HTMLElement {}; [HTMLConstructor] interface HTMLTitleElement : HTMLElement { [CEReactions] attribute DOMString text; }; [HTMLConstructor] interface HTMLBaseElement : HTMLElement { [CEReactions] attribute USVString href; [CEReactions] attribute DOMString target; }; [HTMLConstructor] interface HTMLLinkElement : HTMLElement { [CEReactions] attribute USVString href; [CEReactions] attribute DOMString? crossOrigin; [CEReactions] attribute DOMString rel; [CEReactions] attribute RequestDestination as; // (default "") [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList; [CEReactions] attribute DOMString media; [CEReactions] attribute DOMString nonce; [CEReactions] attribute DOMString hreflang; [CEReactions] attribute DOMString type; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes; [CEReactions] attribute DOMString referrerPolicy; }; HTMLLinkElement implements LinkStyle; [HTMLConstructor] interface HTMLMetaElement : HTMLElement { [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString httpEquiv; [CEReactions] attribute DOMString content; }; [HTMLConstructor] interface HTMLStyleElement : HTMLElement { [CEReactions] attribute DOMString media; [CEReactions] attribute DOMString nonce; [CEReactions] attribute DOMString type; }; HTMLStyleElement implements LinkStyle; [HTMLConstructor] interface HTMLBodyElement : HTMLElement {}; HTMLBodyElement implements WindowEventHandlers; [HTMLConstructor] interface HTMLHeadingElement : HTMLElement {}; [HTMLConstructor] interface HTMLParagraphElement : HTMLElement {}; [HTMLConstructor] interface HTMLHRElement : HTMLElement {}; [HTMLConstructor] interface HTMLPreElement : HTMLElement {}; [HTMLConstructor] interface HTMLQuoteElement : HTMLElement { [CEReactions] attribute USVString cite; }; [HTMLConstructor] interface HTMLOListElement : HTMLElement { [CEReactions] attribute boolean reversed; [CEReactions] attribute long start; [CEReactions] attribute DOMString type; }; [HTMLConstructor] interface HTMLUListElement : HTMLElement {}; [HTMLConstructor] interface HTMLLIElement : HTMLElement { [CEReactions] attribute long value; }; [HTMLConstructor] interface HTMLDListElement : HTMLElement {}; [HTMLConstructor] interface HTMLDivElement : HTMLElement {}; [HTMLConstructor] interface HTMLAnchorElement : HTMLElement { [CEReactions] attribute DOMString target; [CEReactions] attribute DOMString download; [CEReactions] attribute USVString ping; [CEReactions] attribute DOMString rel; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList; [CEReactions] attribute DOMString hreflang; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString text; [CEReactions] attribute DOMString referrerPolicy; }; HTMLAnchorElement implements HTMLHyperlinkElementUtils; [HTMLConstructor] interface HTMLDataElement : HTMLElement { [CEReactions] attribute DOMString value; }; [HTMLConstructor] interface HTMLTimeElement : HTMLElement { [CEReactions] attribute DOMString dateTime; }; [HTMLConstructor] interface HTMLSpanElement : HTMLElement {}; [HTMLConstructor] interface HTMLBRElement : HTMLElement {}; [NoInterfaceObject] interface HTMLHyperlinkElementUtils { [CEReactions] stringifier attribute USVString href; readonly attribute USVString origin; [CEReactions] attribute USVString protocol; [CEReactions] attribute USVString username; [CEReactions] attribute USVString password; [CEReactions] attribute USVString host; [CEReactions] attribute USVString hostname; [CEReactions] attribute USVString port; [CEReactions] attribute USVString pathname; [CEReactions] attribute USVString search; [CEReactions] attribute USVString hash; }; [HTMLConstructor] interface HTMLModElement : HTMLElement { [CEReactions] attribute USVString cite; [CEReactions] attribute DOMString dateTime; }; [HTMLConstructor] interface HTMLPictureElement : HTMLElement {}; [HTMLConstructor] interface HTMLSourceElement : HTMLElement { [CEReactions] attribute USVString src; [CEReactions] attribute DOMString type; [CEReactions] attribute USVString srcset; [CEReactions] attribute DOMString sizes; [CEReactions] attribute DOMString media; }; [HTMLConstructor, NamedConstructor=Image(optional unsigned long width, optional unsigned long height)] interface HTMLImageElement : HTMLElement { [CEReactions] attribute DOMString alt; [CEReactions] attribute USVString src; [CEReactions] attribute USVString srcset; [CEReactions] attribute DOMString sizes; [CEReactions] attribute DOMString? crossOrigin; [CEReactions] attribute DOMString useMap; [CEReactions] attribute boolean isMap; [CEReactions] attribute unsigned long width; [CEReactions] attribute unsigned long height; readonly attribute unsigned long naturalWidth; readonly attribute unsigned long naturalHeight; readonly attribute boolean complete; readonly attribute USVString currentSrc; [CEReactions] attribute DOMString referrerPolicy; }; [HTMLConstructor] interface HTMLIFrameElement : HTMLElement { [CEReactions] attribute USVString src; [CEReactions] attribute DOMString srcdoc; [CEReactions] attribute DOMString name; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox; [CEReactions] attribute boolean allowFullscreen; [CEReactions] attribute boolean allowUserMedia; [CEReactions] attribute DOMString width; [CEReactions] attribute DOMString height; [CEReactions] attribute DOMString referrerPolicy; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; Document? getSVGDocument(); }; [HTMLConstructor] interface HTMLEmbedElement : HTMLElement { [CEReactions] attribute USVString src; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString width; [CEReactions] attribute DOMString height; Document? getSVGDocument(); legacycaller any (any... arguments); }; [HTMLConstructor] interface HTMLObjectElement : HTMLElement { [CEReactions] attribute USVString data; [CEReactions] attribute DOMString type; [CEReactions] attribute boolean typeMustMatch; [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString useMap; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString width; [CEReactions] attribute DOMString height; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; Document? getSVGDocument(); readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); legacycaller any (any... arguments); }; [HTMLConstructor] interface HTMLParamElement : HTMLElement { [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString value; }; [HTMLConstructor] interface HTMLVideoElement : HTMLMediaElement { [CEReactions] attribute unsigned long width; [CEReactions] attribute unsigned long height; readonly attribute unsigned long videoWidth; readonly attribute unsigned long videoHeight; [CEReactions] attribute USVString poster; [CEReactions] attribute boolean playsInline; }; [HTMLConstructor, NamedConstructor=Audio(optional DOMString src)] interface HTMLAudioElement : HTMLMediaElement {}; [HTMLConstructor] interface HTMLTrackElement : HTMLElement { [CEReactions] attribute DOMString kind; [CEReactions] attribute USVString src; [CEReactions] attribute DOMString srclang; [CEReactions] attribute DOMString label; [CEReactions] attribute boolean default; const unsigned short NONE = 0; const unsigned short LOADING = 1; const unsigned short LOADED = 2; const unsigned short ERROR = 3; readonly attribute unsigned short readyState; readonly attribute TextTrack track; }; enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" }; typedef (MediaStream or MediaSource or Blob) MediaProvider; interface HTMLMediaElement : HTMLElement { // error state readonly attribute MediaError? error; // network state [CEReactions] attribute USVString src; attribute MediaProvider? srcObject; readonly attribute USVString currentSrc; [CEReactions] attribute DOMString? crossOrigin; const unsigned short NETWORK_EMPTY = 0; const unsigned short NETWORK_IDLE = 1; const unsigned short NETWORK_LOADING = 2; const unsigned short NETWORK_NO_SOURCE = 3; readonly attribute unsigned short networkState; [CEReactions] attribute DOMString preload; readonly attribute TimeRanges buffered; void load(); CanPlayTypeResult canPlayType(DOMString type); // ready state const unsigned short HAVE_NOTHING = 0; const unsigned short HAVE_METADATA = 1; const unsigned short HAVE_CURRENT_DATA = 2; const unsigned short HAVE_FUTURE_DATA = 3; const unsigned short HAVE_ENOUGH_DATA = 4; readonly attribute unsigned short readyState; readonly attribute boolean seeking; // playback state attribute double currentTime; void fastSeek(double time); readonly attribute unrestricted double duration; object getStartDate(); readonly attribute boolean paused; attribute double defaultPlaybackRate; attribute double playbackRate; readonly attribute TimeRanges played; readonly attribute TimeRanges seekable; readonly attribute boolean ended; [CEReactions] attribute boolean autoplay; [CEReactions] attribute boolean loop; Promise play(); void pause(); // controls [CEReactions] attribute boolean controls; attribute double volume; attribute boolean muted; [CEReactions] attribute boolean defaultMuted; // tracks [SameObject] readonly attribute AudioTrackList audioTracks; [SameObject] readonly attribute VideoTrackList videoTracks; [SameObject] readonly attribute TextTrackList textTracks; TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = ""); }; interface MediaError { const unsigned short MEDIA_ERR_ABORTED = 1; const unsigned short MEDIA_ERR_NETWORK = 2; const unsigned short MEDIA_ERR_DECODE = 3; const unsigned short MEDIA_ERR_SRC_NOT_SUPPORTED = 4; readonly attribute unsigned short code; }; interface AudioTrackList : EventTarget { readonly attribute unsigned long length; getter AudioTrack (unsigned long index); AudioTrack? getTrackById(DOMString id); attribute EventHandler onchange; attribute EventHandler onaddtrack; attribute EventHandler onremovetrack; }; interface AudioTrack { readonly attribute DOMString id; readonly attribute DOMString kind; readonly attribute DOMString label; readonly attribute DOMString language; attribute boolean enabled; }; interface VideoTrackList : EventTarget { readonly attribute unsigned long length; getter VideoTrack (unsigned long index); VideoTrack? getTrackById(DOMString id); readonly attribute long selectedIndex; attribute EventHandler onchange; attribute EventHandler onaddtrack; attribute EventHandler onremovetrack; }; interface VideoTrack { readonly attribute DOMString id; readonly attribute DOMString kind; readonly attribute DOMString label; readonly attribute DOMString language; attribute boolean selected; }; interface TextTrackList : EventTarget { readonly attribute unsigned long length; getter TextTrack (unsigned long index); TextTrack? getTrackById(DOMString id); attribute EventHandler onchange; attribute EventHandler onaddtrack; attribute EventHandler onremovetrack; }; enum TextTrackMode { "disabled", "hidden", "showing" }; enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" }; interface TextTrack : EventTarget { readonly attribute TextTrackKind kind; readonly attribute DOMString label; readonly attribute DOMString language; readonly attribute DOMString id; readonly attribute DOMString inBandMetadataTrackDispatchType; attribute TextTrackMode mode; readonly attribute TextTrackCueList? cues; readonly attribute TextTrackCueList? activeCues; void addCue(TextTrackCue cue); void removeCue(TextTrackCue cue); attribute EventHandler oncuechange; }; interface TextTrackCueList { readonly attribute unsigned long length; getter TextTrackCue (unsigned long index); TextTrackCue? getCueById(DOMString id); }; interface TextTrackCue : EventTarget { readonly attribute TextTrack? track; attribute DOMString id; attribute double startTime; attribute double endTime; attribute boolean pauseOnExit; attribute EventHandler onenter; attribute EventHandler onexit; }; interface TimeRanges { readonly attribute unsigned long length; double start(unsigned long index); double end(unsigned long index); }; [Constructor(DOMString type, optional TrackEventInit eventInitDict)] interface TrackEvent : Event { readonly attribute (VideoTrack or AudioTrack or TextTrack)? track; }; dictionary TrackEventInit : EventInit { (VideoTrack or AudioTrack or TextTrack)? track = null; }; [HTMLConstructor] interface HTMLMapElement : HTMLElement { [CEReactions] attribute DOMString name; [SameObject] readonly attribute HTMLCollection areas; }; [HTMLConstructor] interface HTMLAreaElement : HTMLElement { [CEReactions] attribute DOMString alt; [CEReactions] attribute DOMString coords; [CEReactions] attribute DOMString shape; [CEReactions] attribute DOMString target; [CEReactions] attribute DOMString download; [CEReactions] attribute USVString ping; [CEReactions] attribute DOMString rel; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList; [CEReactions] attribute DOMString referrerPolicy; }; HTMLAreaElement implements HTMLHyperlinkElementUtils; [HTMLConstructor] interface HTMLTableElement : HTMLElement { [CEReactions] attribute HTMLTableCaptionElement? caption; HTMLTableCaptionElement createCaption(); [CEReactions] void deleteCaption(); [CEReactions] attribute HTMLTableSectionElement? tHead; HTMLTableSectionElement createTHead(); [CEReactions] void deleteTHead(); [CEReactions] attribute HTMLTableSectionElement? tFoot; HTMLTableSectionElement createTFoot(); [CEReactions] void deleteTFoot(); [SameObject] readonly attribute HTMLCollection tBodies; HTMLTableSectionElement createTBody(); [SameObject] readonly attribute HTMLCollection rows; HTMLTableRowElement insertRow(optional long index = -1); [CEReactions] void deleteRow(long index); }; [HTMLConstructor] interface HTMLTableCaptionElement : HTMLElement {}; [HTMLConstructor] interface HTMLTableColElement : HTMLElement { [CEReactions] attribute unsigned long span; }; [HTMLConstructor] interface HTMLTableSectionElement : HTMLElement { [SameObject] readonly attribute HTMLCollection rows; HTMLElement insertRow(optional long index = -1); [CEReactions] void deleteRow(long index); }; [HTMLConstructor] interface HTMLTableRowElement : HTMLElement { readonly attribute long rowIndex; readonly attribute long sectionRowIndex; [SameObject] readonly attribute HTMLCollection cells; [CEReactions] HTMLElement insertCell(optional long index = -1); [CEReactions] void deleteCell(long index); }; [HTMLConstructor] interface HTMLTableCellElement : HTMLElement { [CEReactions] attribute unsigned long colSpan; [CEReactions] attribute unsigned long rowSpan; [CEReactions] attribute DOMString headers; readonly attribute long cellIndex; [CEReactions] attribute DOMString scope; // only conforming for th elements [CEReactions] attribute DOMString abbr; // only conforming for th elements }; [OverrideBuiltins, LegacyUnenumerableNamedProperties, HTMLConstructor] interface HTMLFormElement : HTMLElement { [CEReactions] attribute DOMString acceptCharset; [CEReactions] attribute USVString action; [CEReactions] attribute DOMString autocomplete; [CEReactions] attribute DOMString enctype; [CEReactions] attribute DOMString encoding; [CEReactions] attribute DOMString method; [CEReactions] attribute DOMString name; [CEReactions] attribute boolean noValidate; [CEReactions] attribute DOMString target; [SameObject] readonly attribute HTMLFormControlsCollection elements; readonly attribute unsigned long length; getter Element (unsigned long index); getter (RadioNodeList or Element) (DOMString name); void submit(); [CEReactions] void reset(); boolean checkValidity(); boolean reportValidity(); }; [HTMLConstructor] interface HTMLLabelElement : HTMLElement { readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString htmlFor; readonly attribute HTMLElement? control; }; [HTMLConstructor] interface HTMLInputElement : HTMLElement { [CEReactions] attribute DOMString accept; [CEReactions] attribute DOMString alt; [CEReactions] attribute DOMString autocomplete; [CEReactions] attribute boolean autofocus; [CEReactions] attribute boolean defaultChecked; attribute boolean checked; [CEReactions] attribute DOMString dirName; [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; readonly attribute FileList? files; [CEReactions] attribute USVString formAction; [CEReactions] attribute DOMString formEnctype; [CEReactions] attribute DOMString formMethod; [CEReactions] attribute boolean formNoValidate; [CEReactions] attribute DOMString formTarget; [CEReactions] attribute unsigned long height; attribute boolean indeterminate; [CEReactions] attribute DOMString inputMode; readonly attribute HTMLElement? list; [CEReactions] attribute DOMString max; [CEReactions] attribute long maxLength; [CEReactions] attribute DOMString min; [CEReactions] attribute long minLength; [CEReactions] attribute boolean multiple; [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString pattern; [CEReactions] attribute DOMString placeholder; [CEReactions] attribute boolean readOnly; [CEReactions] attribute boolean required; [CEReactions] attribute unsigned long size; [CEReactions] attribute USVString src; [CEReactions] attribute DOMString step; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString defaultValue; [CEReactions, TreatNullAs=EmptyString] attribute DOMString value; attribute object? valueAsDate; attribute unrestricted double valueAsNumber; [CEReactions] attribute unsigned long width; void stepUp(optional long n = 1); void stepDown(optional long n = 1); readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; void select(); attribute unsigned long? selectionStart; attribute unsigned long? selectionEnd; attribute DOMString? selectionDirection; void setRangeText(DOMString replacement); void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; [HTMLConstructor] interface HTMLButtonElement : HTMLElement { [CEReactions] attribute boolean autofocus; [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute USVString formAction; [CEReactions] attribute DOMString formEnctype; [CEReactions] attribute DOMString formMethod; [CEReactions] attribute boolean formNoValidate; [CEReactions] attribute DOMString formTarget; [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString value; [CEReactions] attribute HTMLMenuElement? menu; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; }; [HTMLConstructor] interface HTMLSelectElement : HTMLElement { [CEReactions] attribute DOMString autocomplete; [CEReactions] attribute boolean autofocus; [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute boolean multiple; [CEReactions] attribute DOMString name; [CEReactions] attribute boolean required; [CEReactions] attribute unsigned long size; readonly attribute DOMString type; [SameObject] readonly attribute HTMLOptionsCollection options; [CEReactions] attribute unsigned long length; getter Element? item(unsigned long index); HTMLOptionElement? namedItem(DOMString name); [CEReactions] void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); [CEReactions] void remove(); // ChildNode overload [CEReactions] void remove(long index); [CEReactions] setter void (unsigned long index, HTMLOptionElement? option); [SameObject] readonly attribute HTMLCollection selectedOptions; attribute long selectedIndex; attribute DOMString value; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; }; [HTMLConstructor] interface HTMLDataListElement : HTMLElement { [SameObject] readonly attribute HTMLCollection options; }; [HTMLConstructor] interface HTMLOptGroupElement : HTMLElement { [CEReactions] attribute boolean disabled; [CEReactions] attribute DOMString label; }; [HTMLConstructor, NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)] interface HTMLOptionElement : HTMLElement { [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString label; [CEReactions] attribute boolean defaultSelected; attribute boolean selected; [CEReactions] attribute DOMString value; [CEReactions] attribute DOMString text; readonly attribute long index; }; [HTMLConstructor] interface HTMLTextAreaElement : HTMLElement { [CEReactions] attribute DOMString autocomplete; [CEReactions] attribute boolean autofocus; [CEReactions] attribute unsigned long cols; [CEReactions] attribute DOMString dirName; [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString inputMode; [CEReactions] attribute long maxLength; [CEReactions] attribute long minLength; [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString placeholder; [CEReactions] attribute boolean readOnly; [CEReactions] attribute boolean required; [CEReactions] attribute unsigned long rows; [CEReactions] attribute DOMString wrap; readonly attribute DOMString type; [CEReactions] attribute DOMString defaultValue; [CEReactions, TreatNullAs=EmptyString] attribute DOMString value; readonly attribute unsigned long textLength; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; void select(); attribute unsigned long? selectionStart; attribute unsigned long? selectionEnd; attribute DOMString? selectionDirection; void setRangeText(DOMString replacement); void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); }; [HTMLConstructor] interface HTMLKeygenElement : HTMLElement { [CEReactions] attribute boolean autofocus; [CEReactions] attribute DOMString challenge; [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString keytype; [CEReactions] attribute DOMString name; readonly attribute DOMString type; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; }; [HTMLConstructor] interface HTMLOutputElement : HTMLElement { [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString name; readonly attribute DOMString type; [CEReactions] attribute DOMString defaultValue; [CEReactions] attribute DOMString value; readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); [SameObject] readonly attribute NodeList labels; }; [HTMLConstructor] interface HTMLProgressElement : HTMLElement { [CEReactions] attribute double value; [CEReactions] attribute double max; readonly attribute double position; [SameObject] readonly attribute NodeList labels; }; [HTMLConstructor] interface HTMLMeterElement : HTMLElement { [CEReactions] attribute double value; [CEReactions] attribute double min; [CEReactions] attribute double max; [CEReactions] attribute double low; [CEReactions] attribute double high; [CEReactions] attribute double optimum; [SameObject] readonly attribute NodeList labels; }; [HTMLConstructor] interface HTMLFieldSetElement : HTMLElement { [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString name; readonly attribute DOMString type; [SameObject] readonly attribute HTMLCollection elements; readonly attribute boolean willValidate; [SameObject] readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); void setCustomValidity(DOMString error); }; [HTMLConstructor] interface HTMLLegendElement : HTMLElement { readonly attribute HTMLFormElement? form; }; enum SelectionMode { "select", "start", "end", "preserve", // default }; interface ValidityState { readonly attribute boolean valueMissing; readonly attribute boolean typeMismatch; readonly attribute boolean patternMismatch; readonly attribute boolean tooLong; readonly attribute boolean tooShort; readonly attribute boolean rangeUnderflow; readonly attribute boolean rangeOverflow; readonly attribute boolean stepMismatch; readonly attribute boolean badInput; readonly attribute boolean customError; readonly attribute boolean valid; }; [HTMLConstructor] interface HTMLDetailsElement : HTMLElement { [CEReactions] attribute boolean open; }; [HTMLConstructor] interface HTMLMenuElement : HTMLElement { [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString label; }; [HTMLConstructor] interface HTMLMenuItemElement : HTMLElement { [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString label; [CEReactions] attribute USVString icon; [CEReactions] attribute boolean disabled; [CEReactions] attribute boolean checked; [CEReactions] attribute DOMString radiogroup; [CEReactions] attribute boolean default; }; [Constructor(DOMString type, optional RelatedEventInit eventInitDict)] interface RelatedEvent : Event { readonly attribute EventTarget? relatedTarget; }; dictionary RelatedEventInit : EventInit { EventTarget? relatedTarget = null; }; [HTMLConstructor] interface HTMLDialogElement : HTMLElement { [CEReactions] attribute boolean open; attribute DOMString returnValue; [CEReactions] void show(optional (MouseEvent or Element) anchor); [CEReactions] void showModal(optional (MouseEvent or Element) anchor); [CEReactions] void close(optional DOMString returnValue); }; [HTMLConstructor] interface HTMLScriptElement : HTMLElement { [CEReactions] attribute USVString src; [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString charset; [CEReactions] attribute boolean async; [CEReactions] attribute boolean defer; [CEReactions] attribute DOMString? crossOrigin; [CEReactions] attribute DOMString text; [CEReactions] attribute DOMString nonce; }; [HTMLConstructor] interface HTMLTemplateElement : HTMLElement { readonly attribute DocumentFragment content; }; [HTMLConstructor] interface HTMLSlotElement : HTMLElement { [CEReactions] attribute DOMString name; sequence assignedNodes(optional AssignedNodesOptions options); }; dictionary AssignedNodesOptions { boolean flatten = false; }; typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext; [HTMLConstructor] interface HTMLCanvasElement : HTMLElement { [CEReactions] attribute unsigned long width; [CEReactions] attribute unsigned long height; RenderingContext? getContext(DOMString contextId, any... arguments); USVString toDataURL(optional DOMString type, optional any quality); void toBlob(BlobCallback _callback, optional DOMString type, optional any quality); }; callback BlobCallback = void (Blob? blob); typedef (HTMLImageElement or SVGImageElement) HTMLOrSVGImageElement; typedef (HTMLOrSVGImageElement or HTMLVideoElement or HTMLCanvasElement or ImageBitmap) CanvasImageSource; enum CanvasFillRule { "nonzero", "evenodd" }; dictionary CanvasRenderingContext2DSettings { boolean alpha = true; }; enum ImageSmoothingQuality { "low", "medium", "high" }; interface CanvasRenderingContext2D { // back-reference to the canvas readonly attribute HTMLCanvasElement canvas; }; CanvasRenderingContext2D implements CanvasState; CanvasRenderingContext2D implements CanvasTransform; CanvasRenderingContext2D implements CanvasCompositing; CanvasRenderingContext2D implements CanvasImageSmoothing; CanvasRenderingContext2D implements CanvasFillStrokeStyles; CanvasRenderingContext2D implements CanvasShadowStyles; CanvasRenderingContext2D implements CanvasFilters; CanvasRenderingContext2D implements CanvasRect; CanvasRenderingContext2D implements CanvasDrawPath; CanvasRenderingContext2D implements CanvasUserInterface; CanvasRenderingContext2D implements CanvasText; CanvasRenderingContext2D implements CanvasDrawImage; CanvasRenderingContext2D implements CanvasHitRegion; CanvasRenderingContext2D implements CanvasImageData; CanvasRenderingContext2D implements CanvasPathDrawingStyles; CanvasRenderingContext2D implements CanvasTextDrawingStyles; CanvasRenderingContext2D implements CanvasPath; [NoInterfaceObject] interface CanvasState { // state void save(); // push state on state stack void restore(); // pop state stack and restore state }; [NoInterfaceObject] interface CanvasTransform { // transformations (default transform is the identity matrix) void scale(unrestricted double x, unrestricted double y); void rotate(unrestricted double angle); void translate(unrestricted double x, unrestricted double y); void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f); [NewObject] DOMMatrix getTransform(); void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f); void setTransform(optional DOMMatrixInit transform); void resetTransform(); }; [NoInterfaceObject] interface CanvasCompositing { // compositing attribute unrestricted double globalAlpha; // (default 1.0) attribute DOMString globalCompositeOperation; // (default source-over) }; [NoInterfaceObject] interface CanvasImageSmoothing { // image smoothing attribute boolean imageSmoothingEnabled; // (default true) attribute ImageSmoothingQuality imageSmoothingQuality; // (default low) }; [NoInterfaceObject] interface CanvasFillStrokeStyles { // colors and styles (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces) attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black) attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black) CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1); CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1); CanvasPattern? createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition); }; [NoInterfaceObject] interface CanvasShadowStyles { // shadows attribute unrestricted double shadowOffsetX; // (default 0) attribute unrestricted double shadowOffsetY; // (default 0) attribute unrestricted double shadowBlur; // (default 0) attribute DOMString shadowColor; // (default transparent black) }; [NoInterfaceObject] interface CanvasFilters { // filters attribute DOMString filter; // (default "none") }; [NoInterfaceObject] interface CanvasRect { // rects void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); void fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); }; [NoInterfaceObject] interface CanvasDrawPath { // path API (see also CanvasPath) void beginPath(); void fill(optional CanvasFillRule fillRule = "nonzero"); void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero"); void stroke(); void stroke(Path2D path); void clip(optional CanvasFillRule fillRule = "nonzero"); void clip(Path2D path, optional CanvasFillRule fillRule = "nonzero"); void resetClip(); boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero"); boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero"); boolean isPointInStroke(unrestricted double x, unrestricted double y); boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y); }; [NoInterfaceObject] interface CanvasUserInterface { void drawFocusIfNeeded(Element element); void drawFocusIfNeeded(Path2D path, Element element); void scrollPathIntoView(); void scrollPathIntoView(Path2D path); }; [NoInterfaceObject] interface CanvasText { // text (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces) void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth); void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth); TextMetrics measureText(DOMString text); }; [NoInterfaceObject] interface CanvasDrawImage { // drawing images void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy); void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh); void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy, unrestricted double sw, unrestricted double sh, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh); }; [NoInterfaceObject] interface CanvasHitRegion { // hit regions void addHitRegion(optional HitRegionOptions options); void removeHitRegion(DOMString id); void clearHitRegions(); }; [NoInterfaceObject] interface CanvasImageData { // pixel manipulation ImageData createImageData(double sw, double sh); ImageData createImageData(ImageData imagedata); ImageData getImageData(double sx, double sy, double sw, double sh); void putImageData(ImageData imagedata, double dx, double dy); void putImageData(ImageData imagedata, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight); }; enum CanvasLineCap { "butt", "round", "square" }; enum CanvasLineJoin { "round", "bevel", "miter"}; enum CanvasTextAlign { "start", "end", "left", "right", "center" }; enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" }; enum CanvasDirection { "ltr", "rtl", "inherit" }; [NoInterfaceObject] interface CanvasPathDrawingStyles { // line caps/joins attribute unrestricted double lineWidth; // (default 1) attribute CanvasLineCap lineCap; // (default "butt") attribute CanvasLineJoin lineJoin; // (default "miter") attribute unrestricted double miterLimit; // (default 10) // dashed lines void setLineDash(sequence segments); // default empty sequence getLineDash(); attribute unrestricted double lineDashOffset; }; [NoInterfaceObject] interface CanvasTextDrawingStyles { // text attribute DOMString font; // (default 10px sans-serif) attribute CanvasTextAlign textAlign; // (default: "start") attribute CanvasTextBaseline textBaseline; // (default: "alphabetic") attribute CanvasDirection direction; // (default: "inherit") }; [NoInterfaceObject, Exposed=(Window,Worker)] interface CanvasPath { // shared path API methods void closePath(); void moveTo(unrestricted double x, unrestricted double y); void lineTo(unrestricted double x, unrestricted double y); void quadraticCurveTo(unrestricted double cpx, unrestricted double cpy, unrestricted double x, unrestricted double y); void bezierCurveTo(unrestricted double cp1x, unrestricted double cp1y, unrestricted double cp2x, unrestricted double cp2y, unrestricted double x, unrestricted double y); void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius); void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation); void rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); void arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false); void ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false); }; interface CanvasGradient { // opaque object void addColorStop(double offset, DOMString color); }; interface CanvasPattern { // opaque object void setTransform(optional DOMMatrixInit transform); }; interface TextMetrics { // x-direction readonly attribute double width; // advance width readonly attribute double actualBoundingBoxLeft; readonly attribute double actualBoundingBoxRight; // y-direction readonly attribute double fontBoundingBoxAscent; readonly attribute double fontBoundingBoxDescent; readonly attribute double actualBoundingBoxAscent; readonly attribute double actualBoundingBoxDescent; readonly attribute double emHeightAscent; readonly attribute double emHeightDescent; readonly attribute double hangingBaseline; readonly attribute double alphabeticBaseline; readonly attribute double ideographicBaseline; }; dictionary HitRegionOptions { Path2D? path = null; CanvasFillRule fillRule = "nonzero"; DOMString id = ""; DOMString? parentID = null; DOMString cursor = "inherit"; // for control-backed regions: Element? control = null; // for unbacked regions: DOMString? label = null; DOMString? role = null; }; [Constructor(unsigned long sw, unsigned long sh), Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh), Exposed=(Window,Worker)] interface ImageData { readonly attribute unsigned long width; readonly attribute unsigned long height; readonly attribute Uint8ClampedArray data; }; [Constructor, Constructor(Path2D path), Constructor(sequence paths, optional CanvasFillRule fillRule = "nonzero"), Constructor(DOMString d), Exposed=(Window,Worker)] interface Path2D { void addPath(Path2D path, optional DOMMatrixInit transform); }; Path2D implements CanvasPath; partial interface MouseEvent { readonly attribute DOMString? region; }; partial dictionary MouseEventInit { DOMString? region = null; }; partial interface Touch { readonly attribute DOMString? region; }; interface ImageBitmapRenderingContext { readonly attribute HTMLCanvasElement canvas; void transferFromImageBitmap(ImageBitmap? bitmap); }; dictionary ImageBitmapRenderingContextSettings { boolean alpha = true; }; interface CustomElementRegistry { [CEReactions] void define(DOMString name, Function constructor, optional ElementDefinitionOptions options); any get(DOMString name); Promise whenDefined(DOMString name); }; dictionary ElementDefinitionOptions { DOMString extends; }; [NoInterfaceObject] interface ElementContentEditable { [CEReactions] attribute DOMString contentEditable; readonly attribute boolean isContentEditable; }; interface DataTransfer { attribute DOMString dropEffect; attribute DOMString effectAllowed; [SameObject] readonly attribute DataTransferItemList items; void setDragImage(Element image, long x, long y); /* old interface */ readonly attribute FrozenArray types; DOMString getData(DOMString format); void setData(DOMString format, DOMString data); void clearData(optional DOMString format); [SameObject] readonly attribute FileList files; }; interface DataTransferItemList { readonly attribute unsigned long length; getter DataTransferItem (unsigned long index); DataTransferItem? add(DOMString data, DOMString type); DataTransferItem? add(File data); void remove(unsigned long index); void clear(); }; interface DataTransferItem { readonly attribute DOMString kind; readonly attribute DOMString type; void getAsString(FunctionStringCallback? _callback); File? getAsFile(); }; callback FunctionStringCallback = void (DOMString data); [Constructor(DOMString type, optional DragEventInit eventInitDict)] interface DragEvent : MouseEvent { readonly attribute DataTransfer? dataTransfer; }; dictionary DragEventInit : MouseEventInit { DataTransfer? dataTransfer = null; }; [PrimaryGlobal, LegacyUnenumerableNamedProperties] interface Window : EventTarget { // the current browsing context [Unforgeable] readonly attribute WindowProxy window; [Replaceable] readonly attribute WindowProxy self; [Unforgeable] readonly attribute Document document; attribute DOMString name; [PutForwards=href, Unforgeable] readonly attribute Location location; readonly attribute History history; readonly attribute CustomElementRegistry customElements; [Replaceable] readonly attribute BarProp locationbar; [Replaceable] readonly attribute BarProp menubar; [Replaceable] readonly attribute BarProp personalbar; [Replaceable] readonly attribute BarProp scrollbars; [Replaceable] readonly attribute BarProp statusbar; [Replaceable] readonly attribute BarProp toolbar; attribute DOMString status; void close(); readonly attribute boolean closed; void stop(); void focus(); void blur(); // other browsing contexts [Replaceable] readonly attribute WindowProxy frames; [Replaceable] readonly attribute unsigned long length; [Unforgeable] readonly attribute WindowProxy top; attribute any opener; [Replaceable] readonly attribute WindowProxy parent; readonly attribute Element? frameElement; WindowProxy? open(optional USVString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = ""); getter object (DOMString name); // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic // object on the prototype chain. Indeed, this does not make the global object an exotic object. // Indexed access is taken care of by the WindowProxy exotic object. // the user agent readonly attribute Navigator navigator; readonly attribute ApplicationCache applicationCache; // user prompts void alert(); void alert(DOMString message); boolean confirm(optional DOMString message = ""); DOMString? prompt(optional DOMString message = "", optional DOMString default = ""); void print(); unsigned long requestAnimationFrame(FrameRequestCallback callback); void cancelAnimationFrame(unsigned long handle); void postMessage(any message, USVString targetOrigin, optional sequence transfer = []); }; Window implements GlobalEventHandlers; Window implements WindowEventHandlers; callback FrameRequestCallback = void (DOMHighResTimeStamp time); interface BarProp { readonly attribute boolean visible; }; enum ScrollRestoration { "auto", "manual" }; interface History { readonly attribute unsigned long length; attribute ScrollRestoration scrollRestoration; readonly attribute any state; void go(optional long delta = 0); void back(); void forward(); void pushState(any data, DOMString title, optional USVString? url = null); void replaceState(any data, DOMString title, optional USVString? url = null); }; interface Location { [Unforgeable] stringifier attribute USVString href; [Unforgeable] readonly attribute USVString origin; [Unforgeable] attribute USVString protocol; [Unforgeable] attribute USVString host; [Unforgeable] attribute USVString hostname; [Unforgeable] attribute USVString port; [Unforgeable] attribute USVString pathname; [Unforgeable] attribute USVString search; [Unforgeable] attribute USVString hash; [Unforgeable] void assign(USVString url); [Unforgeable] void replace(USVString url); [Unforgeable] void reload(); [Unforgeable, SameObject] readonly attribute FrozenArray ancestorOrigins; }; [Constructor(DOMString type, optional PopStateEventInit eventInitDict)] interface PopStateEvent : Event { readonly attribute any state; }; dictionary PopStateEventInit : EventInit { any state = null; }; [Constructor(DOMString type, optional HashChangeEventInit eventInitDict)] interface HashChangeEvent : Event { readonly attribute USVString oldURL; readonly attribute USVString newURL; }; dictionary HashChangeEventInit : EventInit { USVString oldURL = ""; USVString newURL = ""; }; [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict)] interface PageTransitionEvent : Event { readonly attribute boolean persisted; }; dictionary PageTransitionEventInit : EventInit { boolean persisted = false; }; interface BeforeUnloadEvent : Event { attribute DOMString returnValue; }; [Exposed=(Window,SharedWorker)] interface ApplicationCache : EventTarget { // update status const unsigned short UNCACHED = 0; const unsigned short IDLE = 1; const unsigned short CHECKING = 2; const unsigned short DOWNLOADING = 3; const unsigned short UPDATEREADY = 4; const unsigned short OBSOLETE = 5; readonly attribute unsigned short status; // updates void update(); void abort(); void swapCache(); // events attribute EventHandler onchecking; attribute EventHandler onerror; attribute EventHandler onnoupdate; attribute EventHandler ondownloading; attribute EventHandler onprogress; attribute EventHandler onupdateready; attribute EventHandler oncached; attribute EventHandler onobsolete; }; [NoInterfaceObject, Exposed=(Window,Worker)] interface NavigatorOnLine { readonly attribute boolean onLine; }; [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)] interface ErrorEvent : Event { readonly attribute DOMString message; readonly attribute USVString filename; readonly attribute unsigned long lineno; readonly attribute unsigned long colno; readonly attribute any error; }; dictionary ErrorEventInit : EventInit { DOMString message = ""; USVString filename = ""; unsigned long lineno = 0; unsigned long colno = 0; any error = null; }; [Constructor(DOMString type, PromiseRejectionEventInit eventInitDict), Exposed=(Window,Worker)] interface PromiseRejectionEvent : Event { readonly attribute Promise promise; readonly attribute any reason; }; dictionary PromiseRejectionEventInit : EventInit { required Promise promise; any reason; }; [TreatNonObjectAsNull] callback EventHandlerNonNull = any (Event event); typedef EventHandlerNonNull? EventHandler; [TreatNonObjectAsNull] callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long colno, optional any error); typedef OnErrorEventHandlerNonNull? OnErrorEventHandler; [TreatNonObjectAsNull] callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event); typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler; [NoInterfaceObject] interface GlobalEventHandlers { attribute EventHandler onabort; 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 ondragexit; attribute EventHandler ondragleave; attribute EventHandler ondragover; attribute EventHandler ondragstart; attribute EventHandler ondrop; attribute EventHandler ondurationchange; attribute EventHandler onemptied; attribute EventHandler onended; attribute OnErrorEventHandler onerror; attribute EventHandler onfocus; 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 onloadend; attribute EventHandler onloadstart; attribute EventHandler onmousedown; [LenientThis] attribute EventHandler onmouseenter; [LenientThis] attribute EventHandler onmouseleave; attribute EventHandler onmousemove; attribute EventHandler onmouseout; attribute EventHandler onmouseover; attribute EventHandler onmouseup; attribute EventHandler onwheel; 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 onseeked; attribute EventHandler onseeking; attribute EventHandler onselect; attribute EventHandler onshow; attribute EventHandler onstalled; attribute EventHandler onsubmit; attribute EventHandler onsuspend; attribute EventHandler ontimeupdate; attribute EventHandler ontoggle; attribute EventHandler onvolumechange; attribute EventHandler onwaiting; }; [NoInterfaceObject] interface WindowEventHandlers { attribute EventHandler onafterprint; attribute EventHandler onbeforeprint; attribute OnBeforeUnloadEventHandler onbeforeunload; attribute EventHandler onhashchange; attribute EventHandler onlanguagechange; attribute EventHandler onmessage; attribute EventHandler onoffline; attribute EventHandler ononline; attribute EventHandler onpagehide; attribute EventHandler onpageshow; attribute EventHandler onpopstate; attribute EventHandler onrejectionhandled; attribute EventHandler onstorage; attribute EventHandler onunhandledrejection; attribute EventHandler onunload; }; [NoInterfaceObject] interface DocumentAndElementEventHandlers { attribute EventHandler oncopy; attribute EventHandler oncut; attribute EventHandler onpaste; }; typedef (DOMString or Function) TimerHandler; [NoInterfaceObject, Exposed=(Window,Worker)] interface WindowOrWorkerGlobalScope { [Replaceable] readonly attribute USVString origin; // base64 utility methods DOMString btoa(DOMString data); DOMString atob(DOMString data); // timers long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments); void clearTimeout(optional long handle = 0); long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments); void clearInterval(optional long handle = 0); // ImageBitmap Promise createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options); Promise createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options); }; Window implements WindowOrWorkerGlobalScope; WorkerGlobalScope implements WindowOrWorkerGlobalScope; interface Navigator { // objects implementing this interface also implement the interfaces given below }; Navigator implements NavigatorID; Navigator implements NavigatorLanguage; Navigator implements NavigatorOnLine; Navigator implements NavigatorContentUtils; Navigator implements NavigatorCookies; Navigator implements NavigatorPlugins; Navigator implements NavigatorConcurrentHardware; [NoInterfaceObject, Exposed=(Window,Worker)] interface NavigatorID { readonly attribute DOMString appCodeName; // constant "Mozilla" readonly attribute DOMString appName; // constant "Netscape" readonly attribute DOMString appVersion; readonly attribute DOMString platform; readonly attribute DOMString product; // constant "Gecko" [Exposed=Window] readonly attribute DOMString productSub; readonly attribute DOMString userAgent; [Exposed=Window] readonly attribute DOMString vendor; [Exposed=Window] readonly attribute DOMString vendorSub; // constant "" }; partial interface NavigatorID { [Exposed=Window] boolean taintEnabled(); // constant false [Exposed=Window] readonly attribute DOMString oscpu; }; [NoInterfaceObject, Exposed=(Window,Worker)] interface NavigatorLanguage { readonly attribute DOMString language; readonly attribute FrozenArray languages; }; [NoInterfaceObject] interface NavigatorContentUtils { // content handler registration void registerProtocolHandler(DOMString scheme, USVString url, DOMString title); void registerContentHandler(DOMString mimeType, USVString url, DOMString title); DOMString isProtocolHandlerRegistered(DOMString scheme, USVString url); DOMString isContentHandlerRegistered(DOMString mimeType, USVString url); void unregisterProtocolHandler(DOMString scheme, USVString url); void unregisterContentHandler(DOMString mimeType, USVString url); }; [NoInterfaceObject] interface NavigatorCookies { readonly attribute boolean cookieEnabled; }; [NoInterfaceObject] interface NavigatorPlugins { [SameObject] readonly attribute PluginArray plugins; [SameObject] readonly attribute MimeTypeArray mimeTypes; boolean javaEnabled(); }; [LegacyUnenumerableNamedProperties] interface PluginArray { void refresh(optional boolean reload = false); readonly attribute unsigned long length; getter Plugin? item(unsigned long index); getter Plugin? namedItem(DOMString name); }; [LegacyUnenumerableNamedProperties] interface MimeTypeArray { readonly attribute unsigned long length; getter MimeType? item(unsigned long index); getter MimeType? namedItem(DOMString name); }; [LegacyUnenumerableNamedProperties] interface Plugin { readonly attribute DOMString name; readonly attribute DOMString description; readonly attribute DOMString filename; readonly attribute unsigned long length; getter MimeType? item(unsigned long index); getter MimeType? namedItem(DOMString name); }; interface MimeType { readonly attribute DOMString type; readonly attribute DOMString description; readonly attribute DOMString suffixes; // comma-separated readonly attribute Plugin enabledPlugin; }; [Exposed=(Window,Worker)] interface ImageBitmap { readonly attribute unsigned long width; readonly attribute unsigned long height; void close(); }; typedef (CanvasImageSource or Blob or ImageData) ImageBitmapSource; enum ImageOrientation { "none", "flipY" }; enum PremultiplyAlpha { "none", "premultiply", "default" }; enum ColorSpaceConversion { "none", "default" }; enum ResizeQuality { "pixelated", "low", "medium", "high" }; dictionary ImageBitmapOptions { ImageOrientation imageOrientation = "none"; PremultiplyAlpha premultiplyAlpha = "default"; ColorSpaceConversion colorSpaceConversion = "default"; [EnforceRange] unsigned long resizeWidth; [EnforceRange] unsigned long resizeHeight; ResizeQuality resizeQuality = "low"; }; [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker)] interface MessageEvent : Event { readonly attribute any data; readonly attribute USVString origin; readonly attribute DOMString lastEventId; readonly attribute (WindowProxy or MessagePort)? source; readonly attribute FrozenArray ports; void initMessageEvent(DOMString type, boolean bubbles, boolean cancelable, any data, USVString origin, DOMString lastEventId, (WindowProxy or MessagePort)? source, sequence ports); }; dictionary MessageEventInit : EventInit { any data = null; USVString origin = ""; DOMString lastEventId = ""; (WindowProxy or MessagePort)? source = null; sequence ports = []; }; [Constructor(USVString url, optional EventSourceInit eventSourceInitDict), Exposed=(Window,Worker)] interface EventSource : EventTarget { readonly attribute USVString url; readonly attribute boolean withCredentials; // ready state const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSED = 2; readonly attribute unsigned short readyState; // networking attribute EventHandler onopen; attribute EventHandler onmessage; attribute EventHandler onerror; void close(); }; dictionary EventSourceInit { boolean withCredentials = false; }; enum BinaryType { "blob", "arraybuffer" }; [Constructor(USVString url, optional (DOMString or sequence) protocols = []), Exposed=(Window,Worker)] interface WebSocket : EventTarget { readonly attribute USVString url; // ready state const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSING = 2; const unsigned short CLOSED = 3; readonly attribute unsigned short readyState; readonly attribute unsigned long long bufferedAmount; // networking attribute EventHandler onopen; attribute EventHandler onerror; attribute EventHandler onclose; readonly attribute DOMString extensions; readonly attribute DOMString protocol; void close([Clamp] optional unsigned short code, optional USVString reason); // messaging attribute EventHandler onmessage; attribute BinaryType binaryType; void send(USVString data); void send(Blob data); void send(ArrayBuffer data); void send(ArrayBufferView data); }; [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)] interface CloseEvent : Event { readonly attribute boolean wasClean; readonly attribute unsigned short code; readonly attribute USVString reason; }; dictionary CloseEventInit : EventInit { boolean wasClean = false; unsigned short code = 0; USVString reason = ""; }; [Constructor, Exposed=(Window,Worker)] interface MessageChannel { readonly attribute MessagePort port1; readonly attribute MessagePort port2; }; [Exposed=(Window,Worker)] interface MessagePort : EventTarget { void postMessage(any message, optional sequence transfer = []); void start(); void close(); // event handlers attribute EventHandler onmessage; }; [Constructor(DOMString name), Exposed=(Window,Worker)] interface BroadcastChannel : EventTarget { readonly attribute DOMString name; void postMessage(any message); void close(); attribute EventHandler onmessage; }; [Exposed=Worker] interface WorkerGlobalScope : EventTarget { readonly attribute WorkerGlobalScope self; readonly attribute WorkerLocation location; readonly attribute WorkerNavigator navigator; void importScripts(USVString... urls); attribute OnErrorEventHandler onerror; attribute EventHandler onlanguagechange; attribute EventHandler onoffline; attribute EventHandler ononline; attribute EventHandler onrejectionhandled; attribute EventHandler onunhandledrejection; }; [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker] interface DedicatedWorkerGlobalScope : WorkerGlobalScope { void postMessage(any message, optional sequence transfer = []); void close(); attribute EventHandler onmessage; }; [Global=(Worker,SharedWorker),Exposed=SharedWorker] interface SharedWorkerGlobalScope : WorkerGlobalScope { readonly attribute DOMString name; readonly attribute ApplicationCache applicationCache; // deprecated void close(); attribute EventHandler onconnect; }; [NoInterfaceObject, Exposed=(Window,Worker)] interface AbstractWorker { attribute EventHandler onerror; }; [Constructor(USVString scriptURL, optional WorkerOptions options), Exposed=(Window,Worker)] interface Worker : EventTarget { void terminate(); void postMessage(any message, optional sequence transfer = []); attribute EventHandler onmessage; }; dictionary WorkerOptions { WorkerType type = "classic"; RequestCredentials credentials = "omit"; // credentials is only used if type is "module" }; enum WorkerType { "classic", "module" }; Worker implements AbstractWorker; [Constructor(USVString scriptURL, optional DOMString name = "", optional WorkerOptions options), Exposed=(Window,Worker)] interface SharedWorker : EventTarget { readonly attribute MessagePort port; }; SharedWorker implements AbstractWorker; [NoInterfaceObject, Exposed=(Window,Worker)] interface NavigatorConcurrentHardware { readonly attribute unsigned long long hardwareConcurrency; }; [Exposed=Worker] interface WorkerNavigator {}; WorkerNavigator implements NavigatorID; WorkerNavigator implements NavigatorLanguage; WorkerNavigator implements NavigatorOnLine; WorkerNavigator implements NavigatorConcurrentHardware; [Exposed=Worker] interface WorkerLocation { stringifier readonly attribute USVString href; readonly attribute USVString origin; readonly attribute USVString protocol; readonly attribute USVString host; readonly attribute USVString hostname; readonly attribute USVString port; readonly attribute USVString pathname; readonly attribute USVString search; readonly attribute USVString hash; }; interface Storage { readonly attribute unsigned long length; DOMString? key(unsigned long index); getter DOMString? getItem(DOMString key); setter void setItem(DOMString key, DOMString value); deleter void removeItem(DOMString key); void clear(); }; [NoInterfaceObject] interface WindowSessionStorage { readonly attribute Storage sessionStorage; }; Window implements WindowSessionStorage; [NoInterfaceObject] interface WindowLocalStorage { readonly attribute Storage localStorage; }; Window implements WindowLocalStorage; [Constructor(DOMString type, optional StorageEventInit eventInitDict)] interface StorageEvent : Event { readonly attribute DOMString? key; readonly attribute DOMString? oldValue; readonly attribute DOMString? newValue; readonly attribute USVString url; readonly attribute Storage? storageArea; }; dictionary StorageEventInit : EventInit { DOMString? key = null; DOMString? oldValue = null; DOMString? newValue = null; USVString url = ""; Storage? storageArea = null; }; interface HTMLAppletElement : HTMLElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString alt; [CEReactions] attribute DOMString archive; [CEReactions] attribute DOMString code; [CEReactions] attribute USVString codeBase; [CEReactions] attribute DOMString height; [CEReactions] attribute unsigned long hspace; [CEReactions] attribute DOMString name; [CEReactions] attribute USVString _object; // the underscore is not part of the identifier [CEReactions] attribute unsigned long vspace; [CEReactions] attribute DOMString width; }; interface HTMLMarqueeElement : HTMLElement { [CEReactions] attribute DOMString behavior; [CEReactions] attribute DOMString bgColor; [CEReactions] attribute DOMString direction; [CEReactions] attribute DOMString height; [CEReactions] attribute unsigned long hspace; [CEReactions] attribute long loop; [CEReactions] attribute unsigned long scrollAmount; [CEReactions] attribute unsigned long scrollDelay; [CEReactions] attribute boolean trueSpeed; [CEReactions] attribute unsigned long vspace; [CEReactions] attribute DOMString width; attribute EventHandler onbounce; attribute EventHandler onfinish; attribute EventHandler onstart; void start(); void stop(); }; interface HTMLFrameSetElement : HTMLElement { [CEReactions] attribute DOMString cols; [CEReactions] attribute DOMString rows; }; HTMLFrameSetElement implements WindowEventHandlers; interface HTMLFrameElement : HTMLElement { [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString scrolling; [CEReactions] attribute USVString src; [CEReactions] attribute DOMString frameBorder; [CEReactions] attribute USVString longDesc; [CEReactions] attribute boolean noResize; readonly attribute Document? contentDocument; readonly attribute WindowProxy? contentWindow; [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight; [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth; }; partial interface HTMLAnchorElement { [CEReactions] attribute DOMString coords; [CEReactions] attribute DOMString charset; [CEReactions] attribute DOMString name; [CEReactions] attribute DOMString rev; [CEReactions] attribute DOMString shape; }; partial interface HTMLAreaElement { [CEReactions] attribute boolean noHref; }; partial interface HTMLBodyElement { [CEReactions, TreatNullAs=EmptyString] attribute DOMString text; [CEReactions, TreatNullAs=EmptyString] attribute DOMString link; [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink; [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink; [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; [CEReactions] attribute DOMString background; }; partial interface HTMLBRElement { [CEReactions] attribute DOMString clear; }; partial interface HTMLTableCaptionElement { [CEReactions] attribute DOMString align; }; partial interface HTMLTableColElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString ch; [CEReactions] attribute DOMString chOff; [CEReactions] attribute DOMString vAlign; [CEReactions] attribute DOMString width; }; [HTMLConstructor] interface HTMLDirectoryElement : HTMLElement { [CEReactions] attribute boolean compact; }; partial interface HTMLDivElement { [CEReactions] attribute DOMString align; }; partial interface HTMLDListElement { [CEReactions] attribute boolean compact; }; partial interface HTMLEmbedElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString name; }; [HTMLConstructor] interface HTMLFontElement : HTMLElement { [CEReactions, TreatNullAs=EmptyString] attribute DOMString color; [CEReactions] attribute DOMString face; [CEReactions] attribute DOMString size; }; partial interface HTMLHeadingElement { [CEReactions] attribute DOMString align; }; partial interface HTMLHRElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString color; [CEReactions] attribute boolean noShade; [CEReactions] attribute DOMString size; [CEReactions] attribute DOMString width; }; partial interface HTMLHtmlElement { [CEReactions] attribute DOMString version; }; partial interface HTMLIFrameElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString scrolling; [CEReactions] attribute DOMString frameBorder; [CEReactions] attribute USVString longDesc; [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight; [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth; }; partial interface HTMLImageElement { [CEReactions] attribute DOMString name; [CEReactions] attribute USVString lowsrc; [CEReactions] attribute DOMString align; [CEReactions] attribute unsigned long hspace; [CEReactions] attribute unsigned long vspace; [CEReactions] attribute USVString longDesc; [CEReactions, TreatNullAs=EmptyString] attribute DOMString border; }; partial interface HTMLInputElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString useMap; }; partial interface HTMLLegendElement { [CEReactions] attribute DOMString align; }; partial interface HTMLLIElement { [CEReactions] attribute DOMString type; }; partial interface HTMLLinkElement { [CEReactions] attribute DOMString charset; [CEReactions] attribute DOMString rev; [CEReactions] attribute DOMString target; }; partial interface HTMLMenuElement { [CEReactions] attribute boolean compact; }; partial interface HTMLMetaElement { [CEReactions] attribute DOMString scheme; }; partial interface HTMLObjectElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString archive; [CEReactions] attribute DOMString code; [CEReactions] attribute boolean declare; [CEReactions] attribute unsigned long hspace; [CEReactions] attribute DOMString standby; [CEReactions] attribute unsigned long vspace; [CEReactions] attribute DOMString codeBase; [CEReactions] attribute DOMString codeType; [CEReactions, TreatNullAs=EmptyString] attribute DOMString border; }; partial interface HTMLOListElement { [CEReactions] attribute boolean compact; }; partial interface HTMLParagraphElement { [CEReactions] attribute DOMString align; }; partial interface HTMLParamElement { [CEReactions] attribute DOMString type; [CEReactions] attribute DOMString valueType; }; partial interface HTMLPreElement { [CEReactions] attribute long width; }; partial interface HTMLScriptElement { [CEReactions] attribute DOMString event; [CEReactions] attribute DOMString htmlFor; }; partial interface HTMLTableElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString border; [CEReactions] attribute DOMString frame; [CEReactions] attribute DOMString rules; [CEReactions] attribute DOMString summary; [CEReactions] attribute DOMString width; [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding; [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing; }; partial interface HTMLTableSectionElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString ch; [CEReactions] attribute DOMString chOff; [CEReactions] attribute DOMString vAlign; }; partial interface HTMLTableCellElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString axis; [CEReactions] attribute DOMString height; [CEReactions] attribute DOMString width; [CEReactions] attribute DOMString ch; [CEReactions] attribute DOMString chOff; [CEReactions] attribute boolean noWrap; [CEReactions] attribute DOMString vAlign; [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; }; partial interface HTMLTableRowElement { [CEReactions] attribute DOMString align; [CEReactions] attribute DOMString ch; [CEReactions] attribute DOMString chOff; [CEReactions] attribute DOMString vAlign; [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; }; partial interface HTMLUListElement { [CEReactions] attribute boolean compact; [CEReactions] attribute DOMString type; }; partial interface Document { [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor; [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor; [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor; [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor; [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor; [SameObject] readonly attribute HTMLCollection anchors; [SameObject] readonly attribute HTMLCollection applets; void clear(); void captureEvents(); void releaseEvents(); [SameObject] readonly attribute HTMLAllCollection all; }; partial interface Window { void captureEvents(); void releaseEvents(); [Replaceable, SameObject] readonly attribute External external; }; [NoInterfaceObject] interface External { void AddSearchProvider(); void IsSearchProviderInstalled(); }; // Downloaded from http://html.spec.whatwg.org/ // Downloaded from https://raw.githubusercontent.com/whatwg/dom/master/dom.html [Constructor(DOMString type, optional EventInit eventInitDict), Exposed=(Window,Worker)] interface Event { readonly attribute DOMString type; readonly attribute EventTarget? target; readonly attribute EventTarget? currentTarget; sequence composedPath(); 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; readonly attribute boolean composed; [Unforgeable] readonly attribute boolean isTrusted; readonly attribute DOMTimeStamp timeStamp; void initEvent(DOMString type, boolean bubbles, boolean cancelable); // historical }; dictionary EventInit { boolean bubbles = false; boolean cancelable = false; boolean composed = 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 (AddEventListenerOptions or boolean) options); void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options); boolean dispatchEvent(Event event); }; callback interface EventListener { void handleEvent(Event event); }; dictionary EventListenerOptions { boolean capture = false; }; dictionary AddEventListenerOptions : EventListenerOptions { boolean passive = false; boolean once = false; }; [NoInterfaceObject, Exposed=Window] interface NonElementParentNode { Element? getElementById(DOMString elementId); }; Document implements NonElementParentNode; DocumentFragment implements NonElementParentNode; [NoInterfaceObject, Exposed=Window] interface DocumentOrShadowRoot { }; Document implements DocumentOrShadowRoot; ShadowRoot implements DocumentOrShadowRoot; [NoInterfaceObject, Exposed=Window] interface ParentNode { [SameObject] readonly attribute HTMLCollection children; readonly attribute Element? firstElementChild; readonly attribute Element? lastElementChild; readonly attribute unsigned long childElementCount; [CEReactions, Unscopable] void prepend((Node or DOMString)... nodes); [CEReactions, Unscopable] void append((Node or DOMString)... nodes); Element? querySelector(DOMString selectors); [NewObject] NodeList querySelectorAll(DOMString selectors); }; Document implements ParentNode; DocumentFragment implements ParentNode; Element implements ParentNode; [NoInterfaceObject, Exposed=Window] interface NonDocumentTypeChildNode { readonly attribute Element? previousElementSibling; readonly attribute Element? nextElementSibling; }; Element implements NonDocumentTypeChildNode; CharacterData implements NonDocumentTypeChildNode; [NoInterfaceObject, Exposed=Window] interface ChildNode { [CEReactions, Unscopable] void before((Node or DOMString)... nodes); [CEReactions, Unscopable] void after((Node or DOMString)... nodes); [CEReactions, Unscopable] void replaceWith((Node or DOMString)... nodes); [CEReactions, Unscopable] void remove(); }; DocumentType implements ChildNode; Element implements ChildNode; CharacterData implements ChildNode; [NoInterfaceObject, Exposed=Window] interface Slotable { readonly attribute HTMLSlotElement? assignedSlot; }; Element implements Slotable; Text implements Slotable; [Exposed=Window] interface NodeList { getter Node? item(unsigned long index); readonly attribute unsigned long length; iterable; }; [Exposed=Window, LegacyUnenumerableNamedProperties] 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, optional MutationObserverInit options); void disconnect(); sequence takeRecords(); }; callback MutationCallback = void (sequence mutations, MutationObserver observer); dictionary MutationObserverInit { boolean childList = false; boolean attributes; boolean characterData; boolean subtree = false; boolean attributeOldValue; boolean characterDataOldValue; sequence attributeFilter; }; [Exposed=Window] interface MutationRecord { readonly attribute DOMString type; [SameObject] 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; }; [Exposed=Window] interface Node : EventTarget { 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; // 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 USVString baseURI; readonly attribute boolean isConnected; readonly attribute Document? ownerDocument; Node getRootNode(optional GetRootNodeOptions options); 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; [CEReactions] attribute DOMString? nodeValue; [CEReactions] attribute DOMString? textContent; [CEReactions] void normalize(); [CEReactions, NewObject] Node cloneNode(optional boolean deep = false); boolean isEqualNode(Node? otherNode); boolean isSameNode(Node? otherNode); // historical alias of === 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); [CEReactions] Node insertBefore(Node node, Node? child); [CEReactions] Node appendChild(Node node); [CEReactions] Node replaceChild(Node node, Node child); [CEReactions] Node removeChild(Node child); }; dictionary GetRootNodeOptions { boolean composed = false; }; [Constructor, Exposed=Window] interface Document : Node { [SameObject] readonly attribute DOMImplementation implementation; readonly attribute USVString URL; readonly attribute USVString documentURI; readonly attribute USVString origin; readonly attribute DOMString compatMode; readonly attribute DOMString characterSet; readonly attribute DOMString charset; // historical alias of .characterSet readonly attribute DOMString inputEncoding; // historical alias of .characterSet readonly attribute DOMString contentType; readonly attribute DocumentType? doctype; readonly attribute Element? documentElement; HTMLCollection getElementsByTagName(DOMString qualifiedName); HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); HTMLCollection getElementsByClassName(DOMString classNames); [NewObject] Element createElement(DOMString localName, optional ElementCreationOptions options); [NewObject] Element createElementNS(DOMString? namespace, DOMString qualifiedName, optional ElementCreationOptions options); [NewObject] DocumentFragment createDocumentFragment(); [NewObject] Text createTextNode(DOMString data); [NewObject] CDATASection createCDATASection(DOMString data); [NewObject] Comment createComment(DOMString data); [NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data); [CEReactions, NewObject] Node importNode(Node node, optional boolean deep = false); [CEReactions] Node adoptNode(Node node); [NewObject] Attr createAttribute(DOMString localName); [NewObject] Attr createAttributeNS(DOMString? namespace, DOMString qualifiedName); [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); }; [Exposed=Window] interface XMLDocument : Document {}; dictionary ElementCreationOptions { DOMString is; }; [Exposed=Window] 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 }; [Exposed=Window] interface DocumentType : Node { readonly attribute DOMString name; readonly attribute DOMString publicId; readonly attribute DOMString systemId; }; [Constructor, Exposed=Window] interface DocumentFragment : Node { }; [Exposed=Window] interface ShadowRoot : DocumentFragment { readonly attribute ShadowRootMode mode; readonly attribute Element host; }; enum ShadowRootMode { "open", "closed" }; [Exposed=Window] interface Element : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString tagName; [CEReactions] attribute DOMString id; [CEReactions] attribute DOMString className; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList classList; [CEReactions, Unscopable] attribute DOMString slot; boolean hasAttributes(); [SameObject] readonly attribute NamedNodeMap attributes; sequence getAttributeNames(); DOMString? getAttribute(DOMString qualifiedName); DOMString? getAttributeNS(DOMString? namespace, DOMString localName); [CEReactions] void setAttribute(DOMString qualifiedName, DOMString value); [CEReactions] void setAttributeNS(DOMString? namespace, DOMString qualifiedName, DOMString value); [CEReactions] void removeAttribute(DOMString qualifiedName); [CEReactions] void removeAttributeNS(DOMString? namespace, DOMString localName); boolean hasAttribute(DOMString qualifiedName); boolean hasAttributeNS(DOMString? namespace, DOMString localName); Attr? getAttributeNode(DOMString qualifiedName); Attr? getAttributeNodeNS(DOMString? namespace, DOMString localName); [CEReactions] Attr? setAttributeNode(Attr attr); [CEReactions] Attr? setAttributeNodeNS(Attr attr); [CEReactions] Attr removeAttributeNode(Attr attr); ShadowRoot attachShadow(ShadowRootInit init); readonly attribute ShadowRoot? shadowRoot; Element? closest(DOMString selectors); boolean matches(DOMString selectors); boolean webkitMatchesSelector(DOMString selectors); // historical alias of .matches HTMLCollection getElementsByTagName(DOMString qualifiedName); HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); HTMLCollection getElementsByClassName(DOMString classNames); [CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // historical void insertAdjacentText(DOMString where, DOMString data); // historical }; dictionary ShadowRootInit { required ShadowRootMode mode; }; [Exposed=Window, LegacyUnenumerableNamedProperties] interface NamedNodeMap { readonly attribute unsigned long length; getter Attr? item(unsigned long index); getter Attr? getNamedItem(DOMString qualifiedName); Attr? getNamedItemNS(DOMString? namespace, DOMString localName); [CEReactions] Attr? setNamedItem(Attr attr); [CEReactions] Attr? setNamedItemNS(Attr attr); [CEReactions] Attr removeNamedItem(DOMString qualifiedName); [CEReactions] Attr removeNamedItemNS(DOMString? namespace, DOMString localName); }; [Exposed=Window] interface Attr : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString name; [CEReactions] attribute DOMString value; readonly attribute Element? ownerElement; readonly attribute boolean specified; // useless; always returns true }; [Exposed=Window] 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 = ""), Exposed=Window] interface Text : CharacterData { [NewObject] Text splitText(unsigned long offset); readonly attribute DOMString wholeText; }; [Exposed=Window] interface CDATASection : Text { }; [Exposed=Window] interface ProcessingInstruction : CharacterData { readonly attribute DOMString target; }; [Constructor(optional DOMString data = ""), Exposed=Window] interface Comment : CharacterData { }; [Constructor, Exposed=Window] 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); [CEReactions] void deleteContents(); [CEReactions, NewObject] DocumentFragment extractContents(); [CEReactions, NewObject] DocumentFragment cloneContents(); [CEReactions] void insertNode(Node node); [CEReactions] 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; }; [Exposed=Window] 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(); }; [Exposed=Window] 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(); }; [Exposed=Window] 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; const unsigned long SHOW_TEXT = 0x4; const unsigned long SHOW_CDATA_SECTION = 0x8; 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); [CEReactions] void add(DOMString... tokens); [CEReactions] void remove(DOMString... tokens); [CEReactions] boolean toggle(DOMString token, optional boolean force); [CEReactions] void replace(DOMString token, DOMString newToken); boolean supports(DOMString token); [CEReactions] stringifier attribute DOMString value; iterable; }; [Constructor(DOMString type, optional EventInit eventInitDict), Exposed=(Window,Worker)] interface Event { readonly attribute DOMString type; readonly attribute EventTarget? target; readonly attribute EventTarget? currentTarget; sequence composedPath(); 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; readonly attribute boolean composed; [Unforgeable] readonly attribute boolean isTrusted; readonly attribute DOMTimeStamp timeStamp; void initEvent(DOMString type, boolean bubbles, boolean cancelable); // historical }; dictionary EventInit { boolean bubbles = false; boolean cancelable = false; boolean composed = 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 (AddEventListenerOptions or boolean) options); void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options); boolean dispatchEvent(Event event); }; callback interface EventListener { void handleEvent(Event event); }; dictionary EventListenerOptions { boolean capture = false; }; dictionary AddEventListenerOptions : EventListenerOptions { boolean passive = false; boolean once = false; }; [NoInterfaceObject, Exposed=Window] interface NonElementParentNode { Element? getElementById(DOMString elementId); }; Document implements NonElementParentNode; DocumentFragment implements NonElementParentNode; [NoInterfaceObject, Exposed=Window] interface DocumentOrShadowRoot { }; Document implements DocumentOrShadowRoot; ShadowRoot implements DocumentOrShadowRoot; [NoInterfaceObject, Exposed=Window] interface ParentNode { [SameObject] readonly attribute HTMLCollection children; readonly attribute Element? firstElementChild; readonly attribute Element? lastElementChild; readonly attribute unsigned long childElementCount; [CEReactions, Unscopable] void prepend((Node or DOMString)... nodes); [CEReactions, Unscopable] void append((Node or DOMString)... nodes); Element? querySelector(DOMString selectors); [NewObject] NodeList querySelectorAll(DOMString selectors); }; Document implements ParentNode; DocumentFragment implements ParentNode; Element implements ParentNode; [NoInterfaceObject, Exposed=Window] interface NonDocumentTypeChildNode { readonly attribute Element? previousElementSibling; readonly attribute Element? nextElementSibling; }; Element implements NonDocumentTypeChildNode; CharacterData implements NonDocumentTypeChildNode; [NoInterfaceObject, Exposed=Window] interface ChildNode { [CEReactions, Unscopable] void before((Node or DOMString)... nodes); [CEReactions, Unscopable] void after((Node or DOMString)... nodes); [CEReactions, Unscopable] void replaceWith((Node or DOMString)... nodes); [CEReactions, Unscopable] void remove(); }; DocumentType implements ChildNode; Element implements ChildNode; CharacterData implements ChildNode; [NoInterfaceObject, Exposed=Window] interface Slotable { readonly attribute HTMLSlotElement? assignedSlot; }; Element implements Slotable; Text implements Slotable; [Exposed=Window] interface NodeList { getter Node? item(unsigned long index); readonly attribute unsigned long length; iterable; }; [Exposed=Window, LegacyUnenumerableNamedProperties] 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, optional MutationObserverInit options); void disconnect(); sequence takeRecords(); }; callback MutationCallback = void (sequence mutations, MutationObserver observer); dictionary MutationObserverInit { boolean childList = false; boolean attributes; boolean characterData; boolean subtree = false; boolean attributeOldValue; boolean characterDataOldValue; sequence attributeFilter; }; [Exposed=Window] interface MutationRecord { readonly attribute DOMString type; [SameObject] 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; }; [Exposed=Window] interface Node : EventTarget { 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; // 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 USVString baseURI; readonly attribute boolean isConnected; readonly attribute Document? ownerDocument; Node getRootNode(optional GetRootNodeOptions options); 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; [CEReactions] attribute DOMString? nodeValue; [CEReactions] attribute DOMString? textContent; [CEReactions] void normalize(); [CEReactions, NewObject] Node cloneNode(optional boolean deep = false); boolean isEqualNode(Node? otherNode); boolean isSameNode(Node? otherNode); // historical alias of === 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); [CEReactions] Node insertBefore(Node node, Node? child); [CEReactions] Node appendChild(Node node); [CEReactions] Node replaceChild(Node node, Node child); [CEReactions] Node removeChild(Node child); }; dictionary GetRootNodeOptions { boolean composed = false; }; [Constructor, Exposed=Window] interface Document : Node { [SameObject] readonly attribute DOMImplementation implementation; readonly attribute USVString URL; readonly attribute USVString documentURI; readonly attribute USVString origin; readonly attribute DOMString compatMode; readonly attribute DOMString characterSet; readonly attribute DOMString charset; // historical alias of .characterSet readonly attribute DOMString inputEncoding; // historical alias of .characterSet readonly attribute DOMString contentType; readonly attribute DocumentType? doctype; readonly attribute Element? documentElement; HTMLCollection getElementsByTagName(DOMString qualifiedName); HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); HTMLCollection getElementsByClassName(DOMString classNames); [NewObject] Element createElement(DOMString localName, optional ElementCreationOptions options); [NewObject] Element createElementNS(DOMString? namespace, DOMString qualifiedName, optional ElementCreationOptions options); [NewObject] DocumentFragment createDocumentFragment(); [NewObject] Text createTextNode(DOMString data); [NewObject] CDATASection createCDATASection(DOMString data); [NewObject] Comment createComment(DOMString data); [NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data); [CEReactions, NewObject] Node importNode(Node node, optional boolean deep = false); [CEReactions] Node adoptNode(Node node); [NewObject] Attr createAttribute(DOMString localName); [NewObject] Attr createAttributeNS(DOMString? namespace, DOMString qualifiedName); [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); }; [Exposed=Window] interface XMLDocument : Document {}; dictionary ElementCreationOptions { DOMString is; }; [Exposed=Window] 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 }; [Exposed=Window] interface DocumentType : Node { readonly attribute DOMString name; readonly attribute DOMString publicId; readonly attribute DOMString systemId; }; [Constructor, Exposed=Window] interface DocumentFragment : Node { }; [Exposed=Window] interface ShadowRoot : DocumentFragment { readonly attribute ShadowRootMode mode; readonly attribute Element host; }; enum ShadowRootMode { "open", "closed" }; [Exposed=Window] interface Element : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString tagName; [CEReactions] attribute DOMString id; [CEReactions] attribute DOMString className; [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList classList; [CEReactions, Unscopable] attribute DOMString slot; boolean hasAttributes(); [SameObject] readonly attribute NamedNodeMap attributes; sequence getAttributeNames(); DOMString? getAttribute(DOMString qualifiedName); DOMString? getAttributeNS(DOMString? namespace, DOMString localName); [CEReactions] void setAttribute(DOMString qualifiedName, DOMString value); [CEReactions] void setAttributeNS(DOMString? namespace, DOMString qualifiedName, DOMString value); [CEReactions] void removeAttribute(DOMString qualifiedName); [CEReactions] void removeAttributeNS(DOMString? namespace, DOMString localName); boolean hasAttribute(DOMString qualifiedName); boolean hasAttributeNS(DOMString? namespace, DOMString localName); Attr? getAttributeNode(DOMString qualifiedName); Attr? getAttributeNodeNS(DOMString? namespace, DOMString localName); [CEReactions] Attr? setAttributeNode(Attr attr); [CEReactions] Attr? setAttributeNodeNS(Attr attr); [CEReactions] Attr removeAttributeNode(Attr attr); ShadowRoot attachShadow(ShadowRootInit init); readonly attribute ShadowRoot? shadowRoot; Element? closest(DOMString selectors); boolean matches(DOMString selectors); boolean webkitMatchesSelector(DOMString selectors); // historical alias of .matches HTMLCollection getElementsByTagName(DOMString qualifiedName); HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); HTMLCollection getElementsByClassName(DOMString classNames); [CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // historical void insertAdjacentText(DOMString where, DOMString data); // historical }; dictionary ShadowRootInit { required ShadowRootMode mode; }; [Exposed=Window, LegacyUnenumerableNamedProperties] interface NamedNodeMap { readonly attribute unsigned long length; getter Attr? item(unsigned long index); getter Attr? getNamedItem(DOMString qualifiedName); Attr? getNamedItemNS(DOMString? namespace, DOMString localName); [CEReactions] Attr? setNamedItem(Attr attr); [CEReactions] Attr? setNamedItemNS(Attr attr); [CEReactions] Attr removeNamedItem(DOMString qualifiedName); [CEReactions] Attr removeNamedItemNS(DOMString? namespace, DOMString localName); }; [Exposed=Window] interface Attr : Node { readonly attribute DOMString? namespaceURI; readonly attribute DOMString? prefix; readonly attribute DOMString localName; readonly attribute DOMString name; [CEReactions] attribute DOMString value; readonly attribute Element? ownerElement; readonly attribute boolean specified; // useless; always returns true }; [Exposed=Window] 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 = ""), Exposed=Window] interface Text : CharacterData { [NewObject] Text splitText(unsigned long offset); readonly attribute DOMString wholeText; }; [Exposed=Window] interface CDATASection : Text { }; [Exposed=Window] interface ProcessingInstruction : CharacterData { readonly attribute DOMString target; }; [Constructor(optional DOMString data = ""), Exposed=Window] interface Comment : CharacterData { }; [Constructor, Exposed=Window] 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); [CEReactions] void deleteContents(); [CEReactions, NewObject] DocumentFragment extractContents(); [CEReactions, NewObject] DocumentFragment cloneContents(); [CEReactions] void insertNode(Node node); [CEReactions] 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; }; [Exposed=Window] 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(); }; [Exposed=Window] 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(); }; [Exposed=Window] 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; const unsigned long SHOW_TEXT = 0x4; const unsigned long SHOW_CDATA_SECTION = 0x8; 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); [CEReactions] void add(DOMString... tokens); [CEReactions] void remove(DOMString... tokens); [CEReactions] boolean toggle(DOMString token, optional boolean force); [CEReactions] void replace(DOMString token, DOMString newToken); boolean supports(DOMString token); [CEReactions] stringifier attribute DOMString value; iterable; }; // Downloaded from https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html // Downloaded from http://www.w3.org/TR/animation-timing/ partial interface Window { long requestAnimationFrame(FrameRequestCallback callback); void cancelAnimationFrame(long handle); }; callback FrameRequestCallback = void (DOMHighResTimeStamp time); // Downloaded from http://www.w3.org/TR/geometry-1/ [Constructor(unrestricted double x, unrestricted double y, unrestricted double z, unrestricted double w), Exposed=(Window,Worker)] interface DOMPointReadOnly { readonly attribute unrestricted double x; readonly attribute unrestricted double y; readonly attribute unrestricted double z; readonly attribute unrestricted double w; DOMPoint matrixTransform(DOMMatrixReadOnly matrix); }; [Constructor(optional DOMPointInit point), Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, optional unrestricted double z = 0, optional unrestricted double w = 1), Exposed=(Window,Worker)] interface DOMPoint : DOMPointReadOnly { inherit attribute unrestricted double x; inherit attribute unrestricted double y; inherit attribute unrestricted double z; inherit attribute unrestricted double w; }; dictionary DOMPointInit { unrestricted double x = 0; unrestricted double y = 0; unrestricted double z = 0; unrestricted double w = 1; }; [Constructor(unrestricted double x = 0, unrestricted double y = 0, unrestricted double width = 0, unrestricted double height = 0), Exposed=(Window,Worker)] interface DOMRect : DOMRectReadOnly { inherit attribute unrestricted double x; inherit attribute unrestricted double y; inherit attribute unrestricted double width; inherit attribute unrestricted double height; }; [Constructor(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height), Exposed=(Window,Worker)] interface DOMRectReadOnly { readonly attribute unrestricted double x; readonly attribute unrestricted double y; readonly attribute unrestricted double width; readonly attribute unrestricted double height; readonly attribute unrestricted double top; readonly attribute unrestricted double right; readonly attribute unrestricted double bottom; readonly attribute unrestricted double left; }; dictionary DOMRectInit { unrestricted double x = 0; unrestricted double y = 0; unrestricted double width = 0; unrestricted double height = 0; }; [NoInterfaceObject, ArrayClass] interface DOMRectList { readonly attribute unsigned long length; getter DOMRect? item(unsigned long index); }; [Constructor(optional DOMPointInit p1, optional DOMPointInit p2, optional DOMPointInit p3, optional DOMPointInit p4), Constructor(optional DOMRectInit rect), Exposed=(Window,Worker)] interface DOMQuad { [SameObject] readonly attribute DOMPoint p1; [SameObject] readonly attribute DOMPoint p2; [SameObject] readonly attribute DOMPoint p3; [SameObject] readonly attribute DOMPoint p4; [SameObject] readonly attribute DOMRectReadOnly bounds; }; [Constructor(sequence numberSequence), Exposed=(Window,Worker)] interface DOMMatrixReadOnly { // These attributes are simple aliases for certain elements of the 4x4 matrix readonly attribute unrestricted double a; readonly attribute unrestricted double b; readonly attribute unrestricted double c; readonly attribute unrestricted double d; readonly attribute unrestricted double e; readonly attribute unrestricted double f; readonly attribute unrestricted double m11; readonly attribute unrestricted double m12; readonly attribute unrestricted double m13; readonly attribute unrestricted double m14; readonly attribute unrestricted double m21; readonly attribute unrestricted double m22; readonly attribute unrestricted double m23; readonly attribute unrestricted double m24; readonly attribute unrestricted double m31; readonly attribute unrestricted double m32; readonly attribute unrestricted double m33; readonly attribute unrestricted double m34; readonly attribute unrestricted double m41; readonly attribute unrestricted double m42; readonly attribute unrestricted double m43; readonly attribute unrestricted double m44; readonly attribute boolean is2D; readonly attribute boolean isIdentity; // Immutable transform methods DOMMatrix translate(unrestricted double tx, unrestricted double ty, optional unrestricted double tz = 0); DOMMatrix scale(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix scale3d(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix scaleNonUniform(unrestricted double scaleX, optional unrestricted double scaleY = 1, optional unrestricted double scaleZ = 1, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix rotate(unrestricted double angle, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix rotateFromVector(unrestricted double x, unrestricted double y); DOMMatrix rotateAxisAngle(unrestricted double x, unrestricted double y, unrestricted double z, unrestricted double angle); DOMMatrix skewX(unrestricted double sx); DOMMatrix skewY(unrestricted double sy); DOMMatrix multiply(DOMMatrix other); DOMMatrix flipX(); DOMMatrix flipY(); DOMMatrix inverse(); DOMPoint transformPoint(optional DOMPointInit point); Float32Array toFloat32Array(); Float64Array toFloat64Array(); stringifier; }; [Constructor, Constructor(DOMString transformList), Constructor(DOMMatrixReadOnly other), Constructor(Float32Array array32), Constructor(Float64Array array64), Constructor(sequence numberSequence), Exposed=(Window,Worker)] interface DOMMatrix : DOMMatrixReadOnly { // These attributes are simple aliases for certain elements of the 4x4 matrix inherit attribute unrestricted double a; inherit attribute unrestricted double b; inherit attribute unrestricted double c; inherit attribute unrestricted double d; inherit attribute unrestricted double e; inherit attribute unrestricted double f; inherit attribute unrestricted double m11; inherit attribute unrestricted double m12; inherit attribute unrestricted double m13; inherit attribute unrestricted double m14; inherit attribute unrestricted double m21; inherit attribute unrestricted double m22; inherit attribute unrestricted double m23; inherit attribute unrestricted double m24; inherit attribute unrestricted double m31; inherit attribute unrestricted double m32; inherit attribute unrestricted double m33; inherit attribute unrestricted double m34; inherit attribute unrestricted double m41; inherit attribute unrestricted double m42; inherit attribute unrestricted double m43; inherit attribute unrestricted double m44; // Mutable transform methods DOMMatrix multiplySelf(DOMMatrix other); DOMMatrix preMultiplySelf(DOMMatrix other); DOMMatrix translateSelf(unrestricted double tx, unrestricted double ty, optional unrestricted double tz = 0); DOMMatrix scaleSelf(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix scale3dSelf(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix scaleNonUniformSelf(unrestricted double scaleX, optional unrestricted double scaleY = 1, optional unrestricted double scaleZ = 1, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix rotateSelf(unrestricted double angle, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix rotateFromVectorSelf(unrestricted double x, unrestricted double y); DOMMatrix rotateAxisAngleSelf(unrestricted double x, unrestricted double y, unrestricted double z, unrestricted double angle); DOMMatrix skewXSelf(unrestricted double sx); DOMMatrix skewYSelf(unrestricted double sy); DOMMatrix invertSelf(); DOMMatrix setMatrixValue(DOMString transformList); }; [Constructor(unrestricted double x, unrestricted double y, unrestricted double z, unrestricted double w), Exposed=(Window,Worker)] interface DOMPointReadOnly { readonly attribute unrestricted double x; readonly attribute unrestricted double y; readonly attribute unrestricted double z; readonly attribute unrestricted double w; DOMPoint matrixTransform(DOMMatrixReadOnly matrix); }; [Constructor(optional DOMPointInit point), Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, optional unrestricted double z = 0, optional unrestricted double w = 1), Exposed=(Window,Worker)] interface DOMPoint : DOMPointReadOnly { inherit attribute unrestricted double x; inherit attribute unrestricted double y; inherit attribute unrestricted double z; inherit attribute unrestricted double w; }; dictionary DOMPointInit { unrestricted double x = 0; unrestricted double y = 0; unrestricted double z = 0; unrestricted double w = 1; }; [Constructor(unrestricted double x = 0, unrestricted double y = 0, unrestricted double width = 0, unrestricted double height = 0), Exposed=(Window,Worker)] interface DOMRect : DOMRectReadOnly { inherit attribute unrestricted double x; inherit attribute unrestricted double y; inherit attribute unrestricted double width; inherit attribute unrestricted double height; }; [Constructor(unrestricted double x, unrestricted double y, unrestricted double width, unrestricted double height), Exposed=(Window,Worker)] interface DOMRectReadOnly { readonly attribute unrestricted double x; readonly attribute unrestricted double y; readonly attribute unrestricted double width; readonly attribute unrestricted double height; readonly attribute unrestricted double top; readonly attribute unrestricted double right; readonly attribute unrestricted double bottom; readonly attribute unrestricted double left; }; dictionary DOMRectInit { unrestricted double x = 0; unrestricted double y = 0; unrestricted double width = 0; unrestricted double height = 0; }; [NoInterfaceObject, ArrayClass] interface DOMRectList { readonly attribute unsigned long length; getter DOMRect? item(unsigned long index); }; [Constructor(optional DOMPointInit p1, optional DOMPointInit p2, optional DOMPointInit p3, optional DOMPointInit p4), Constructor(optional DOMRectInit rect), Exposed=(Window,Worker)] interface DOMQuad { [SameObject] readonly attribute DOMPoint p1; [SameObject] readonly attribute DOMPoint p2; [SameObject] readonly attribute DOMPoint p3; [SameObject] readonly attribute DOMPoint p4; [SameObject] readonly attribute DOMRectReadOnly bounds; }; [Constructor(sequence numberSequence), Exposed=(Window,Worker)] interface DOMMatrixReadOnly { // These attributes are simple aliases for certain elements of the 4x4 matrix readonly attribute unrestricted double a; readonly attribute unrestricted double b; readonly attribute unrestricted double c; readonly attribute unrestricted double d; readonly attribute unrestricted double e; readonly attribute unrestricted double f; readonly attribute unrestricted double m11; readonly attribute unrestricted double m12; readonly attribute unrestricted double m13; readonly attribute unrestricted double m14; readonly attribute unrestricted double m21; readonly attribute unrestricted double m22; readonly attribute unrestricted double m23; readonly attribute unrestricted double m24; readonly attribute unrestricted double m31; readonly attribute unrestricted double m32; readonly attribute unrestricted double m33; readonly attribute unrestricted double m34; readonly attribute unrestricted double m41; readonly attribute unrestricted double m42; readonly attribute unrestricted double m43; readonly attribute unrestricted double m44; readonly attribute boolean is2D; readonly attribute boolean isIdentity; // Immutable transform methods DOMMatrix translate(unrestricted double tx, unrestricted double ty, optional unrestricted double tz = 0); DOMMatrix scale(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix scale3d(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix scaleNonUniform(unrestricted double scaleX, optional unrestricted double scaleY = 1, optional unrestricted double scaleZ = 1, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix rotate(unrestricted double angle, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix rotateFromVector(unrestricted double x, unrestricted double y); DOMMatrix rotateAxisAngle(unrestricted double x, unrestricted double y, unrestricted double z, unrestricted double angle); DOMMatrix skewX(unrestricted double sx); DOMMatrix skewY(unrestricted double sy); DOMMatrix multiply(DOMMatrix other); DOMMatrix flipX(); DOMMatrix flipY(); DOMMatrix inverse(); DOMPoint transformPoint(optional DOMPointInit point); Float32Array toFloat32Array(); Float64Array toFloat64Array(); stringifier; }; [Constructor, Constructor(DOMString transformList), Constructor(DOMMatrixReadOnly other), Constructor(Float32Array array32), Constructor(Float64Array array64), Constructor(sequence numberSequence), Exposed=(Window,Worker)] interface DOMMatrix : DOMMatrixReadOnly { // These attributes are simple aliases for certain elements of the 4x4 matrix inherit attribute unrestricted double a; inherit attribute unrestricted double b; inherit attribute unrestricted double c; inherit attribute unrestricted double d; inherit attribute unrestricted double e; inherit attribute unrestricted double f; inherit attribute unrestricted double m11; inherit attribute unrestricted double m12; inherit attribute unrestricted double m13; inherit attribute unrestricted double m14; inherit attribute unrestricted double m21; inherit attribute unrestricted double m22; inherit attribute unrestricted double m23; inherit attribute unrestricted double m24; inherit attribute unrestricted double m31; inherit attribute unrestricted double m32; inherit attribute unrestricted double m33; inherit attribute unrestricted double m34; inherit attribute unrestricted double m41; inherit attribute unrestricted double m42; inherit attribute unrestricted double m43; inherit attribute unrestricted double m44; // Mutable transform methods DOMMatrix multiplySelf(DOMMatrix other); DOMMatrix preMultiplySelf(DOMMatrix other); DOMMatrix translateSelf(unrestricted double tx, unrestricted double ty, optional unrestricted double tz = 0); DOMMatrix scaleSelf(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix scale3dSelf(unrestricted double scale, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix scaleNonUniformSelf(unrestricted double scaleX, optional unrestricted double scaleY = 1, optional unrestricted double scaleZ = 1, optional unrestricted double originX = 0, optional unrestricted double originY = 0, optional unrestricted double originZ = 0); DOMMatrix rotateSelf(unrestricted double angle, optional unrestricted double originX = 0, optional unrestricted double originY = 0); DOMMatrix rotateFromVectorSelf(unrestricted double x, unrestricted double y); DOMMatrix rotateAxisAngleSelf(unrestricted double x, unrestricted double y, unrestricted double z, unrestricted double angle); DOMMatrix skewXSelf(unrestricted double sx); DOMMatrix skewYSelf(unrestricted double sy); DOMMatrix invertSelf(); DOMMatrix setMatrixValue(DOMString transformList); }; // Downloaded from http://www.w3.org/TR/cssom-view/ enum ScrollBehavior { "auto", "instant", "smooth" }; dictionary ScrollOptions { ScrollBehavior behavior = "auto"; }; dictionary ScrollToOptions : ScrollOptions { unrestricted double left; unrestricted double top; }; partial interface Window { [NewObject] MediaQueryList matchMedia(DOMString query); [SameObject, Replaceable] readonly attribute Screen screen; // browsing context void moveTo(long x, long y); void moveBy(long x, long y); void resizeTo(long x, long y); void resizeBy(long x, long y); // viewport [Replaceable] readonly attribute long innerWidth; [Replaceable] readonly attribute long innerHeight; // viewport scrolling [Replaceable] readonly attribute double scrollX; [Replaceable] readonly attribute double pageXOffset; [Replaceable] readonly attribute double scrollY; [Replaceable] readonly attribute double pageYOffset; void scroll(optional ScrollToOptions options); void scroll(unrestricted double x, unrestricted double y); void scrollTo(optional ScrollToOptions options); void scrollTo(unrestricted double x, unrestricted double y); void scrollBy(optional ScrollToOptions options); void scrollBy(unrestricted double x, unrestricted double y); // client [Replaceable] readonly attribute long screenX; [Replaceable] readonly attribute long screenY; [Replaceable] readonly attribute long outerWidth; [Replaceable] readonly attribute long outerHeight; [Replaceable] readonly attribute double devicePixelRatio; }; interface MediaQueryList : EventTarget { readonly attribute DOMString media; readonly attribute boolean matches; void addListener(EventListener? listener); void removeListener(EventListener? listener); attribute EventHandler onchange; }; [Constructor(DOMString type, optional MediaQueryListEventInit eventInitDict)] interface MediaQueryListEvent : Event { readonly attribute DOMString media; readonly attribute boolean matches; }; dictionary MediaQueryListEventInit : EventInit { DOMString media = ""; boolean matches = false; }; interface Screen { readonly attribute long availWidth; readonly attribute long availHeight; readonly attribute long width; readonly attribute long height; readonly attribute unsigned long colorDepth; readonly attribute unsigned long pixelDepth; }; partial interface Document { Element? elementFromPoint(double x, double y); sequence elementsFromPoint(double x, double y); CaretPosition? caretPositionFromPoint(double x, double y); readonly attribute Element? scrollingElement; }; interface CaretPosition { readonly attribute Node offsetNode; readonly attribute unsigned long offset; [NewObject] DOMRect? getClientRect(); }; enum ScrollLogicalPosition { "start", "center", "end", "nearest" }; dictionary ScrollIntoViewOptions : ScrollOptions { ScrollLogicalPosition block = "center"; ScrollLogicalPosition inline = "center"; }; partial interface Element { sequence getClientRects(); [NewObject] DOMRect getBoundingClientRect(); void scrollIntoView(); void scrollIntoView((boolean or object) arg); void scroll(optional ScrollToOptions options); void scroll(unrestricted double x, unrestricted double y); void scrollTo(optional ScrollToOptions options); void scrollTo(unrestricted double x, unrestricted double y); void scrollBy(optional ScrollToOptions options); void scrollBy(unrestricted double x, unrestricted double y); attribute unrestricted double scrollTop; attribute unrestricted double scrollLeft; readonly attribute long scrollWidth; readonly attribute long scrollHeight; readonly attribute long clientTop; readonly attribute long clientLeft; readonly attribute long clientWidth; readonly attribute long clientHeight; }; partial interface HTMLElement { readonly attribute Element? offsetParent; readonly attribute long offsetTop; readonly attribute long offsetLeft; readonly attribute long offsetWidth; readonly attribute long offsetHeight; }; partial interface HTMLImageElement { readonly attribute long x; readonly attribute long y; }; partial interface Range { sequence getClientRects(); [NewObject] DOMRect getBoundingClientRect(); }; partial interface MouseEvent { readonly attribute double screenX; readonly attribute double screenY; readonly attribute double pageX; readonly attribute double pageY; readonly attribute double clientX; readonly attribute double clientY; readonly attribute double x; readonly attribute double y; readonly attribute double offsetX; readonly attribute double offsetY; }; partial dictionary MouseEventInit { double screenX = 0.0; double screenY = 0.0; double clientX = 0.0; double clientY = 0.0; }; enum CSSBoxType { "margin", "border", "padding", "content" }; dictionary BoxQuadOptions { CSSBoxType box = "border"; GeometryNode relativeTo; // XXX default document (i.e. viewport) }; dictionary ConvertCoordinateOptions { CSSBoxType fromBox = "border"; CSSBoxType toBox = "border"; }; [NoInterfaceObject] interface GeometryUtils { sequence getBoxQuads(optional BoxQuadOptions options); DOMQuad convertQuadFromNode(DOMQuadInit quad, GeometryNode from, optional ConvertCoordinateOptions options); DOMQuad convertRectFromNode(DOMRectReadOnly rect, GeometryNode from, optional ConvertCoordinateOptions options); DOMPoint convertPointFromNode(DOMPointInit point, GeometryNode from, optional ConvertCoordinateOptions options); // XXX z,w turns into 0 }; Text implements GeometryUtils; // like Range Element implements GeometryUtils; CSSPseudoElement implements GeometryUtils; Document implements GeometryUtils; typedef (Text or Element or CSSPseudoElement or Document) GeometryNode; enum ScrollBehavior { "auto", "instant", "smooth" }; dictionary ScrollOptions { ScrollBehavior behavior = "auto"; }; dictionary ScrollToOptions : ScrollOptions { unrestricted double left; unrestricted double top; }; partial interface Window { [NewObject] MediaQueryList matchMedia(DOMString query); [SameObject, Replaceable] readonly attribute Screen screen; // browsing context void moveTo(long x, long y); void moveBy(long x, long y); void resizeTo(long x, long y); void resizeBy(long x, long y); // viewport [Replaceable] readonly attribute long innerWidth; [Replaceable] readonly attribute long innerHeight; // viewport scrolling [Replaceable] readonly attribute double scrollX; [Replaceable] readonly attribute double pageXOffset; [Replaceable] readonly attribute double scrollY; [Replaceable] readonly attribute double pageYOffset; void scroll(optional ScrollToOptions options); void scroll(unrestricted double x, unrestricted double y); void scrollTo(optional ScrollToOptions options); void scrollTo(unrestricted double x, unrestricted double y); void scrollBy(optional ScrollToOptions options); void scrollBy(unrestricted double x, unrestricted double y); // client [Replaceable] readonly attribute long screenX; [Replaceable] readonly attribute long screenY; [Replaceable] readonly attribute long outerWidth; [Replaceable] readonly attribute long outerHeight; [Replaceable] readonly attribute double devicePixelRatio; }; interface MediaQueryList : EventTarget { readonly attribute DOMString media; readonly attribute boolean matches; void addListener(EventListener? listener); void removeListener(EventListener? listener); attribute EventHandler onchange; }; [Constructor(DOMString type, optional MediaQueryListEventInit eventInitDict)] interface MediaQueryListEvent : Event { readonly attribute DOMString media; readonly attribute boolean matches; }; dictionary MediaQueryListEventInit : EventInit { DOMString media = ""; boolean matches = false; }; interface Screen { readonly attribute long availWidth; readonly attribute long availHeight; readonly attribute long width; readonly attribute long height; readonly attribute unsigned long colorDepth; readonly attribute unsigned long pixelDepth; }; partial interface Document { Element? elementFromPoint(double x, double y); sequence elementsFromPoint(double x, double y); CaretPosition? caretPositionFromPoint(double x, double y); readonly attribute Element? scrollingElement; }; interface CaretPosition { readonly attribute Node offsetNode; readonly attribute unsigned long offset; [NewObject] DOMRect? getClientRect(); }; enum ScrollLogicalPosition { "start", "center", "end", "nearest" }; dictionary ScrollIntoViewOptions : ScrollOptions { ScrollLogicalPosition block = "center"; ScrollLogicalPosition inline = "center"; }; partial interface Element { sequence getClientRects(); [NewObject] DOMRect getBoundingClientRect(); void scrollIntoView(); void scrollIntoView((boolean or object) arg); void scroll(optional ScrollToOptions options); void scroll(unrestricted double x, unrestricted double y); void scrollTo(optional ScrollToOptions options); void scrollTo(unrestricted double x, unrestricted double y); void scrollBy(optional ScrollToOptions options); void scrollBy(unrestricted double x, unrestricted double y); attribute unrestricted double scrollTop; attribute unrestricted double scrollLeft; readonly attribute long scrollWidth; readonly attribute long scrollHeight; readonly attribute long clientTop; readonly attribute long clientLeft; readonly attribute long clientWidth; readonly attribute long clientHeight; }; partial interface HTMLElement { readonly attribute Element? offsetParent; readonly attribute long offsetTop; readonly attribute long offsetLeft; readonly attribute long offsetWidth; readonly attribute long offsetHeight; }; partial interface HTMLImageElement { readonly attribute long x; readonly attribute long y; }; partial interface Range { sequence getClientRects(); [NewObject] DOMRect getBoundingClientRect(); }; partial interface MouseEvent { readonly attribute double screenX; readonly attribute double screenY; readonly attribute double pageX; readonly attribute double pageY; readonly attribute double clientX; readonly attribute double clientY; readonly attribute double x; readonly attribute double y; readonly attribute double offsetX; readonly attribute double offsetY; }; partial dictionary MouseEventInit { double screenX = 0.0; double screenY = 0.0; double clientX = 0.0; double clientY = 0.0; }; enum CSSBoxType { "margin", "border", "padding", "content" }; dictionary BoxQuadOptions { CSSBoxType box = "border"; GeometryNode relativeTo; // XXX default document (i.e. viewport) }; dictionary ConvertCoordinateOptions { CSSBoxType fromBox = "border"; CSSBoxType toBox = "border"; }; [NoInterfaceObject] interface GeometryUtils { sequence getBoxQuads(optional BoxQuadOptions options); DOMQuad convertQuadFromNode(DOMQuadInit quad, GeometryNode from, optional ConvertCoordinateOptions options); DOMQuad convertRectFromNode(DOMRectReadOnly rect, GeometryNode from, optional ConvertCoordinateOptions options); DOMPoint convertPointFromNode(DOMPointInit point, GeometryNode from, optional ConvertCoordinateOptions options); // XXX z,w turns into 0 }; Text implements GeometryUtils; // like Range Element implements GeometryUtils; CSSPseudoElement implements GeometryUtils; Document implements GeometryUtils; typedef (Text or Element or CSSPseudoElement or Document) GeometryNode; // Downloaded from https://www.w3.org/TR/touch-events/ interface Touch { readonly attribute long identifier; readonly attribute EventTarget target; readonly attribute long screenX; readonly attribute long screenY; readonly attribute long clientX; readonly attribute long clientY; readonly attribute long pageX; readonly attribute long pageY; }; interface TouchList { readonly attribute unsigned long length; getter Touch? item (unsigned long index); }; interface TouchEvent : UIEvent { readonly attribute TouchList touches; readonly attribute TouchList targetTouches; readonly attribute TouchList changedTouches; readonly attribute boolean altKey; readonly attribute boolean metaKey; readonly attribute boolean ctrlKey; readonly attribute boolean shiftKey; }; partial interface Document { Touch createTouch (WindowProxy view, EventTarget target, long identifier, long pageX, long pageY, long screenX, long screenY); TouchList createTouchList (Touch... touches); };