spec/fixtures/html5.idl in webidl-0.1.9 vs spec/fixtures/html5.idl in webidl-0.1.10
- old
+ new
@@ -1,408 +1,358 @@
-interface Example {
- // this is an IDL definition
+[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 nameOrItem);
};
-typedef (Int8Array or Uint8Array or Uint8ClampedArray or
- Int16Array or Uint16Array or
- Int32Array or Uint32Array or
- Float32Array or Float64Array or
- DataView) ArrayBufferView;
-interface HTMLAllCollection : HTMLCollection {
- // inherits length and 'getter'
- Element? item(unsigned long index);
- (HTMLCollection or Element)? item(DOMString name);
- legacycaller getter (HTMLCollection or Element)? namedItem(DOMString name); // shadows inherited namedItem()
-};
-
interface HTMLFormControlsCollection : HTMLCollection {
// inherits length and item()
- legacycaller getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
+ getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
};
+
interface RadioNodeList : NodeList {
attribute DOMString value;
};
+
interface HTMLOptionsCollection : HTMLCollection {
- // inherits item()
+ // inherits item(), namedItem()
attribute unsigned long length; // shadows inherited length
- legacycaller HTMLOptionElement? (DOMString name);
- setter creator void (unsigned long index, HTMLOptionElement? option);
+ setter void (unsigned long index, HTMLOptionElement? option);
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
void remove(long index);
attribute long selectedIndex;
};
-interface HTMLPropertiesCollection : HTMLCollection {
- // inherits length and item()
- getter PropertyNodeList? namedItem(DOMString name); // shadows inherited namedItem()
- [SameObject] readonly attribute DOMString[] names;
-};
-typedef sequence<any> PropertyValueArray;
-
-interface PropertyNodeList : NodeList {
- PropertyValueArray getValues();
+interface DOMStringList {
+ readonly attribute unsigned long length;
+ getter DOMString? item(unsigned long index);
+ boolean contains(DOMString string);
};
-[OverrideBuiltins, Exposed=(Window,Worker)]
-interface DOMStringMap {
- getter DOMString (DOMString name);
- setter creator void (DOMString name, DOMString value);
- deleter void (DOMString name);
-};
-interface DOMElementMap {
- getter Element (DOMString name);
- setter creator void (DOMString name, Element value);
- deleter void (DOMString name);
-};
-
-typedef (ArrayBuffer or CanvasProxy or MessagePort) Transferable;
-
-callback FileCallback = void (File file);
-
enum DocumentReadyState { "loading", "interactive", "complete" };
+typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
+
[OverrideBuiltins]
-partial /*sealed*/ interface Document {
+partial interface Document {
// resource metadata management
[PutForwards=href, Unforgeable] readonly attribute Location? location;
- attribute DOMString domain;
- readonly attribute DOMString referrer;
- attribute DOMString cookie;
+ 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);
- attribute DOMString title;
+ [CEReactions] attribute DOMString title;
attribute DOMString dir;
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);
- NodeList getItems(optional DOMString typeNames = ""); // microdata
- [SameObject] readonly attribute DOMElementMap cssElementMap;
- readonly attribute HTMLScriptElement? currentScript;
+ readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
// dynamic markup insertion
Document open(optional DOMString type = "text/html", optional DOMString replace = "");
WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false);
- void close();
- void write(DOMString... text);
- void writeln(DOMString... text);
+ [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();
- attribute DOMString designMode;
- boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
+ [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);
- readonly attribute HTMLCollection commands;
// special event handler IDL attributes that only apply to Document objects
[LenientThis] attribute EventHandler onreadystatechange;
-
- // also has obsolete members
};
Document implements GlobalEventHandlers;
+Document implements DocumentAndElementEventHandlers;
-partial interface XMLDocument {
- boolean load(DOMString url);
-};
+[HTMLConstructor]
interface HTMLElement : Element {
// metadata attributes
- attribute DOMString title;
- attribute DOMString lang;
- attribute boolean translate;
- attribute DOMString dir;
+ [CEReactions] attribute DOMString title;
+ [CEReactions] attribute DOMString lang;
+ [CEReactions] attribute boolean translate;
+ [CEReactions] attribute DOMString dir;
[SameObject] readonly attribute DOMStringMap dataset;
- // microdata
- attribute boolean itemScope;
- [PutForwards=value] readonly attribute DOMSettableTokenList itemType;
- attribute DOMString itemId;
- [PutForwards=value] readonly attribute DOMSettableTokenList itemRef;
- [PutForwards=value] readonly attribute DOMSettableTokenList itemProp;
- readonly attribute HTMLPropertiesCollection properties;
- attribute any itemValue; // acts as DOMString on setting
-
// user interaction
- attribute boolean hidden;
+ [CEReactions] attribute boolean hidden;
void click();
- attribute long tabIndex;
+ [CEReactions] attribute long tabIndex;
void focus();
void blur();
- attribute DOMString accessKey;
- readonly attribute DOMString accessKeyLabel;
- attribute boolean draggable;
- [PutForwards=value] readonly attribute DOMSettableTokenList dropzone;
- attribute HTMLMenuElement? contextMenu;
- attribute boolean spellcheck;
+ [CEReactions] attribute DOMString accessKey;
+ [CEReactions] attribute boolean draggable;
+ [CEReactions] attribute boolean spellcheck;
void forceSpellCheck();
-
- // command API
- readonly attribute DOMString? commandType;
- readonly attribute DOMString? commandLabel;
- readonly attribute DOMString? commandIcon;
- readonly attribute boolean? commandHidden;
- readonly attribute boolean? commandDisabled;
- readonly attribute boolean? commandChecked;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText;
};
HTMLElement implements GlobalEventHandlers;
+HTMLElement implements DocumentAndElementEventHandlers;
HTMLElement implements ElementContentEditable;
+// Note: intentionally not [HTMLConstructor]
interface HTMLUnknownElement : HTMLElement { };
-interface HTMLHtmlElement : HTMLElement {
- // also has obsolete members
+
+[OverrideBuiltins]
+interface DOMStringMap {
+ getter DOMString (DOMString name);
+ [CEReactions] setter void (DOMString name, DOMString value);
+ [CEReactions] deleter void (DOMString name);
};
+
+interface HTMLHtmlElement : HTMLElement {};
+
+
interface HTMLHeadElement : HTMLElement {};
+
interface HTMLTitleElement : HTMLElement {
attribute DOMString text;
};
+
interface HTMLBaseElement : HTMLElement {
attribute DOMString href;
attribute DOMString target;
};
-interface HTMLLinkElement : HTMLElement {
- attribute DOMString href;
- attribute DOMString? crossOrigin;
- attribute DOMString rel;
- readonly attribute DOMTokenList relList;
- attribute DOMString media;
- attribute DOMString hreflang;
- attribute DOMString type;
- [PutForwards=value] readonly attribute DOMSettableTokenList sizes;
- // also has obsolete members
+interface HTMLLinkElement : HTMLElement {
+ [CEReactions] attribute USVString href;
+ [CEReactions] attribute DOMString? crossOrigin;
+ [CEReactions] attribute DOMString rel;
+ [CEReactions] attribute DOMString rev;
+ [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;
+ HTMLLinkElement implements LinkStyle;
+
interface HTMLMetaElement : HTMLElement {
attribute DOMString name;
attribute DOMString httpEquiv;
attribute DOMString content;
-
- // also has obsolete members
};
+
interface HTMLStyleElement : HTMLElement {
attribute DOMString media;
+ attribute DOMString nonce;
attribute DOMString type;
- attribute boolean scoped;
};
HTMLStyleElement implements LinkStyle;
-interface HTMLBodyElement : HTMLElement {
- // also has obsolete members
+interface HTMLBodyElement : HTMLElement {
};
HTMLBodyElement implements WindowEventHandlers;
-interface HTMLHeadingElement : HTMLElement {
- // also has obsolete members
-};
-interface HTMLParagraphElement : HTMLElement {
- // also has obsolete members
-};
+interface HTMLHeadingElement : HTMLElement {};
-interface HTMLHRElement : HTMLElement {
- // also has obsolete members
-};
-interface HTMLPreElement : HTMLElement {
- // also has obsolete members
-};
+interface HTMLParagraphElement : HTMLElement {};
+
+interface HTMLHRElement : HTMLElement {};
+
+
+interface HTMLPreElement : HTMLElement {};
+
+
interface HTMLQuoteElement : HTMLElement {
attribute DOMString cite;
};
+
interface HTMLOListElement : HTMLElement {
attribute boolean reversed;
attribute long start;
attribute DOMString type;
-
- // also has obsolete members
};
-interface HTMLUListElement : HTMLElement {
- // also has obsolete members
-};
+interface HTMLUListElement : HTMLElement {};
+
+
interface HTMLLIElement : HTMLElement {
attribute long value;
-
- // also has obsolete members
};
-interface HTMLDListElement : HTMLElement {
- // also has obsolete members
-};
-interface HTMLDivElement : HTMLElement {
- // also has obsolete members
-};
+interface HTMLDListElement : HTMLElement {};
+
+interface HTMLDivElement : HTMLElement {};
+
+
interface HTMLAnchorElement : HTMLElement {
attribute DOMString target;
attribute DOMString download;
- [PutForwards=value] attribute DOMSettableTokenList ping;
attribute DOMString rel;
- readonly attribute DOMTokenList relList;
+ attribute DOMString rev;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
attribute DOMString hreflang;
attribute DOMString type;
-
attribute DOMString text;
-
- // also has obsolete members
+ attribute DOMString referrerPolicy;
};
-HTMLAnchorElement implements URLUtils;
+HTMLAnchorElement implements HTMLHyperlinkElementUtils;
+
interface HTMLDataElement : HTMLElement {
attribute DOMString value;
};
+
interface HTMLTimeElement : HTMLElement {
attribute DOMString dateTime;
};
+
interface HTMLSpanElement : HTMLElement {};
-interface HTMLBRElement : HTMLElement {
- // also has obsolete members
-};
+interface HTMLBRElement : HTMLElement {};
+
+
interface HTMLModElement : HTMLElement {
attribute DOMString cite;
attribute DOMString dateTime;
};
+
interface HTMLPictureElement : HTMLElement {};
-partial interface HTMLSourceElement {
- attribute DOMString srcset;
- attribute DOMString sizes;
- attribute DOMString media;
+
+interface HTMLSourceElement : HTMLElement {
+ attribute DOMString src;
+ attribute DOMString type;
+ attribute DOMString srcset;
+ attribute DOMString sizes;
+ attribute DOMString media;
};
+
[NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
- attribute DOMString alt;
- attribute DOMString src;
- attribute DOMString srcset;
- attribute DOMString sizes;
- attribute DOMString? crossOrigin;
- attribute DOMString useMap;
- attribute boolean isMap;
- attribute unsigned long width;
- attribute unsigned long height;
+ attribute DOMString alt;
+ attribute DOMString src;
+ attribute DOMString srcset;
+ attribute DOMString sizes;
+ attribute DOMString? crossOrigin;
+ attribute DOMString useMap;
+ attribute DOMString longDesc;
+ attribute boolean isMap;
+ attribute unsigned long width;
+ attribute unsigned long height;
readonly attribute unsigned long naturalWidth;
readonly attribute unsigned long naturalHeight;
readonly attribute boolean complete;
readonly attribute DOMString currentSrc;
-
- // also has obsolete members
+ attribute DOMString referrerPolicy;
};
+
interface HTMLIFrameElement : HTMLElement {
attribute DOMString src;
attribute DOMString srcdoc;
attribute DOMString name;
- [PutForwards=value] readonly attribute DOMSettableTokenList sandbox;
- attribute boolean seamless;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
attribute boolean allowFullscreen;
+ attribute boolean allowPaymentRequest;
attribute DOMString width;
attribute DOMString height;
+ attribute DOMString referrerPolicy;
readonly attribute Document? contentDocument;
readonly attribute WindowProxy? contentWindow;
- Document? getSVGDocument();
-
- // also has obsolete members
};
+
interface HTMLEmbedElement : HTMLElement {
attribute DOMString src;
attribute DOMString type;
attribute DOMString width;
attribute DOMString height;
- Document? getSVGDocument();
legacycaller any (any... arguments);
-
- // also has obsolete members
};
+
interface HTMLObjectElement : HTMLElement {
attribute DOMString data;
attribute DOMString type;
attribute boolean typeMustMatch;
attribute DOMString name;
- attribute DOMString useMap;
readonly attribute HTMLFormElement? form;
attribute DOMString width;
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);
-
- // also has obsolete members
};
+
interface HTMLParamElement : HTMLElement {
attribute DOMString name;
attribute DOMString value;
-
- // also has obsolete members
};
+
interface HTMLVideoElement : HTMLMediaElement {
attribute unsigned long width;
attribute unsigned long height;
readonly attribute unsigned long videoWidth;
readonly attribute unsigned long videoHeight;
attribute DOMString poster;
};
+
[NamedConstructor=Audio(optional DOMString src)]
interface HTMLAudioElement : HTMLMediaElement {};
-interface HTMLSourceElement : HTMLElement {
- attribute DOMString src;
- attribute DOMString type;
- // also has obsolete members
-};
-
interface HTMLTrackElement : HTMLElement {
attribute DOMString kind;
attribute DOMString src;
attribute DOMString srclang;
attribute DOMString label;
@@ -415,12 +365,17 @@
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;
@@ -450,11 +405,11 @@
// playback state
attribute double currentTime;
void fastSeek(double time);
readonly attribute unrestricted double duration;
- Date getStartDate();
+ object getStartDate();
readonly attribute boolean paused;
attribute double defaultPlaybackRate;
attribute double playbackRate;
readonly attribute TimeRanges played;
readonly attribute TimeRanges seekable;
@@ -462,14 +417,10 @@
attribute boolean autoplay;
attribute boolean loop;
void play();
void pause();
- // media controller
- attribute DOMString mediaGroup;
- attribute MediaController? controller;
-
// controls
attribute boolean controls;
attribute double volume;
attribute boolean muted;
attribute boolean defaultMuted;
@@ -479,36 +430,40 @@
[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;
@@ -516,70 +471,35 @@
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;
};
-enum MediaControllerPlaybackState { "waiting", "playing", "ended" };
-[Constructor]
-interface MediaController : EventTarget {
- readonly attribute unsigned short readyState; // uses HTMLMediaElement.readyState's values
- readonly attribute TimeRanges buffered;
- readonly attribute TimeRanges seekable;
- readonly attribute unrestricted double duration;
- attribute double currentTime;
-
- readonly attribute boolean paused;
- readonly attribute MediaControllerPlaybackState playbackState;
- readonly attribute TimeRanges played;
- void pause();
- void unpause();
- void play(); // calls play() on all media elements as well
-
- attribute double defaultPlaybackRate;
- attribute double playbackRate;
-
- attribute double volume;
- attribute boolean muted;
-
- attribute EventHandler onemptied;
- attribute EventHandler onloadedmetadata;
- attribute EventHandler onloadeddata;
- attribute EventHandler oncanplay;
- attribute EventHandler oncanplaythrough;
- attribute EventHandler onplaying;
- attribute EventHandler onended;
- attribute EventHandler onwaiting;
-
- attribute EventHandler ondurationchange;
- attribute EventHandler ontimeupdate;
- attribute EventHandler onplay;
- attribute EventHandler onpause;
- attribute EventHandler onratechange;
- attribute EventHandler onvolumechange;
-};
-
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;
@@ -595,16 +515,18 @@
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;
@@ -613,116 +535,131 @@
attribute EventHandler onenter;
attribute EventHandler onexit;
};
+
+[Constructor(double startTime, double endTime, ArrayBuffer data)]
+interface DataCue : TextTrackCue {
+ attribute ArrayBuffer data;
+};
+
+
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;
+ (VideoTrack or AudioTrack or TextTrack)? track = null;
};
+
interface HTMLMapElement : HTMLElement {
attribute DOMString name;
- readonly attribute HTMLCollection areas;
- readonly attribute HTMLCollection images;
+ [SameObject] readonly attribute HTMLCollection areas;
+ [SameObject] readonly attribute HTMLCollection images;
};
+
interface HTMLAreaElement : HTMLElement {
attribute DOMString alt;
attribute DOMString coords;
attribute DOMString shape;
attribute DOMString target;
attribute DOMString download;
- [PutForwards=value] attribute DOMSettableTokenList ping;
attribute DOMString rel;
- readonly attribute DOMTokenList relList;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
attribute DOMString hreflang;
attribute DOMString type;
+ attribute DOMString referrerPolicy;
+};
+HTMLAreaElement implements HTMLHyperlinkElementUtils;
- // also has obsolete members
+
+[NoInterfaceObject]
+interface HTMLHyperlinkElementUtils {
+ stringifier attribute USVString href;
+ readonly attribute USVString origin;
+ attribute USVString protocol;
+ attribute USVString username;
+ attribute USVString password;
+ attribute USVString host;
+ attribute USVString hostname;
+ attribute USVString port;
+ attribute USVString pathname;
+ attribute USVString search;
+ attribute USVString hash;
};
-HTMLAreaElement implements URLUtils;
+
interface HTMLTableElement : HTMLElement {
attribute HTMLTableCaptionElement? caption;
- HTMLElement createCaption();
+ HTMLTableCaptionElement createCaption();
void deleteCaption();
attribute HTMLTableSectionElement? tHead;
- HTMLElement createTHead();
+ HTMLTableSectionElement createTHead();
void deleteTHead();
attribute HTMLTableSectionElement? tFoot;
- HTMLElement createTFoot();
+ HTMLTableSectionElement createTFoot();
void deleteTFoot();
- readonly attribute HTMLCollection tBodies;
- HTMLElement createTBody();
- readonly attribute HTMLCollection rows;
- HTMLElement insertRow(optional long index = -1);
+ [SameObject] readonly attribute HTMLCollection tBodies;
+ HTMLTableSectionElement createTBody();
+ [SameObject] readonly attribute HTMLCollection rows;
+ HTMLTableRowElement insertRow(optional long index = -1);
void deleteRow(long index);
- attribute boolean sortable;
- void stopSorting();
-
- // also has obsolete members
};
-interface HTMLTableCaptionElement : HTMLElement {
- // also has obsolete members
-};
+interface HTMLTableCaptionElement : HTMLElement {};
+
+
interface HTMLTableColElement : HTMLElement {
attribute unsigned long span;
-
- // also has obsolete members
};
+
interface HTMLTableSectionElement : HTMLElement {
- readonly attribute HTMLCollection rows;
+ [SameObject] readonly attribute HTMLCollection rows;
HTMLElement insertRow(optional long index = -1);
void deleteRow(long index);
-
- // also has obsolete members
};
+
interface HTMLTableRowElement : HTMLElement {
readonly attribute long rowIndex;
readonly attribute long sectionRowIndex;
- readonly attribute HTMLCollection cells;
+ [SameObject] readonly attribute HTMLCollection cells;
HTMLElement insertCell(optional long index = -1);
void deleteCell(long index);
-
- // also has obsolete members
};
-interface HTMLTableDataCellElement : HTMLTableCellElement {
- // also has obsolete members
-};
+interface HTMLTableDataCellElement : HTMLTableCellElement {};
+
+
interface HTMLTableHeaderCellElement : HTMLTableCellElement {
attribute DOMString scope;
attribute DOMString abbr;
- attribute DOMString sorted;
- void sort();
};
+
interface HTMLTableCellElement : HTMLElement {
attribute unsigned long colSpan;
attribute unsigned long rowSpan;
- [PutForwards=value] readonly attribute DOMSettableTokenList headers;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList headers;
readonly attribute long cellIndex;
-
- // also has obsolete members
};
+
[OverrideBuiltins]
interface HTMLFormElement : HTMLElement {
attribute DOMString acceptCharset;
attribute DOMString action;
attribute DOMString autocomplete;
@@ -731,29 +668,29 @@
attribute DOMString method;
attribute DOMString name;
attribute boolean noValidate;
attribute DOMString target;
- readonly attribute HTMLFormControlsCollection elements;
- readonly attribute long length;
+ [SameObject] readonly attribute HTMLFormControlsCollection elements;
+ readonly attribute unsigned long length;
getter Element (unsigned long index);
getter (RadioNodeList or Element) (DOMString name);
void submit();
void reset();
boolean checkValidity();
boolean reportValidity();
-
- void requestAutocomplete();
};
+
interface HTMLLabelElement : HTMLElement {
readonly attribute HTMLFormElement? form;
attribute DOMString htmlFor;
readonly attribute HTMLElement? control;
};
+
interface HTMLInputElement : HTMLElement {
attribute DOMString accept;
attribute DOMString alt;
attribute DOMString autocomplete;
attribute boolean autofocus;
@@ -768,32 +705,29 @@
attribute DOMString formMethod;
attribute boolean formNoValidate;
attribute DOMString formTarget;
attribute unsigned long height;
attribute boolean indeterminate;
- attribute DOMString inputMode;
readonly attribute HTMLElement? list;
attribute DOMString max;
attribute long maxLength;
attribute DOMString min;
attribute long minLength;
attribute boolean multiple;
attribute DOMString name;
attribute DOMString pattern;
attribute DOMString placeholder;
attribute boolean readOnly;
- attribute boolean required;
+ attribute boolean _required;
attribute unsigned long size;
attribute DOMString src;
attribute DOMString step;
attribute DOMString type;
attribute DOMString defaultValue;
[TreatNullAs=EmptyString] attribute DOMString value;
- attribute Date? valueAsDate;
+ attribute object? valueAsDate;
attribute unrestricted double valueAsNumber;
- attribute double valueLow;
- attribute double valueHigh;
attribute unsigned long width;
void stepUp(optional long n = 1);
void stepDown(optional long n = 1);
@@ -802,23 +736,22 @@
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
void select();
- attribute unsigned long selectionStart;
- attribute unsigned long selectionEnd;
- attribute DOMString selectionDirection;
+ 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);
-
- // also has obsolete members
};
+
interface HTMLButtonElement : HTMLElement {
attribute boolean autofocus;
attribute boolean disabled;
readonly attribute HTMLFormElement? form;
attribute DOMString formAction;
@@ -827,66 +760,69 @@
attribute boolean formNoValidate;
attribute DOMString formTarget;
attribute DOMString name;
attribute DOMString type;
attribute DOMString value;
- attribute HTMLMenuElement? menu;
readonly attribute boolean willValidate;
readonly attribute ValidityState validity;
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
};
+
interface HTMLSelectElement : HTMLElement {
attribute DOMString autocomplete;
attribute boolean autofocus;
attribute boolean disabled;
readonly attribute HTMLFormElement? form;
attribute boolean multiple;
attribute DOMString name;
- attribute boolean required;
+ attribute boolean _required;
attribute unsigned long size;
readonly attribute DOMString type;
- readonly attribute HTMLOptionsCollection options;
+ [SameObject] readonly attribute HTMLOptionsCollection options;
attribute unsigned long length;
getter Element? item(unsigned long index);
HTMLOptionElement? namedItem(DOMString name);
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
void remove(); // ChildNode overload
void remove(long index);
- setter creator void (unsigned long index, HTMLOptionElement? option);
+ setter void (unsigned long index, HTMLOptionElement? option);
- readonly attribute HTMLCollection selectedOptions;
+ [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);
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
};
+
interface HTMLDataListElement : HTMLElement {
- readonly attribute HTMLCollection options;
+ [SameObject] readonly attribute HTMLCollection options;
};
+
interface HTMLOptGroupElement : HTMLElement {
attribute boolean disabled;
attribute DOMString label;
};
+
[NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
interface HTMLOptionElement : HTMLElement {
attribute boolean disabled;
readonly attribute HTMLFormElement? form;
attribute DOMString label;
@@ -896,24 +832,24 @@
attribute DOMString text;
readonly attribute long index;
};
+
interface HTMLTextAreaElement : HTMLElement {
attribute DOMString autocomplete;
attribute boolean autofocus;
attribute unsigned long cols;
attribute DOMString dirName;
attribute boolean disabled;
readonly attribute HTMLFormElement? form;
- attribute DOMString inputMode;
attribute long maxLength;
attribute long minLength;
attribute DOMString name;
attribute DOMString placeholder;
attribute boolean readOnly;
- attribute boolean required;
+ attribute boolean _required;
attribute unsigned long rows;
attribute DOMString wrap;
readonly attribute DOMString type;
attribute DOMString defaultValue;
@@ -925,43 +861,24 @@
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
void select();
- attribute unsigned long selectionStart;
- attribute unsigned long selectionEnd;
- attribute DOMString selectionDirection;
+ 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);
};
-interface HTMLKeygenElement : HTMLElement {
- attribute boolean autofocus;
- attribute DOMString challenge;
- attribute boolean disabled;
- readonly attribute HTMLFormElement? form;
- attribute DOMString keytype;
- 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);
-
- readonly attribute NodeList labels;
-};
-
interface HTMLOutputElement : HTMLElement {
- [PutForwards=value] readonly attribute DOMSettableTokenList htmlFor;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
readonly attribute HTMLFormElement? form;
attribute DOMString name;
readonly attribute DOMString type;
attribute DOMString defaultValue;
@@ -972,72 +889,64 @@
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
};
+
interface HTMLProgressElement : HTMLElement {
attribute double value;
attribute double max;
readonly attribute double position;
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
};
+
interface HTMLMeterElement : HTMLElement {
attribute double value;
attribute double min;
attribute double max;
attribute double low;
attribute double high;
attribute double optimum;
- readonly attribute NodeList labels;
+ [SameObject] readonly attribute NodeList labels;
};
+
interface HTMLFieldSetElement : HTMLElement {
attribute boolean disabled;
readonly attribute HTMLFormElement? form;
attribute DOMString name;
readonly attribute DOMString type;
- readonly attribute HTMLFormControlsCollection elements;
+ [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);
};
+
interface HTMLLegendElement : HTMLElement {
readonly attribute HTMLFormElement? form;
-
- // also has obsolete members
};
-enum AutocompleteErrorReason { "" /* empty string */, "cancel", "disabled", "invalid" };
-[Constructor(DOMString type, optional AutocompleteErrorEventInit eventInitDict)]
-interface AutocompleteErrorEvent : Event {
- readonly attribute AutocompleteErrorReason reason;
-};
-
-dictionary AutocompleteErrorEventInit : EventInit {
- AutocompleteErrorReason reason;
-};
-
-
enum SelectionMode {
"select",
"start",
"end",
- "preserve", // default
+ "preserve" // default
};
+
interface ValidityState {
readonly attribute boolean valueMissing;
readonly attribute boolean typeMismatch;
readonly attribute boolean patternMismatch;
readonly attribute boolean tooLong;
@@ -1048,316 +957,67 @@
readonly attribute boolean badInput;
readonly attribute boolean customError;
readonly attribute boolean valid;
};
+
interface HTMLDetailsElement : HTMLElement {
attribute boolean open;
};
-interface HTMLMenuElement : HTMLElement {
- attribute DOMString type;
- attribute DOMString label;
- // also has obsolete members
-};
-
-interface HTMLMenuItemElement : HTMLElement {
- attribute DOMString type;
- attribute DOMString label;
- attribute DOMString icon;
- attribute boolean disabled;
- attribute boolean checked;
- attribute DOMString radiogroup;
- attribute boolean default;
- readonly attribute HTMLElement? command;
-};
-
-[Constructor(DOMString type, optional RelatedEventInit eventInitDict)]
-interface RelatedEvent : Event {
- readonly attribute EventTarget? relatedTarget;
-};
-
-dictionary RelatedEventInit : EventInit {
- EventTarget? relatedTarget;
-};
-
interface HTMLDialogElement : HTMLElement {
attribute boolean open;
attribute DOMString returnValue;
void show(optional (MouseEvent or Element) anchor);
void showModal(optional (MouseEvent or Element) anchor);
void close(optional DOMString returnValue);
};
+
interface HTMLScriptElement : HTMLElement {
attribute DOMString src;
attribute DOMString type;
attribute DOMString charset;
attribute boolean async;
attribute boolean defer;
attribute DOMString? crossOrigin;
attribute DOMString text;
-
- // also has obsolete members
+ attribute DOMString nonce;
};
+
+[Exposed=Window,
+ HTMLConstructor]
interface HTMLTemplateElement : HTMLElement {
readonly attribute DocumentFragment content;
};
+
typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
interface HTMLCanvasElement : HTMLElement {
attribute unsigned long width;
attribute unsigned long height;
RenderingContext? getContext(DOMString contextId, any... arguments);
boolean probablySupportsContext(DOMString contextId, any... arguments);
- void setContext(RenderingContext context);
- CanvasProxy transferControlToProxy();
-
DOMString toDataURL(optional DOMString type, any... arguments);
- void toBlob(FileCallback? _callback, optional DOMString type, any... arguments);
+ void toBlob(BlobCallback _callback, optional DOMString type, any... arguments);
};
-[Exposed=(Window,Worker)]
-interface CanvasProxy {
- void setContext(RenderingContext context);
-};
-// CanvasProxy implements Transferable;
+callback BlobCallback = void (Blob? blob);
-typedef (HTMLImageElement or
- HTMLVideoElement or
- HTMLCanvasElement or
- CanvasRenderingContext2D or
- ImageBitmap) CanvasImageSource;
-enum CanvasFillRule { "nonzero", "evenodd" };
-
-
-[Constructor(),
- Constructor(unsigned long width, unsigned long height),
- Exposed=(Window,Worker)]
-interface CanvasRenderingContext2D {
-
- // back-reference to the canvas
- readonly attribute HTMLCanvasElement canvas;
-
- // canvas dimensions
- attribute unsigned long width;
- attribute unsigned long height;
-
- // for contexts that aren't directly fixed to a specific canvas
- void commit(); // push the image to the output bitmap
-
- // state
- void save(); // push state on state stack
- void restore(); // pop state stack and restore state
-
- // transformations (default transform is the identity matrix)
- attribute SVGMatrix currentTransform;
- 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);
- void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
- void resetTransform();
-
- // compositing
- attribute unrestricted double globalAlpha; // (default 1.0)
- attribute DOMString globalCompositeOperation; // (default source-over)
-
- // image smoothing
- attribute boolean imageSmoothingEnabled; // (default true)
-
- // colours and styles (see also the CanvasDrawingStyles interface)
- 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);
-
- // 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)
-
- // 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);
-
- // path API (see also CanvasPathMethods)
- void beginPath();
- void fill(optional CanvasFillRule fillRule = "nonzero");
- void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
- void stroke();
- void stroke(Path2D path);
- void drawFocusIfNeeded(Element element);
- void drawFocusIfNeeded(Path2D path, Element element);
- void scrollPathIntoView();
- void scrollPathIntoView(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);
-
- // text (see also the CanvasDrawingStyles interface)
- 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);
-
- // 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);
-
- // hit regions
- void addHitRegion(optional HitRegionOptions options);
- void removeHitRegion(DOMString id);
- void clearHitRegions();
-
- // 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);
-};
-CanvasRenderingContext2D implements CanvasDrawingStyles;
-CanvasRenderingContext2D implements CanvasPathMethods;
-
-[NoInterfaceObject, Exposed=(Window,Worker)]
-interface CanvasDrawingStyles {
- // line caps/joins
- attribute unrestricted double lineWidth; // (default 1)
- attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
- attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
- attribute unrestricted double miterLimit; // (default 10)
-
- // dashed lines
- void setLineDash(sequence<unrestricted double> segments); // default empty
- sequence<unrestricted double> getLineDash();
- attribute unrestricted double lineDashOffset;
-
- // text
- attribute DOMString font; // (default 10px sans-serif)
- attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
- attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
- attribute DOMString direction; // "ltr", "rtl", "inherit" (default: "inherit")
-};
-
-[NoInterfaceObject, Exposed=(Window,Worker)]
-interface CanvasPathMethods {
- // 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);
-};
-
-[Exposed=(Window,Worker)]
-interface CanvasGradient {
- // opaque object
- void addColorStop(double offset, DOMString color);
-};
-
-[Exposed=(Window,Worker)]
-interface CanvasPattern {
- // opaque object
- void setTransform(SVGMatrix transform);
-};
-
-[Exposed=(Window,Worker)]
-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(optional Element scope), Exposed=(Window,Worker)]
-interface DrawingStyle { };
-DrawingStyle implements CanvasDrawingStyles;
-
-[Constructor,
- Constructor(Path2D path),
- Constructor(Path2D[] paths, optional CanvasFillRule fillRule = "nonzero"),
- Constructor(DOMString d), Exposed=(Window,Worker)]
-interface Path2D {
- void addPath(Path2D path, optional SVGMatrix? transformation = null);
- void addPathByStrokingPath(Path2D path, CanvasDrawingStyles styles, optional SVGMatrix? transformation = null);
- void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
- void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
- void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path2D path, optional unrestricted double maxWidth);
- void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path2D path, optional unrestricted double maxWidth);
-};
-Path2D implements CanvasPathMethods;
-
-partial interface MouseEvent {
- readonly attribute DOMString? region;
-};
-
-partial dictionary MouseEventInit {
- DOMString? region;
-};
-
-partial interface Touch {
- readonly attribute DOMString? region;
-};
-
[NoInterfaceObject]
interface ElementContentEditable {
attribute DOMString contentEditable;
readonly attribute boolean isContentEditable;
};
+
interface DataTransfer {
attribute DOMString dropEffect;
attribute DOMString effectAllowed;
[SameObject] readonly attribute DataTransferItemList items;
@@ -1370,222 +1030,238 @@
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;
+ DataTransfer? dataTransfer = null;
};
-[PrimaryGlobal]
+
+[PrimaryGlobal, LegacyUnenumerableNamedProperties]
/*sealed*/ 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;
- [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();
+// 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;
+[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 DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
- getter WindowProxy (unsigned long index);
- getter object (DOMString name);
+// 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 DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
+getter WindowProxy (unsigned long index);
+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;
- [Replaceable, SameObject] readonly attribute External external;
- readonly attribute ApplicationCache applicationCache;
+// the user agent
+readonly attribute Navigator navigator;
- // user prompts
- void alert();
- void alert(DOMString message);
- boolean confirm(optional DOMString message = "");
- DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
- void print();
- any showModalDialog(DOMString url, optional any argument); // deprecated
+// user prompts
+void alert();
+void alert(DOMString message);
+boolean confirm(optional DOMString message = "");
+DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
+void print();
- long requestAnimationFrame(FrameRequestCallback callback);
- void cancelAnimationFrame(long handle);
-
- void postMessage(any message, DOMString targetOrigin, optional sequence<Transferable> transfer);
-
- // also has obsolete members
+unsigned long requestAnimationFrame(FrameRequestCallback callback);
+void cancelAnimationFrame(unsigned long handle);
};
Window implements GlobalEventHandlers;
Window implements WindowEventHandlers;
+callback FrameRequestCallback = void (DOMHighResTimeStamp time);
+
+
interface BarProp {
- attribute boolean visible;
+ readonly attribute boolean visible;
};
+
+enum ScrollRestoration { "auto", "manual" };
+
+
interface History {
- readonly attribute long length;
+ readonly attribute unsigned long length;
+ attribute ScrollRestoration scrollRestoration;
readonly attribute any state;
- void go(optional long delta);
+ void go(optional long delta = 0);
void back();
void forward();
void pushState(any data, DOMString title, optional DOMString? url = null);
void replaceState(any data, DOMString title, optional DOMString? url = null);
};
-[Unforgeable] interface Location {
- void assign(DOMString url);
- void replace(DOMString url);
- void reload();
+
+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 USVString[] ancestorOrigins;
};
-Location implements URLUtils;
+
[Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
interface PopStateEvent : Event {
readonly attribute any state;
};
+
dictionary PopStateEventInit : EventInit {
- any state;
+ any state = null;
};
+
[Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
interface HashChangeEvent : Event {
- readonly attribute DOMString oldURL;
- readonly attribute DOMString newURL;
+ readonly attribute USVString oldURL;
+ readonly attribute USVString newURL;
};
+
dictionary HashChangeEventInit : EventInit {
- DOMString oldURL;
- DOMString newURL;
+ USVString oldURL = "";
+ USVString newURL = "";
};
+
[Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
interface PageTransitionEvent : Event {
readonly attribute boolean persisted;
};
+
dictionary PageTransitionEventInit : EventInit {
- boolean persisted;
+ 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)]
+[NoInterfaceObject, Exposed=(Window, Worker)]
interface NavigatorOnLine {
readonly attribute boolean onLine;
};
-[Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
+
+[Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window, Worker)]
interface ErrorEvent : Event {
readonly attribute DOMString message;
readonly attribute DOMString filename;
readonly attribute unsigned long lineno;
readonly attribute unsigned long colno;
readonly attribute any error;
};
+
dictionary ErrorEventInit : EventInit {
- DOMString message;
- DOMString filename;
- unsigned long lineno;
- unsigned long colno;
- any error;
+ DOMString message = "";
+ DOMString filename = "";
+ unsigned long lineno = 0;
+ unsigned long colno = 0;
+ any error = null;
};
-[TreatNonCallableAsNull]
+
+[Constructor(DOMString type, PromiseRejectionEventInit eventInitDict), Exposed=(Window,Worker)]
+interface PromiseRejectionEvent : Event {
+ readonly attribute Promise<any> promise;
+ readonly attribute any reason;
+};
+
+
+dictionary PromiseRejectionEventInit : EventInit {
+ required Promise<any> promise;
+ any reason;
+};
+
+
+[TreatNonObjectAsNull]
callback EventHandlerNonNull = any (Event event);
typedef EventHandlerNonNull? EventHandler;
-[TreatNonCallableAsNull]
+
+[TreatNonObjectAsNull]
callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long column, optional any error);
typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
-[TreatNonCallableAsNull]
+
+[TreatNonObjectAsNull]
callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
+
[NoInterfaceObject]
interface GlobalEventHandlers {
attribute EventHandler onabort;
- attribute EventHandler onautocomplete;
- attribute EventHandler onautocompleteerror;
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;
@@ -1613,11 +1289,11 @@
[LenientThis] attribute EventHandler onmouseleave;
attribute EventHandler onmousemove;
attribute EventHandler onmouseout;
attribute EventHandler onmouseover;
attribute EventHandler onmouseup;
- attribute EventHandler onmousewheel;
+ attribute EventHandler onwheel;
attribute EventHandler onpause;
attribute EventHandler onplay;
attribute EventHandler onplaying;
attribute EventHandler onprogress;
attribute EventHandler onratechange;
@@ -1626,20 +1302,20 @@
attribute EventHandler onscroll;
attribute EventHandler onseeked;
attribute EventHandler onseeking;
attribute EventHandler onselect;
attribute EventHandler onshow;
- attribute EventHandler onsort;
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;
@@ -1648,66 +1324,78 @@
attribute EventHandler onmessage;
attribute EventHandler onoffline;
attribute EventHandler ononline;
attribute EventHandler onpagehide;
attribute EventHandler onpageshow;
+ attribute EventHandler onrejectionhandled;
attribute EventHandler onpopstate;
attribute EventHandler onstorage;
+ attribute EventHandler onunhandledrejection;
attribute EventHandler onunload;
};
-[NoInterfaceObject, Exposed=(Window,Worker)]
-interface WindowBase64 {
+
+[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 (WindowBase64)
DOMString btoa(DOMString btoa);
DOMString atob(DOMString atob);
-};
-Window implements WindowBase64;
-[NoInterfaceObject, Exposed=(Window,Worker)]
-interface WindowTimers {
- long setTimeout(Function handler, optional long timeout = 0, any... arguments);
- long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
+ // Timers (WindowTimers)
+ long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments);
void clearTimeout(optional long handle = 0);
- long setInterval(Function handler, optional long timeout = 0, any... arguments);
- long setInterval(DOMString handler, optional long timeout = 0, any... arguments);
+ long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments);
void clearInterval(optional long handle = 0);
-};
-Window implements WindowTimers;
-[NoInterfaceObject]
-interface WindowModal {
- readonly attribute any dialogArguments;
- attribute any returnValue;
+ // ImageBitmap, Images (ImageBitmapFactories)
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
};
+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 NavigatorStorageUtils;
-Navigator implements NavigatorPlugins;
+Navigator implements NavigatorCookies;
-[NoInterfaceObject, Exposed=(Window,Worker)]
+
+[NoInterfaceObject, Exposed=(Window, Worker)]
interface NavigatorID {
- readonly attribute DOMString appCodeName; // constant "Mozilla"
- readonly attribute DOMString appName;
+ [Exposed=Window] 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"
- boolean taintEnabled(); // constant false
+ [Exposed=Window]readonly attribute DOMString product; // constant "Gecko"
readonly attribute DOMString userAgent;
};
-[NoInterfaceObject, Exposed=(Window,Worker)]
+
+[NoInterfaceObject, Exposed=(Window, Worker)]
interface NavigatorLanguage {
readonly attribute DOMString? language;
readonly attribute DOMString[] languages;
};
+
[NoInterfaceObject]
interface NavigatorContentUtils {
// content handler registration
void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
@@ -1715,584 +1403,2043 @@
DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
void unregisterProtocolHandler(DOMString scheme, DOMString url);
void unregisterContentHandler(DOMString mimeType, DOMString url);
};
+
[NoInterfaceObject]
-interface NavigatorStorageUtils {
+interface NavigatorCookies {
readonly attribute boolean cookieEnabled;
- void yieldForStorageUpdates();
};
+
+[Exposed=(Window, Worker), Serializable, Transferable]
+interface ImageBitmap {
+ readonly attribute unsigned long width;
+ readonly attribute unsigned long height;
+};
+
+typedef (HTMLImageElement or
+ HTMLVideoElement or
+ HTMLCanvasElement or
+ Blob or
+ ImageData or
+ CanvasRenderingContext2D or
+ ImageBitmap) ImageBitmapSource;
+
+
+// Note: intentionally not [HTMLConstructor]
+interface HTMLAppletElement : HTMLElement {
+ attribute DOMString align;
+ attribute DOMString alt;
+ attribute DOMString archive;
+ attribute DOMString code;
+ attribute USVString codeBase;
+ attribute DOMString height;
+ attribute unsigned long hspace;
+ attribute DOMString name;
+ attribute USVString _object; // the underscore is not part of the identifier
+ attribute unsigned long vspace;
+ attribute DOMString width;
+};
+
+
+[HTMLConstructor]
+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();
+};
+
+
+[HTMLConstructor]
+interface HTMLFrameSetElement : HTMLElement {
+ [CEReactions] attribute DOMString cols;
+ [CEReactions] attribute DOMString rows;
+};
+HTMLFrameSetElement implements WindowEventHandlers;
+
+
+[HTMLConstructor]
+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 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;
+ 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, 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 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 NavigatorPlugins {
+interface External {
+ void AddSearchProvider();
+ void IsSearchProviderInstalled();
+};
+
+
+Navigator implements NavigatorPlugins;
+
+[NoInterfaceObject]
+ interface NavigatorPlugins {
[SameObject] readonly attribute PluginArray plugins;
[SameObject] readonly attribute MimeTypeArray mimeTypes;
- readonly attribute boolean javaEnabled;
+ boolean javaEnabled();
};
+
interface PluginArray {
void refresh(optional boolean reload = false);
readonly attribute unsigned long length;
getter Plugin? item(unsigned long index);
getter Plugin? namedItem(DOMString name);
};
+
interface MimeTypeArray {
readonly attribute unsigned long length;
getter MimeType? item(unsigned long index);
getter MimeType? namedItem(DOMString name);
};
+
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;
};
-interface External {
- void AddSearchProvider(DOMString engineURL);
- unsigned long IsSearchProviderInstalled(DOMString engineURL);
+
+[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 nameOrItem);
};
-[Exposed=(Window,Worker)]
-interface ImageBitmap {
- readonly attribute unsigned long width;
- readonly attribute unsigned long height;
+interface HTMLFormControlsCollection : HTMLCollection {
+ // inherits length and item()
+ getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
};
-typedef (HTMLImageElement or
- HTMLVideoElement or
- HTMLCanvasElement or
- Blob or
- ImageData or
- CanvasRenderingContext2D or
- ImageBitmap) ImageBitmapSource;
+interface RadioNodeList : NodeList {
+ attribute DOMString value;
+};
-[NoInterfaceObject, Exposed=(Window,Worker)]
-interface ImageBitmapFactories {
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
+interface HTMLOptionsCollection : HTMLCollection {
+ // inherits item(), namedItem()
+ attribute unsigned long length; // shadows inherited length
+ setter void (unsigned long index, HTMLOptionElement? option);
+ void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
+ void remove(long index);
+ attribute long selectedIndex;
};
-Window implements ImageBitmapFactories;
-WorkerGlobalScope implements ImageBitmapFactories;
-[Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker)]
-interface MessageEvent : Event {
- readonly attribute any data;
- readonly attribute DOMString origin;
- readonly attribute DOMString lastEventId;
- readonly attribute (WindowProxy or MessagePort)? source;
- readonly attribute MessagePort[]? ports;
+interface DOMStringList {
+ readonly attribute unsigned long length;
+ getter DOMString? item(unsigned long index);
+ boolean contains(DOMString string);
+};
- void initMessageEvent(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg, DOMString originArg, DOMString lastEventIdArg, (WindowProxy or MessagePort) sourceArg, sequence<MessagePort>? portsArg);
+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;
+ attribute DOMString dir;
+ 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
+ Document open(optional DOMString type = "text/html", optional DOMString replace = "");
+ WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false);
+ [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;
-dictionary MessageEventInit : EventInit {
- any data;
- DOMString origin;
- DOMString lastEventId;
- (WindowProxy or MessagePort)? source;
- sequence<MessagePort> ports;
+[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;
+ [CEReactions] attribute boolean draggable;
+ [CEReactions] attribute boolean spellcheck;
+ void forceSpellCheck();
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText;
};
+HTMLElement implements GlobalEventHandlers;
+HTMLElement implements DocumentAndElementEventHandlers;
+HTMLElement implements ElementContentEditable;
-[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=(Window,Worker)]
-interface EventSource : EventTarget {
- readonly attribute DOMString url;
- readonly attribute boolean withCredentials;
+// Note: intentionally not [HTMLConstructor]
+interface HTMLUnknownElement : HTMLElement { };
- // ready state
- const unsigned short CONNECTING = 0;
- const unsigned short OPEN = 1;
- const unsigned short CLOSED = 2;
- readonly attribute unsigned short readyState;
+[OverrideBuiltins]
+interface DOMStringMap {
+ getter DOMString (DOMString name);
+ [CEReactions] setter void (DOMString name, DOMString value);
+ [CEReactions] deleter void (DOMString name);
+};
- // networking
- attribute EventHandler onopen;
- attribute EventHandler onmessage;
- attribute EventHandler onerror;
- void close();
+interface HTMLHtmlElement : HTMLElement {};
+
+interface HTMLHeadElement : HTMLElement {};
+
+interface HTMLTitleElement : HTMLElement {
+ attribute DOMString text;
};
-dictionary EventSourceInit {
- boolean withCredentials = false;
+interface HTMLBaseElement : HTMLElement {
+ attribute DOMString href;
+ attribute DOMString target;
};
-enum BinaryType { "blob", "arraybuffer" };
-[Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=(Window,Worker)]
-interface WebSocket : EventTarget {
- readonly attribute DOMString url;
+interface HTMLLinkElement : HTMLElement {
+ [CEReactions] attribute USVString href;
+ [CEReactions] attribute DOMString? crossOrigin;
+ [CEReactions] attribute DOMString rel;
+ [CEReactions] attribute DOMString rev;
+ [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;
+interface HTMLMetaElement : HTMLElement {
+ attribute DOMString name;
+ attribute DOMString httpEquiv;
+ attribute DOMString content;
+};
+
+interface HTMLStyleElement : HTMLElement {
+ attribute DOMString media;
+ attribute DOMString nonce;
+ attribute DOMString type;
+};
+HTMLStyleElement implements LinkStyle;
+
+interface HTMLBodyElement : HTMLElement {
+};
+HTMLBodyElement implements WindowEventHandlers;
+
+interface HTMLHeadingElement : HTMLElement {};
+
+interface HTMLParagraphElement : HTMLElement {};
+
+interface HTMLHRElement : HTMLElement {};
+
+interface HTMLPreElement : HTMLElement {};
+
+interface HTMLQuoteElement : HTMLElement {
+ attribute DOMString cite;
+};
+
+interface HTMLOListElement : HTMLElement {
+ attribute boolean reversed;
+ attribute long start;
+ attribute DOMString type;
+};
+
+interface HTMLUListElement : HTMLElement {};
+
+interface HTMLLIElement : HTMLElement {
+ attribute long value;
+};
+
+interface HTMLDListElement : HTMLElement {};
+
+interface HTMLDivElement : HTMLElement {};
+
+interface HTMLAnchorElement : HTMLElement {
+ attribute DOMString target;
+ attribute DOMString download;
+ attribute DOMString rel;
+ attribute DOMString rev;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+ attribute DOMString hreflang;
+ attribute DOMString type;
+ attribute DOMString text;
+ attribute DOMString referrerPolicy;
+};
+HTMLAnchorElement implements HTMLHyperlinkElementUtils;
+
+interface HTMLDataElement : HTMLElement {
+ attribute DOMString value;
+};
+
+interface HTMLTimeElement : HTMLElement {
+ attribute DOMString dateTime;
+};
+
+interface HTMLSpanElement : HTMLElement {};
+
+interface HTMLBRElement : HTMLElement {};
+
+interface HTMLModElement : HTMLElement {
+ attribute DOMString cite;
+ attribute DOMString dateTime;
+};
+
+interface HTMLPictureElement : HTMLElement {};
+
+interface HTMLSourceElement : HTMLElement {
+ attribute DOMString src;
+ attribute DOMString type;
+ attribute DOMString srcset;
+ attribute DOMString sizes;
+ attribute DOMString media;
+};
+
+[NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
+interface HTMLImageElement : HTMLElement {
+ attribute DOMString alt;
+ attribute DOMString src;
+ attribute DOMString srcset;
+ attribute DOMString sizes;
+ attribute DOMString? crossOrigin;
+ attribute DOMString useMap;
+ attribute DOMString longDesc;
+ attribute boolean isMap;
+ attribute unsigned long width;
+ attribute unsigned long height;
+ readonly attribute unsigned long naturalWidth;
+ readonly attribute unsigned long naturalHeight;
+ readonly attribute boolean complete;
+ readonly attribute DOMString currentSrc;
+ attribute DOMString referrerPolicy;
+};
+
+interface HTMLIFrameElement : HTMLElement {
+ attribute DOMString src;
+ attribute DOMString srcdoc;
+ attribute DOMString name;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
+ attribute boolean allowFullscreen;
+ attribute boolean allowPaymentRequest;
+ attribute DOMString width;
+ attribute DOMString height;
+ attribute DOMString referrerPolicy;
+ readonly attribute Document? contentDocument;
+ readonly attribute WindowProxy? contentWindow;
+};
+
+interface HTMLEmbedElement : HTMLElement {
+ attribute DOMString src;
+ attribute DOMString type;
+ attribute DOMString width;
+ attribute DOMString height;
+ legacycaller any (any... arguments);
+};
+
+interface HTMLObjectElement : HTMLElement {
+ attribute DOMString data;
+ attribute DOMString type;
+ attribute boolean typeMustMatch;
+ attribute DOMString name;
+ readonly attribute HTMLFormElement? form;
+ attribute DOMString width;
+ attribute DOMString height;
+ readonly attribute Document? contentDocument;
+ readonly attribute WindowProxy? contentWindow;
+
+ readonly attribute boolean willValidate;
+ readonly attribute ValidityState validity;
+ readonly attribute DOMString validationMessage;
+ boolean checkValidity();
+ boolean reportValidity();
+ void setCustomValidity(DOMString error);
+
+ legacycaller any (any... arguments);
+};
+
+interface HTMLParamElement : HTMLElement {
+ attribute DOMString name;
+ attribute DOMString value;
+};
+
+interface HTMLVideoElement : HTMLMediaElement {
+ attribute unsigned long width;
+ attribute unsigned long height;
+ readonly attribute unsigned long videoWidth;
+ readonly attribute unsigned long videoHeight;
+ attribute DOMString poster;
+};
+
+[NamedConstructor=Audio(optional DOMString src)]
+interface HTMLAudioElement : HTMLMediaElement {};
+
+interface HTMLTrackElement : HTMLElement {
+ attribute DOMString kind;
+ attribute DOMString src;
+ attribute DOMString srclang;
+ attribute DOMString label;
+ 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
+ attribute DOMString src;
+ attribute MediaProvider? srcObject;
+ readonly attribute DOMString currentSrc;
+ 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;
+ attribute DOMString preload;
+ readonly attribute TimeRanges buffered;
+ void load();
+ CanPlayTypeResult canPlayType(DOMString type);
+
// ready state
- const unsigned short CONNECTING = 0;
- const unsigned short OPEN = 1;
- const unsigned short CLOSING = 2;
- const unsigned short CLOSED = 3;
+ 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 unsigned long bufferedAmount;
+ readonly attribute boolean seeking;
- // 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);
+ // 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;
+ attribute boolean autoplay;
+ attribute boolean loop;
+ void play();
+ void pause();
- // messaging
- attribute EventHandler onmessage;
- attribute BinaryType binaryType;
- void send(USVString data);
- void send(Blob data);
- void send(ArrayBuffer data);
- void send(ArrayBufferView data);
+ // controls
+ attribute boolean controls;
+ attribute double volume;
+ attribute boolean muted;
+ 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 = "");
};
-[Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)]
-interface CloseEvent : Event {
- readonly attribute boolean wasClean;
+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;
- readonly attribute DOMString reason;
};
-dictionary CloseEventInit : EventInit {
- boolean wasClean;
- unsigned short code;
- DOMString reason;
+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;
};
-[Constructor, Exposed=(Window,Worker)]
-interface MessageChannel {
- readonly attribute MessagePort port1;
- readonly attribute MessagePort port2;
+interface AudioTrack {
+ readonly attribute DOMString id;
+ readonly attribute DOMString kind;
+ readonly attribute DOMString label;
+ readonly attribute DOMString language;
+ attribute boolean enabled;
};
-[Exposed=(Window,Worker)]
-interface MessagePort : EventTarget {
- void postMessage(any message, optional sequence<Transferable> transfer);
- void start();
- void close();
+interface VideoTrackList : EventTarget {
+ readonly attribute unsigned long length;
+ getter VideoTrack (unsigned long index);
+ VideoTrack? getTrackById(DOMString id);
+ readonly attribute long selectedIndex;
- // event handlers
- attribute EventHandler onmessage;
+ attribute EventHandler onchange;
+ attribute EventHandler onaddtrack;
+ attribute EventHandler onremovetrack;
};
-// MessagePort implements Transferable;
-[Constructor, Exposed=(Window,Worker)]
-interface PortCollection {
- void add(MessagePort port);
- void remove(MessagePort port);
- void clear();
- void iterate(PortCollectionCallback callback);
+interface VideoTrack {
+ readonly attribute DOMString id;
+ readonly attribute DOMString kind;
+ readonly attribute DOMString label;
+ readonly attribute DOMString language;
+ attribute boolean selected;
};
-callback PortCollectionCallback = void (MessagePort port);
+interface TextTrackList : EventTarget {
+ readonly attribute unsigned long length;
+ getter TextTrack (unsigned long index);
+ TextTrack? getTrackById(DOMString id);
-[Constructor(DOMString channel), Exposed=(Window,Worker)]
-interface BroadcastChannel : EventTarget {
- readonly attribute DOMString name;
- void postMessage(any message);
- void close();
- attribute EventHandler onmessage;
+ attribute EventHandler onchange;
+ attribute EventHandler onaddtrack;
+ attribute EventHandler onremovetrack;
};
-[Exposed=Worker]
-interface WorkerGlobalScope : EventTarget {
- readonly attribute WorkerGlobalScope self;
- readonly attribute WorkerLocation location;
+enum TextTrackMode { "disabled", "hidden", "showing" };
- void close();
- attribute OnErrorEventHandler onerror;
- attribute EventHandler onlanguagechange;
- attribute EventHandler onoffline;
- attribute EventHandler ononline;
+enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" };
- // also has additional members in a partial interface
+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;
};
-[Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
-/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
- void postMessage(any message, optional sequence<Transferable> transfer);
- attribute EventHandler onmessage;
+interface TextTrackCueList {
+ readonly attribute unsigned long length;
+ getter TextTrackCue (unsigned long index);
+ TextTrackCue? getCueById(DOMString id);
};
-[Global=(Worker,SharedWorker),Exposed=SharedWorker]
-/*sealed*/ interface SharedWorkerGlobalScope : WorkerGlobalScope {
- readonly attribute DOMString name;
- readonly attribute ApplicationCache applicationCache;
- attribute EventHandler onconnect;
+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;
};
-[NoInterfaceObject, Exposed=(Window,Worker)]
-interface AbstractWorker {
- attribute EventHandler onerror;
+[Constructor(double startTime, double endTime, ArrayBuffer data)]
+interface DataCue : TextTrackCue {
+ attribute ArrayBuffer data;
};
-[Constructor(DOMString scriptURL), Exposed=(Window,Worker)]
-interface Worker : EventTarget {
- void terminate();
+interface TimeRanges {
+ readonly attribute unsigned long length;
+ double start(unsigned long index);
+ double end(unsigned long index);
+};
- void postMessage(any message, optional sequence<Transferable> transfer);
- attribute EventHandler onmessage;
+[Constructor(DOMString type, optional TrackEventInit eventInitDict)]
+interface TrackEvent : Event {
+ readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
};
-Worker implements AbstractWorker;
-[Constructor(DOMString scriptURL, optional DOMString name), Exposed=(Window,Worker)]
-interface SharedWorker : EventTarget {
- readonly attribute MessagePort port;
+dictionary TrackEventInit : EventInit {
+ (VideoTrack or AudioTrack or TextTrack)? track = null;
};
-SharedWorker implements AbstractWorker;
-[Exposed=Worker]
-partial interface WorkerGlobalScope { // not obsolete
- void importScripts(DOMString... urls);
- readonly attribute WorkerNavigator navigator;
+interface HTMLMapElement : HTMLElement {
+ attribute DOMString name;
+ [SameObject] readonly attribute HTMLCollection areas;
+ [SameObject] readonly attribute HTMLCollection images;
};
-WorkerGlobalScope implements WindowTimers;
-WorkerGlobalScope implements WindowBase64;
-[Exposed=Worker]
-interface WorkerNavigator {};
-WorkerNavigator implements NavigatorID;
-WorkerNavigator implements NavigatorLanguage;
-WorkerNavigator implements NavigatorOnLine;
+interface HTMLAreaElement : HTMLElement {
+ attribute DOMString alt;
+ attribute DOMString coords;
+ attribute DOMString shape;
+ attribute DOMString target;
+ attribute DOMString download;
+ attribute DOMString rel;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
+ attribute DOMString hreflang;
+ attribute DOMString type;
+ attribute DOMString referrerPolicy;
+};
+HTMLAreaElement implements HTMLHyperlinkElementUtils;
-[Exposed=Worker]
-interface WorkerLocation { };
-WorkerLocation implements URLUtilsReadOnly;
+[NoInterfaceObject]
+interface HTMLHyperlinkElementUtils {
+ stringifier attribute USVString href;
+ readonly attribute USVString origin;
+ attribute USVString protocol;
+ attribute USVString username;
+ attribute USVString password;
+ attribute USVString host;
+ attribute USVString hostname;
+ attribute USVString port;
+ attribute USVString pathname;
+ attribute USVString search;
+ attribute USVString hash;
+};
-interface Storage {
+interface HTMLTableElement : HTMLElement {
+ attribute HTMLTableCaptionElement? caption;
+ HTMLTableCaptionElement createCaption();
+ void deleteCaption();
+ attribute HTMLTableSectionElement? tHead;
+ HTMLTableSectionElement createTHead();
+ void deleteTHead();
+ attribute HTMLTableSectionElement? tFoot;
+ HTMLTableSectionElement createTFoot();
+ void deleteTFoot();
+ [SameObject] readonly attribute HTMLCollection tBodies;
+ HTMLTableSectionElement createTBody();
+ [SameObject] readonly attribute HTMLCollection rows;
+ HTMLTableRowElement insertRow(optional long index = -1);
+ void deleteRow(long index);
+};
+
+interface HTMLTableCaptionElement : HTMLElement {};
+
+interface HTMLTableColElement : HTMLElement {
+ attribute unsigned long span;
+};
+
+interface HTMLTableSectionElement : HTMLElement {
+ [SameObject] readonly attribute HTMLCollection rows;
+ HTMLElement insertRow(optional long index = -1);
+ void deleteRow(long index);
+};
+
+interface HTMLTableRowElement : HTMLElement {
+ readonly attribute long rowIndex;
+ readonly attribute long sectionRowIndex;
+ [SameObject] readonly attribute HTMLCollection cells;
+ HTMLElement insertCell(optional long index = -1);
+ void deleteCell(long index);
+};
+
+interface HTMLTableDataCellElement : HTMLTableCellElement {};
+
+interface HTMLTableHeaderCellElement : HTMLTableCellElement {
+ attribute DOMString scope;
+ attribute DOMString abbr;
+};
+
+interface HTMLTableCellElement : HTMLElement {
+ attribute unsigned long colSpan;
+ attribute unsigned long rowSpan;
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList headers;
+ readonly attribute long cellIndex;
+};
+
+[OverrideBuiltins]
+interface HTMLFormElement : HTMLElement {
+ attribute DOMString acceptCharset;
+ attribute DOMString action;
+ attribute DOMString autocomplete;
+ attribute DOMString enctype;
+ attribute DOMString encoding;
+ attribute DOMString method;
+ attribute DOMString name;
+ attribute boolean noValidate;
+ attribute DOMString target;
+
+ [SameObject] readonly attribute HTMLFormControlsCollection elements;
readonly attribute unsigned long length;
- DOMString? key(unsigned long index);
- getter DOMString? getItem(DOMString key);
- setter creator void setItem(DOMString key, DOMString value);
- deleter void removeItem(DOMString key);
+ getter Element (unsigned long index);
+ getter (RadioNodeList or Element) (DOMString name);
+
+ void submit();
+ void reset();
+ boolean checkValidity();
+ boolean reportValidity();
+};
+
+interface HTMLLabelElement : HTMLElement {
+ readonly attribute HTMLFormElement? form;
+ attribute DOMString htmlFor;
+ readonly attribute HTMLElement? control;
+};
+
+interface HTMLInputElement : HTMLElement {
+ attribute DOMString accept;
+ attribute DOMString alt;
+ attribute DOMString autocomplete;
+ attribute boolean autofocus;
+ attribute boolean defaultChecked;
+ attribute boolean checked;
+ attribute DOMString dirName;
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ readonly attribute FileList? files;
+ attribute DOMString formAction;
+ attribute DOMString formEnctype;
+ attribute DOMString formMethod;
+ attribute boolean formNoValidate;
+ attribute DOMString formTarget;
+ attribute unsigned long height;
+ attribute boolean indeterminate;
+ readonly attribute HTMLElement? list;
+ attribute DOMString max;
+ attribute long maxLength;
+ attribute DOMString min;
+ attribute long minLength;
+ attribute boolean multiple;
+ attribute DOMString name;
+ attribute DOMString pattern;
+ attribute DOMString placeholder;
+ attribute boolean readOnly;
+ attribute boolean _required;
+ attribute unsigned long size;
+ attribute DOMString src;
+ attribute DOMString step;
+ attribute DOMString type;
+ attribute DOMString defaultValue;
+ [TreatNullAs=EmptyString] attribute DOMString value;
+ attribute object? valueAsDate;
+ attribute unrestricted double valueAsNumber;
+ 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);
+};
+
+interface HTMLButtonElement : HTMLElement {
+ attribute boolean autofocus;
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ attribute DOMString formAction;
+ attribute DOMString formEnctype;
+ attribute DOMString formMethod;
+ attribute boolean formNoValidate;
+ attribute DOMString formTarget;
+ attribute DOMString name;
+ attribute DOMString type;
+ 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;
+};
+
+interface HTMLSelectElement : HTMLElement {
+ attribute DOMString autocomplete;
+ attribute boolean autofocus;
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ attribute boolean multiple;
+ attribute DOMString name;
+ attribute boolean _required;
+ attribute unsigned long size;
+
+ readonly attribute DOMString type;
+
+ [SameObject] readonly attribute HTMLOptionsCollection options;
+ attribute unsigned long length;
+ getter Element? item(unsigned long index);
+ HTMLOptionElement? namedItem(DOMString name);
+ void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
+ void remove(); // ChildNode overload
+ void remove(long index);
+ 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;
+};
+
+interface HTMLDataListElement : HTMLElement {
+ [SameObject] readonly attribute HTMLCollection options;
+};
+
+interface HTMLOptGroupElement : HTMLElement {
+ attribute boolean disabled;
+ attribute DOMString label;
+};
+
+[NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
+interface HTMLOptionElement : HTMLElement {
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ attribute DOMString label;
+ attribute boolean defaultSelected;
+ attribute boolean selected;
+ attribute DOMString value;
+
+ attribute DOMString text;
+ readonly attribute long index;
+};
+
+interface HTMLTextAreaElement : HTMLElement {
+ attribute DOMString autocomplete;
+ attribute boolean autofocus;
+ attribute unsigned long cols;
+ attribute DOMString dirName;
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ attribute long maxLength;
+ attribute long minLength;
+ attribute DOMString name;
+ attribute DOMString placeholder;
+ attribute boolean readOnly;
+ attribute boolean _required;
+ attribute unsigned long rows;
+ attribute DOMString wrap;
+
+ readonly attribute DOMString type;
+ attribute DOMString defaultValue;
+ [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);
+};
+
+interface HTMLOutputElement : HTMLElement {
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
+ readonly attribute HTMLFormElement? form;
+ attribute DOMString name;
+
+ readonly attribute DOMString type;
+ attribute DOMString defaultValue;
+ 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;
+};
+
+interface HTMLProgressElement : HTMLElement {
+ attribute double value;
+ attribute double max;
+ readonly attribute double position;
+ [SameObject] readonly attribute NodeList labels;
+};
+
+interface HTMLMeterElement : HTMLElement {
+ attribute double value;
+ attribute double min;
+ attribute double max;
+ attribute double low;
+ attribute double high;
+ attribute double optimum;
+ [SameObject] readonly attribute NodeList labels;
+};
+
+interface HTMLFieldSetElement : HTMLElement {
+ attribute boolean disabled;
+ readonly attribute HTMLFormElement? form;
+ 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);
+};
+
+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;
+};
+
+interface HTMLDetailsElement : HTMLElement {
+ attribute boolean open;
+};
+
+interface HTMLDialogElement : HTMLElement {
+ attribute boolean open;
+ attribute DOMString returnValue;
+ void show(optional (MouseEvent or Element) anchor);
+ void showModal(optional (MouseEvent or Element) anchor);
+ void close(optional DOMString returnValue);
+};
+
+interface HTMLScriptElement : HTMLElement {
+ attribute DOMString src;
+ attribute DOMString type;
+ attribute DOMString charset;
+ attribute boolean async;
+ attribute boolean defer;
+ attribute DOMString? crossOrigin;
+ attribute DOMString text;
+ attribute DOMString nonce;
+};
+
+[Exposed=Window,
+ HTMLConstructor]
+interface HTMLTemplateElement : HTMLElement {
+ readonly attribute DocumentFragment content;
+};
+
+typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
+
+interface HTMLCanvasElement : HTMLElement {
+ attribute unsigned long width;
+ attribute unsigned long height;
+
+ RenderingContext? getContext(DOMString contextId, any... arguments);
+ boolean probablySupportsContext(DOMString contextId, any... arguments);
+
+ DOMString toDataURL(optional DOMString type, any... arguments);
+ void toBlob(BlobCallback _callback, optional DOMString type, any... arguments);
+};
+
+callback BlobCallback = void (Blob? blob);
+
+[NoInterfaceObject]
+interface ElementContentEditable {
+ 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 */
+ [SameObject] readonly attribute DOMString[] 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]
+/*sealed*/ 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;
+[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 DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
+getter WindowProxy (unsigned long index);
+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;
+
+// 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);
+};
+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 DOMString? url = null);
+ void replaceState(any data, DOMString title, optional DOMString? 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 USVString[] ancestorOrigins;
+};
+
+[Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
+interface PopStateEvent : Event {
+ readonly attribute any state;
+};
+
+dictionary PopStateEventInit : EventInit {
+ any state = null;
+};
+
+[Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
+interface HashChangeEvent : Event {
+ readonly attribute USVString oldURL;
+ readonly attribute USVString newURL;
+};
+
+dictionary HashChangeEventInit : EventInit {
+ USVString oldURL = "";
+ USVString newURL = "";
+};
+
+[Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
+interface PageTransitionEvent : Event {
+ readonly attribute boolean persisted;
+};
+
+dictionary PageTransitionEventInit : EventInit {
+ boolean persisted = false;
+};
+
+interface BeforeUnloadEvent : Event {
+ attribute DOMString returnValue;
+};
+
+[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 DOMString filename;
+ readonly attribute unsigned long lineno;
+ readonly attribute unsigned long colno;
+ readonly attribute any error;
+};
+
+dictionary ErrorEventInit : EventInit {
+ DOMString message = "";
+ DOMString 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<any> promise;
+ readonly attribute any reason;
+};
+
+dictionary PromiseRejectionEventInit : EventInit {
+ required Promise<any> 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 column, optional any error);
+typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
+
+[TreatNonObjectAsNull]
+callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
+typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
+
[NoInterfaceObject]
-interface WindowSessionStorage {
- readonly attribute Storage sessionStorage;
+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 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 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;
};
-Window implements WindowSessionStorage;
[NoInterfaceObject]
-interface WindowLocalStorage {
- readonly attribute Storage localStorage;
+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 onrejectionhandled;
+ attribute EventHandler onpopstate;
+ attribute EventHandler onstorage;
+ attribute EventHandler onunhandledrejection;
+ attribute EventHandler onunload;
};
-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 DOMString url;
- readonly attribute Storage? storageArea;
+[NoInterfaceObject]
+interface DocumentAndElementEventHandlers {
+ attribute EventHandler oncopy;
+ attribute EventHandler oncut;
+ attribute EventHandler onpaste;
};
-dictionary StorageEventInit : EventInit {
- DOMString? key;
- DOMString? oldValue;
- DOMString? newValue;
- DOMString url;
- Storage? storageArea;
+typedef (DOMString or Function) TimerHandler;
+
+[NoInterfaceObject, Exposed=(Window, Worker)]
+interface WindowOrWorkerGlobalScope {
+ [Replaceable] readonly attribute USVString origin;
+
+ // Base64 utility methods (WindowBase64)
+ DOMString btoa(DOMString btoa);
+ DOMString atob(DOMString atob);
+
+ // Timers (WindowTimers)
+ long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments);
+ void clearTimeout(optional long handle = 0);
+ long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments);
+ void clearInterval(optional long handle = 0);
+
+ // ImageBitmap, Images (ImageBitmapFactories)
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
};
+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;
+
+[NoInterfaceObject, Exposed=(Window, Worker)]
+interface NavigatorID {
+ [Exposed=Window] readonly attribute DOMString appCodeName; // constant "Mozilla"
+ readonly attribute DOMString appName; // constant "Netscape"
+ readonly attribute DOMString appVersion;
+ readonly attribute DOMString platform;
+ [Exposed=Window]readonly attribute DOMString product; // constant "Gecko"
+ readonly attribute DOMString userAgent;
+};
+
+[NoInterfaceObject, Exposed=(Window, Worker)]
+interface NavigatorLanguage {
+ readonly attribute DOMString? language;
+ readonly attribute DOMString[] languages;
+};
+
+[NoInterfaceObject]
+interface NavigatorContentUtils {
+ // content handler registration
+ void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
+ void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
+ DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
+ DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
+ void unregisterProtocolHandler(DOMString scheme, DOMString url);
+ void unregisterContentHandler(DOMString mimeType, DOMString url);
+};
+
+[NoInterfaceObject]
+interface NavigatorCookies {
+ readonly attribute boolean cookieEnabled;
+};
+
+[Exposed=(Window, Worker), Serializable, Transferable]
+interface ImageBitmap {
+ readonly attribute unsigned long width;
+ readonly attribute unsigned long height;
+};
+
+typedef (HTMLImageElement or
+ HTMLVideoElement or
+ HTMLCanvasElement or
+ Blob or
+ ImageData or
+ CanvasRenderingContext2D or
+ ImageBitmap) ImageBitmapSource;
+
+// Note: intentionally not [HTMLConstructor]
interface HTMLAppletElement : HTMLElement {
attribute DOMString align;
attribute DOMString alt;
attribute DOMString archive;
attribute DOMString code;
- attribute DOMString codeBase;
+ attribute USVString codeBase;
attribute DOMString height;
attribute unsigned long hspace;
attribute DOMString name;
- attribute DOMString _object; // the underscore is not part of the identifier
+ attribute USVString _object; // the underscore is not part of the identifier
attribute unsigned long vspace;
attribute DOMString width;
};
+[HTMLConstructor]
interface HTMLMarqueeElement : HTMLElement {
- attribute DOMString behavior;
- attribute DOMString bgColor;
- attribute DOMString direction;
- attribute DOMString height;
- attribute unsigned long hspace;
- attribute long loop;
- attribute unsigned long scrollAmount;
- attribute unsigned long scrollDelay;
- attribute boolean trueSpeed;
- attribute unsigned long vspace;
- attribute DOMString width;
+ [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();
};
+[HTMLConstructor]
interface HTMLFrameSetElement : HTMLElement {
- attribute DOMString cols;
- attribute DOMString rows;
+ [CEReactions] attribute DOMString cols;
+ [CEReactions] attribute DOMString rows;
};
HTMLFrameSetElement implements WindowEventHandlers;
+[HTMLConstructor]
interface HTMLFrameElement : HTMLElement {
- attribute DOMString name;
- attribute DOMString scrolling;
- attribute DOMString src;
- attribute DOMString frameBorder;
- attribute DOMString longDesc;
- attribute boolean noResize;
+ [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;
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
};
partial interface HTMLAnchorElement {
- attribute DOMString coords;
- attribute DOMString charset;
- attribute DOMString name;
- attribute DOMString rev;
- attribute DOMString shape;
+ [CEReactions] attribute DOMString coords;
+ [CEReactions] attribute DOMString charset;
+ [CEReactions] attribute DOMString name;
+ [CEReactions] attribute DOMString shape;
};
partial interface HTMLAreaElement {
- attribute boolean noHref;
+ [CEReactions] attribute boolean noHref;
};
partial interface HTMLBodyElement {
- [TreatNullAs=EmptyString] attribute DOMString text;
- [TreatNullAs=EmptyString] attribute DOMString link;
- [TreatNullAs=EmptyString] attribute DOMString vLink;
- [TreatNullAs=EmptyString] attribute DOMString aLink;
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
- attribute DOMString background;
+ [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;
+ attribute DOMString background;
};
partial interface HTMLBRElement {
- attribute DOMString clear;
+ [CEReactions] attribute DOMString clear;
};
partial interface HTMLTableCaptionElement {
- attribute DOMString align;
+ [CEReactions] attribute DOMString align;
};
partial interface HTMLTableColElement {
- attribute DOMString align;
- attribute DOMString ch;
- attribute DOMString chOff;
- attribute DOMString vAlign;
- attribute DOMString width;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString ch;
+ [CEReactions] attribute DOMString chOff;
+ [CEReactions] attribute DOMString vAlign;
+ [CEReactions] attribute DOMString width;
};
+[HTMLConstructor]
interface HTMLDirectoryElement : HTMLElement {
- attribute boolean compact;
+ [CEReactions] attribute boolean compact;
};
partial interface HTMLDivElement {
- attribute DOMString align;
+ [CEReactions] attribute DOMString align;
};
partial interface HTMLDListElement {
- attribute boolean compact;
+ [CEReactions] attribute boolean compact;
};
partial interface HTMLEmbedElement {
- attribute DOMString align;
- attribute DOMString name;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString name;
};
+[HTMLConstructor]
interface HTMLFontElement : HTMLElement {
- [TreatNullAs=EmptyString] attribute DOMString color;
- attribute DOMString face;
- attribute DOMString size;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString color;
+ [CEReactions] attribute DOMString face;
+ [CEReactions] attribute DOMString size;
};
partial interface HTMLHeadingElement {
- attribute DOMString align;
+ [CEReactions] attribute DOMString align;
};
partial interface HTMLHRElement {
- attribute DOMString align;
- attribute DOMString color;
- attribute boolean noShade;
- attribute DOMString size;
- attribute DOMString width;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString color;
+ [CEReactions] attribute boolean noShade;
+ [CEReactions] attribute DOMString size;
+ [CEReactions] attribute DOMString width;
};
partial interface HTMLHtmlElement {
- attribute DOMString version;
+ [CEReactions] attribute DOMString version;
};
partial interface HTMLIFrameElement {
- attribute DOMString align;
- attribute DOMString scrolling;
- attribute DOMString frameBorder;
- attribute DOMString longDesc;
-
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
+ [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 {
- attribute DOMString name;
- attribute DOMString lowsrc;
- attribute DOMString align;
- attribute unsigned long hspace;
- attribute unsigned long vspace;
- attribute DOMString longDesc;
+ [CEReactions] attribute DOMString name;
+ [CEReactions] attribute USVString lowsrc;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute unsigned long hspace;
+ [CEReactions] attribute unsigned long vspace;
- [TreatNullAs=EmptyString] attribute DOMString border;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
};
partial interface HTMLInputElement {
- attribute DOMString align;
- attribute DOMString useMap;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString useMap;
};
partial interface HTMLLegendElement {
- attribute DOMString align;
+ [CEReactions] attribute DOMString align;
};
partial interface HTMLLIElement {
- attribute DOMString type;
+ [CEReactions] attribute DOMString type;
};
partial interface HTMLLinkElement {
- attribute DOMString charset;
- attribute DOMString rev;
- attribute DOMString target;
+ [CEReactions] attribute DOMString charset;
+ [CEReactions] attribute DOMString target;
};
partial interface HTMLMenuElement {
- attribute boolean compact;
+ [CEReactions] attribute boolean compact;
};
partial interface HTMLMetaElement {
- attribute DOMString scheme;
+ [CEReactions] attribute DOMString scheme;
};
partial interface HTMLObjectElement {
- attribute DOMString align;
- attribute DOMString archive;
- attribute DOMString code;
- attribute boolean declare;
- attribute unsigned long hspace;
- attribute DOMString standby;
- attribute unsigned long vspace;
- attribute DOMString codeBase;
- attribute DOMString codeType;
+ [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;
- [TreatNullAs=EmptyString] attribute DOMString border;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
};
partial interface HTMLOListElement {
- attribute boolean compact;
+ [CEReactions] attribute boolean compact;
};
partial interface HTMLParagraphElement {
- attribute DOMString align;
+ [CEReactions] attribute DOMString align;
};
partial interface HTMLParamElement {
- attribute DOMString type;
- attribute DOMString valueType;
+ [CEReactions] attribute DOMString type;
+ [CEReactions] attribute DOMString valueType;
};
partial interface HTMLPreElement {
- attribute long width;
+ [CEReactions] attribute long width;
};
partial interface HTMLScriptElement {
- attribute DOMString event;
- attribute DOMString htmlFor;
+ [CEReactions] attribute DOMString event;
+ [CEReactions] attribute DOMString htmlFor;
};
partial interface HTMLTableElement {
- attribute DOMString align;
- attribute DOMString border;
- attribute DOMString frame;
- attribute DOMString rules;
- attribute DOMString summary;
- attribute DOMString width;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString border;
+ [CEReactions] attribute DOMString frame;
+ [CEReactions] attribute DOMString rules;
+ [CEReactions] attribute DOMString summary;
+ [CEReactions] attribute DOMString width;
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
- [TreatNullAs=EmptyString] attribute DOMString cellPadding;
- [TreatNullAs=EmptyString] attribute DOMString cellSpacing;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
};
partial interface HTMLTableSectionElement {
- attribute DOMString align;
- attribute DOMString ch;
- attribute DOMString chOff;
- attribute DOMString vAlign;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString ch;
+ [CEReactions] attribute DOMString chOff;
+ [CEReactions] attribute DOMString vAlign;
};
partial interface HTMLTableCellElement {
- attribute DOMString align;
- attribute DOMString axis;
- attribute DOMString height;
- attribute DOMString width;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString axis;
+ [CEReactions] attribute DOMString height;
+ [CEReactions] attribute DOMString width;
- attribute DOMString ch;
- attribute DOMString chOff;
- attribute boolean noWrap;
- attribute DOMString vAlign;
+ [CEReactions] attribute DOMString ch;
+ [CEReactions] attribute DOMString chOff;
+ [CEReactions] attribute boolean noWrap;
+ [CEReactions] attribute DOMString vAlign;
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
};
-partial interface HTMLTableDataCellElement {
- attribute DOMString abbr;
-};
-
partial interface HTMLTableRowElement {
- attribute DOMString align;
- attribute DOMString ch;
- attribute DOMString chOff;
- attribute DOMString vAlign;
+ [CEReactions] attribute DOMString align;
+ [CEReactions] attribute DOMString ch;
+ [CEReactions] attribute DOMString chOff;
+ [CEReactions] attribute DOMString vAlign;
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
};
partial interface HTMLUListElement {
- attribute boolean compact;
- attribute DOMString type;
+ [CEReactions] attribute boolean compact;
+ [CEReactions] attribute DOMString type;
};
partial interface Document {
- [TreatNullAs=EmptyString] attribute DOMString fgColor;
- [TreatNullAs=EmptyString] attribute DOMString linkColor;
- [TreatNullAs=EmptyString] attribute DOMString vlinkColor;
- [TreatNullAs=EmptyString] attribute DOMString alinkColor;
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
+ [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;
- readonly attribute HTMLCollection anchors;
- readonly attribute HTMLCollection applets;
+ [SameObject] readonly attribute HTMLCollection anchors;
+ [SameObject] readonly attribute HTMLCollection applets;
void clear();
void captureEvents();
void releaseEvents();
- readonly attribute HTMLAllCollection all;
+ [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();
+};
+
+Navigator implements NavigatorPlugins;
+
+[NoInterfaceObject]
+ interface NavigatorPlugins {
+ [SameObject] readonly attribute PluginArray plugins;
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
+ boolean javaEnabled();
+};
+
+interface PluginArray {
+ void refresh(optional boolean reload = false);
+ readonly attribute unsigned long length;
+ getter Plugin? item(unsigned long index);
+ getter Plugin? namedItem(DOMString name);
+};
+
+interface MimeTypeArray {
+ readonly attribute unsigned long length;
+ getter MimeType? item(unsigned long index);
+ getter MimeType? namedItem(DOMString name);
+};
+
+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;
+};
+