• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// GENERATED CONTENT - DO NOT EDIT
2// Content was automatically extracted by Reffy into webref
3// (https://github.com/w3c/webref)
4// Source: HTML Standard (https://html.spec.whatwg.org/multipage/)
5
6[Exposed=Window,
7 LegacyUnenumerableNamedProperties]
8interface HTMLAllCollection {
9  readonly attribute unsigned long length;
10  getter Element (unsigned long index);
11  getter (HTMLCollection or Element)? namedItem(DOMString name);
12  (HTMLCollection or Element)? item(optional DOMString nameOrIndex);
13
14  // Note: HTMLAllCollection objects have a custom [[Call]] internal method and an [[IsHTMLDDA]] internal slot.
15};
16
17[Exposed=Window]
18interface HTMLFormControlsCollection : HTMLCollection {
19  // inherits length and item()
20  getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
21};
22
23[Exposed=Window]
24interface RadioNodeList : NodeList {
25  attribute DOMString value;
26};
27
28[Exposed=Window]
29interface HTMLOptionsCollection : HTMLCollection {
30  // inherits item(), namedItem()
31  [CEReactions] attribute unsigned long length; // shadows inherited length
32  [CEReactions] setter undefined (unsigned long index, HTMLOptionElement? option);
33  [CEReactions] undefined add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
34  [CEReactions] undefined remove(long index);
35  attribute long selectedIndex;
36};
37
38[Exposed=(Window,Worker)]
39interface DOMStringList {
40  readonly attribute unsigned long length;
41  getter DOMString? item(unsigned long index);
42  boolean contains(DOMString string);
43};
44
45enum DocumentReadyState { "loading", "interactive", "complete" };
46typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
47
48[LegacyOverrideBuiltIns]
49partial interface Document {
50  // resource metadata management
51  [PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;
52  attribute USVString domain;
53  readonly attribute USVString referrer;
54  attribute USVString cookie;
55  readonly attribute DOMString lastModified;
56  readonly attribute DocumentReadyState readyState;
57
58  // DOM tree accessors
59  getter object (DOMString name);
60  [CEReactions] attribute DOMString title;
61  [CEReactions] attribute DOMString dir;
62  [CEReactions] attribute HTMLElement? body;
63  readonly attribute HTMLHeadElement? head;
64  [SameObject] readonly attribute HTMLCollection images;
65  [SameObject] readonly attribute HTMLCollection embeds;
66  [SameObject] readonly attribute HTMLCollection plugins;
67  [SameObject] readonly attribute HTMLCollection links;
68  [SameObject] readonly attribute HTMLCollection forms;
69  [SameObject] readonly attribute HTMLCollection scripts;
70  NodeList getElementsByName(DOMString elementName);
71  readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
72
73  // dynamic markup insertion
74  [CEReactions] Document open(optional DOMString unused1, optional DOMString unused2); // both arguments are ignored
75  WindowProxy? open(USVString url, DOMString name, DOMString features);
76  [CEReactions] undefined close();
77  [CEReactions] undefined write(DOMString... text);
78  [CEReactions] undefined writeln(DOMString... text);
79
80  // user interaction
81  readonly attribute WindowProxy? defaultView;
82  boolean hasFocus();
83  [CEReactions] attribute DOMString designMode;
84  [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
85  boolean queryCommandEnabled(DOMString commandId);
86  boolean queryCommandIndeterm(DOMString commandId);
87  boolean queryCommandState(DOMString commandId);
88  boolean queryCommandSupported(DOMString commandId);
89  DOMString queryCommandValue(DOMString commandId);
90
91  // special event handler IDL attributes that only apply to Document objects
92  [LegacyLenientThis] attribute EventHandler onreadystatechange;
93
94  // also has obsolete members
95};
96Document includes GlobalEventHandlers;
97Document includes DocumentAndElementEventHandlers;
98
99partial interface mixin DocumentOrShadowRoot {
100  readonly attribute Element? activeElement;
101};
102
103[Exposed=Window]
104interface HTMLElement : Element {
105  [HTMLConstructor] constructor();
106
107  // metadata attributes
108  [CEReactions] attribute DOMString title;
109  [CEReactions] attribute DOMString lang;
110  [CEReactions] attribute boolean translate;
111  [CEReactions] attribute DOMString dir;
112
113  // user interaction
114  [CEReactions] attribute boolean hidden;
115  undefined click();
116  [CEReactions] attribute DOMString accessKey;
117  readonly attribute DOMString accessKeyLabel;
118  [CEReactions] attribute boolean draggable;
119  [CEReactions] attribute boolean spellcheck;
120  [CEReactions] attribute DOMString autocapitalize;
121
122  [CEReactions] attribute [LegacyNullToEmptyString] DOMString innerText;
123  [CEReactions] attribute [LegacyNullToEmptyString] DOMString outerText;
124
125  ElementInternals attachInternals();
126};
127
128HTMLElement includes GlobalEventHandlers;
129HTMLElement includes DocumentAndElementEventHandlers;
130HTMLElement includes ElementContentEditable;
131HTMLElement includes HTMLOrSVGElement;
132
133[Exposed=Window]
134interface HTMLUnknownElement : HTMLElement {
135  // Note: intentionally no [HTMLConstructor]
136};
137
138interface mixin HTMLOrSVGElement {
139  [SameObject] readonly attribute DOMStringMap dataset;
140  attribute DOMString nonce; // intentionally no [CEReactions]
141
142  [CEReactions] attribute boolean autofocus;
143  [CEReactions] attribute long tabIndex;
144  undefined focus(optional FocusOptions options = {});
145  undefined blur();
146};
147
148[Exposed=Window,
149 LegacyOverrideBuiltIns]
150interface DOMStringMap {
151  getter DOMString (DOMString name);
152  [CEReactions] setter undefined (DOMString name, DOMString value);
153  [CEReactions] deleter undefined (DOMString name);
154};
155
156[Exposed=Window]
157interface HTMLHtmlElement : HTMLElement {
158  [HTMLConstructor] constructor();
159
160  // also has obsolete members
161};
162
163[Exposed=Window]
164interface HTMLHeadElement : HTMLElement {
165  [HTMLConstructor] constructor();
166};
167
168[Exposed=Window]
169interface HTMLTitleElement : HTMLElement {
170  [HTMLConstructor] constructor();
171
172  [CEReactions] attribute DOMString text;
173};
174
175[Exposed=Window]
176interface HTMLBaseElement : HTMLElement {
177  [HTMLConstructor] constructor();
178
179  [CEReactions] attribute USVString href;
180  [CEReactions] attribute DOMString target;
181};
182
183[Exposed=Window]
184interface HTMLLinkElement : HTMLElement {
185  [HTMLConstructor] constructor();
186
187  [CEReactions] attribute USVString href;
188  [CEReactions] attribute DOMString? crossOrigin;
189  [CEReactions] attribute DOMString rel;
190  [CEReactions] attribute DOMString as; // (default "")
191  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
192  [CEReactions] attribute DOMString media;
193  [CEReactions] attribute DOMString integrity;
194  [CEReactions] attribute DOMString hreflang;
195  [CEReactions] attribute DOMString type;
196  [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
197  [CEReactions] attribute USVString imageSrcset;
198  [CEReactions] attribute DOMString imageSizes;
199  [CEReactions] attribute DOMString referrerPolicy;
200  [CEReactions] attribute boolean disabled;
201
202  // also has obsolete members
203};
204HTMLLinkElement includes LinkStyle;
205
206[Exposed=Window]
207interface HTMLMetaElement : HTMLElement {
208  [HTMLConstructor] constructor();
209
210  [CEReactions] attribute DOMString name;
211  [CEReactions] attribute DOMString httpEquiv;
212  [CEReactions] attribute DOMString content;
213
214  // also has obsolete members
215};
216
217[Exposed=Window]
218interface HTMLStyleElement : HTMLElement {
219  [HTMLConstructor] constructor();
220
221  [CEReactions] attribute DOMString media;
222
223  // also has obsolete members
224};
225HTMLStyleElement includes LinkStyle;
226
227[Exposed=Window]
228interface HTMLBodyElement : HTMLElement {
229  [HTMLConstructor] constructor();
230
231  // also has obsolete members
232};
233
234HTMLBodyElement includes WindowEventHandlers;
235
236[Exposed=Window]
237interface HTMLHeadingElement : HTMLElement {
238  [HTMLConstructor] constructor();
239
240  // also has obsolete members
241};
242
243[Exposed=Window]
244interface HTMLParagraphElement : HTMLElement {
245  [HTMLConstructor] constructor();
246
247  // also has obsolete members
248};
249
250[Exposed=Window]
251interface HTMLHRElement : HTMLElement {
252  [HTMLConstructor] constructor();
253
254  // also has obsolete members
255};
256
257[Exposed=Window]
258interface HTMLPreElement : HTMLElement {
259  [HTMLConstructor] constructor();
260
261  // also has obsolete members
262};
263
264[Exposed=Window]
265interface HTMLQuoteElement : HTMLElement {
266  [HTMLConstructor] constructor();
267
268  [CEReactions] attribute USVString cite;
269};
270
271[Exposed=Window]
272interface HTMLOListElement : HTMLElement {
273  [HTMLConstructor] constructor();
274
275  [CEReactions] attribute boolean reversed;
276  [CEReactions] attribute long start;
277  [CEReactions] attribute DOMString type;
278
279  // also has obsolete members
280};
281
282[Exposed=Window]
283interface HTMLUListElement : HTMLElement {
284  [HTMLConstructor] constructor();
285
286  // also has obsolete members
287};
288
289[Exposed=Window]
290interface HTMLMenuElement : HTMLElement {
291  [HTMLConstructor] constructor();
292
293  // also has obsolete members
294};
295
296[Exposed=Window]
297interface HTMLLIElement : HTMLElement {
298  [HTMLConstructor] constructor();
299
300  [CEReactions] attribute long value;
301
302  // also has obsolete members
303};
304
305[Exposed=Window]
306interface HTMLDListElement : HTMLElement {
307  [HTMLConstructor] constructor();
308
309  // also has obsolete members
310};
311
312[Exposed=Window]
313interface HTMLDivElement : HTMLElement {
314  [HTMLConstructor] constructor();
315
316  // also has obsolete members
317};
318
319[Exposed=Window]
320interface HTMLAnchorElement : HTMLElement {
321  [HTMLConstructor] constructor();
322
323  [CEReactions] attribute DOMString target;
324  [CEReactions] attribute DOMString download;
325  [CEReactions] attribute USVString ping;
326  [CEReactions] attribute DOMString rel;
327  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
328  [CEReactions] attribute DOMString hreflang;
329  [CEReactions] attribute DOMString type;
330
331  [CEReactions] attribute DOMString text;
332
333  [CEReactions] attribute DOMString referrerPolicy;
334
335  // also has obsolete members
336};
337HTMLAnchorElement includes HTMLHyperlinkElementUtils;
338
339[Exposed=Window]
340interface HTMLDataElement : HTMLElement {
341  [HTMLConstructor] constructor();
342
343  [CEReactions] attribute DOMString value;
344};
345
346[Exposed=Window]
347interface HTMLTimeElement : HTMLElement {
348  [HTMLConstructor] constructor();
349
350  [CEReactions] attribute DOMString dateTime;
351};
352
353[Exposed=Window]
354interface HTMLSpanElement : HTMLElement {
355  [HTMLConstructor] constructor();
356};
357
358[Exposed=Window]
359interface HTMLBRElement : HTMLElement {
360  [HTMLConstructor] constructor();
361
362  // also has obsolete members
363};
364
365interface mixin HTMLHyperlinkElementUtils {
366  [CEReactions] stringifier attribute USVString href;
367  readonly attribute USVString origin;
368  [CEReactions] attribute USVString protocol;
369  [CEReactions] attribute USVString username;
370  [CEReactions] attribute USVString password;
371  [CEReactions] attribute USVString host;
372  [CEReactions] attribute USVString hostname;
373  [CEReactions] attribute USVString port;
374  [CEReactions] attribute USVString pathname;
375  [CEReactions] attribute USVString search;
376  [CEReactions] attribute USVString hash;
377};
378
379[Exposed=Window]
380interface HTMLModElement : HTMLElement {
381  [HTMLConstructor] constructor();
382
383  [CEReactions] attribute USVString cite;
384  [CEReactions] attribute DOMString dateTime;
385};
386
387[Exposed=Window]
388interface HTMLPictureElement : HTMLElement {
389  [HTMLConstructor] constructor();
390};
391
392[Exposed=Window]
393interface HTMLSourceElement : HTMLElement {
394  [HTMLConstructor] constructor();
395
396  [CEReactions] attribute USVString src;
397  [CEReactions] attribute DOMString type;
398  [CEReactions] attribute USVString srcset;
399  [CEReactions] attribute DOMString sizes;
400  [CEReactions] attribute DOMString media;
401  [CEReactions] attribute unsigned long width;
402  [CEReactions] attribute unsigned long height;
403};
404
405[Exposed=Window,
406 LegacyFactoryFunction=Image(optional unsigned long width, optional unsigned long height)]
407interface HTMLImageElement : HTMLElement {
408  [HTMLConstructor] constructor();
409
410  [CEReactions] attribute DOMString alt;
411  [CEReactions] attribute USVString src;
412  [CEReactions] attribute USVString srcset;
413  [CEReactions] attribute DOMString sizes;
414  [CEReactions] attribute DOMString? crossOrigin;
415  [CEReactions] attribute DOMString useMap;
416  [CEReactions] attribute boolean isMap;
417  [CEReactions] attribute unsigned long width;
418  [CEReactions] attribute unsigned long height;
419  readonly attribute unsigned long naturalWidth;
420  readonly attribute unsigned long naturalHeight;
421  readonly attribute boolean complete;
422  readonly attribute USVString currentSrc;
423  [CEReactions] attribute DOMString referrerPolicy;
424  [CEReactions] attribute DOMString decoding;
425  [CEReactions] attribute DOMString loading;
426
427  Promise<undefined> decode();
428
429  // also has obsolete members
430};
431
432[Exposed=Window]
433interface HTMLIFrameElement : HTMLElement {
434  [HTMLConstructor] constructor();
435
436  [CEReactions] attribute USVString src;
437  [CEReactions] attribute DOMString srcdoc;
438  [CEReactions] attribute DOMString name;
439  [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
440  [CEReactions] attribute DOMString allow;
441  [CEReactions] attribute boolean allowFullscreen;
442  [CEReactions] attribute DOMString width;
443  [CEReactions] attribute DOMString height;
444  [CEReactions] attribute DOMString referrerPolicy;
445  [CEReactions] attribute DOMString loading;
446  readonly attribute Document? contentDocument;
447  readonly attribute WindowProxy? contentWindow;
448  Document? getSVGDocument();
449
450  // also has obsolete members
451};
452
453[Exposed=Window]
454interface HTMLEmbedElement : HTMLElement {
455  [HTMLConstructor] constructor();
456
457  [CEReactions] attribute USVString src;
458  [CEReactions] attribute DOMString type;
459  [CEReactions] attribute DOMString width;
460  [CEReactions] attribute DOMString height;
461  Document? getSVGDocument();
462
463  // also has obsolete members
464};
465
466[Exposed=Window]
467interface HTMLObjectElement : HTMLElement {
468  [HTMLConstructor] constructor();
469
470  [CEReactions] attribute USVString data;
471  [CEReactions] attribute DOMString type;
472  [CEReactions] attribute DOMString name;
473  readonly attribute HTMLFormElement? form;
474  [CEReactions] attribute DOMString width;
475  [CEReactions] attribute DOMString height;
476  readonly attribute Document? contentDocument;
477  readonly attribute WindowProxy? contentWindow;
478  Document? getSVGDocument();
479
480  readonly attribute boolean willValidate;
481  readonly attribute ValidityState validity;
482  readonly attribute DOMString validationMessage;
483  boolean checkValidity();
484  boolean reportValidity();
485  undefined setCustomValidity(DOMString error);
486
487  // also has obsolete members
488};
489
490[Exposed=Window]
491interface HTMLParamElement : HTMLElement {
492  [HTMLConstructor] constructor();
493
494  [CEReactions] attribute DOMString name;
495  [CEReactions] attribute DOMString value;
496
497  // also has obsolete members
498};
499
500[Exposed=Window]
501interface HTMLVideoElement : HTMLMediaElement {
502  [HTMLConstructor] constructor();
503
504  [CEReactions] attribute unsigned long width;
505  [CEReactions] attribute unsigned long height;
506  readonly attribute unsigned long videoWidth;
507  readonly attribute unsigned long videoHeight;
508  [CEReactions] attribute USVString poster;
509  [CEReactions] attribute boolean playsInline;
510};
511
512[Exposed=Window,
513 LegacyFactoryFunction=Audio(optional DOMString src)]
514interface HTMLAudioElement : HTMLMediaElement {
515  [HTMLConstructor] constructor();
516};
517
518[Exposed=Window]
519interface HTMLTrackElement : HTMLElement {
520  [HTMLConstructor] constructor();
521
522  [CEReactions] attribute DOMString kind;
523  [CEReactions] attribute USVString src;
524  [CEReactions] attribute DOMString srclang;
525  [CEReactions] attribute DOMString label;
526  [CEReactions] attribute boolean default;
527
528  const unsigned short NONE = 0;
529  const unsigned short LOADING = 1;
530  const unsigned short LOADED = 2;
531  const unsigned short ERROR = 3;
532  readonly attribute unsigned short readyState;
533
534  readonly attribute TextTrack track;
535};
536
537enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" };
538typedef (MediaStream or MediaSource or Blob) MediaProvider;
539
540[Exposed=Window]
541interface HTMLMediaElement : HTMLElement {
542
543  // error state
544  readonly attribute MediaError? error;
545
546  // network state
547  [CEReactions] attribute USVString src;
548  attribute MediaProvider? srcObject;
549  readonly attribute USVString currentSrc;
550  [CEReactions] attribute DOMString? crossOrigin;
551  const unsigned short NETWORK_EMPTY = 0;
552  const unsigned short NETWORK_IDLE = 1;
553  const unsigned short NETWORK_LOADING = 2;
554  const unsigned short NETWORK_NO_SOURCE = 3;
555  readonly attribute unsigned short networkState;
556  [CEReactions] attribute DOMString preload;
557  readonly attribute TimeRanges buffered;
558  undefined load();
559  CanPlayTypeResult canPlayType(DOMString type);
560
561  // ready state
562  const unsigned short HAVE_NOTHING = 0;
563  const unsigned short HAVE_METADATA = 1;
564  const unsigned short HAVE_CURRENT_DATA = 2;
565  const unsigned short HAVE_FUTURE_DATA = 3;
566  const unsigned short HAVE_ENOUGH_DATA = 4;
567  readonly attribute unsigned short readyState;
568  readonly attribute boolean seeking;
569
570  // playback state
571  attribute double currentTime;
572  undefined fastSeek(double time);
573  readonly attribute unrestricted double duration;
574  object getStartDate();
575  readonly attribute boolean paused;
576  attribute double defaultPlaybackRate;
577  attribute double playbackRate;
578  attribute boolean preservesPitch;
579  readonly attribute TimeRanges played;
580  readonly attribute TimeRanges seekable;
581  readonly attribute boolean ended;
582  [CEReactions] attribute boolean autoplay;
583  [CEReactions] attribute boolean loop;
584  Promise<undefined> play();
585  undefined pause();
586
587  // controls
588  [CEReactions] attribute boolean controls;
589  attribute double volume;
590  attribute boolean muted;
591  [CEReactions] attribute boolean defaultMuted;
592
593  // tracks
594  [SameObject] readonly attribute AudioTrackList audioTracks;
595  [SameObject] readonly attribute VideoTrackList videoTracks;
596  [SameObject] readonly attribute TextTrackList textTracks;
597  TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
598};
599
600[Exposed=Window]
601interface MediaError {
602  const unsigned short MEDIA_ERR_ABORTED = 1;
603  const unsigned short MEDIA_ERR_NETWORK = 2;
604  const unsigned short MEDIA_ERR_DECODE = 3;
605  const unsigned short MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
606
607  readonly attribute unsigned short code;
608  readonly attribute DOMString message;
609};
610
611[Exposed=Window]
612interface AudioTrackList : EventTarget {
613  readonly attribute unsigned long length;
614  getter AudioTrack (unsigned long index);
615  AudioTrack? getTrackById(DOMString id);
616
617  attribute EventHandler onchange;
618  attribute EventHandler onaddtrack;
619  attribute EventHandler onremovetrack;
620};
621
622[Exposed=Window]
623interface AudioTrack {
624  readonly attribute DOMString id;
625  readonly attribute DOMString kind;
626  readonly attribute DOMString label;
627  readonly attribute DOMString language;
628  attribute boolean enabled;
629};
630
631[Exposed=Window]
632interface VideoTrackList : EventTarget {
633  readonly attribute unsigned long length;
634  getter VideoTrack (unsigned long index);
635  VideoTrack? getTrackById(DOMString id);
636  readonly attribute long selectedIndex;
637
638  attribute EventHandler onchange;
639  attribute EventHandler onaddtrack;
640  attribute EventHandler onremovetrack;
641};
642
643[Exposed=Window]
644interface VideoTrack {
645  readonly attribute DOMString id;
646  readonly attribute DOMString kind;
647  readonly attribute DOMString label;
648  readonly attribute DOMString language;
649  attribute boolean selected;
650};
651
652[Exposed=Window]
653interface TextTrackList : EventTarget {
654  readonly attribute unsigned long length;
655  getter TextTrack (unsigned long index);
656  TextTrack? getTrackById(DOMString id);
657
658  attribute EventHandler onchange;
659  attribute EventHandler onaddtrack;
660  attribute EventHandler onremovetrack;
661};
662
663enum TextTrackMode { "disabled",  "hidden",  "showing" };
664enum TextTrackKind { "subtitles",  "captions",  "descriptions",  "chapters",  "metadata" };
665
666[Exposed=Window]
667interface TextTrack : EventTarget {
668  readonly attribute TextTrackKind kind;
669  readonly attribute DOMString label;
670  readonly attribute DOMString language;
671
672  readonly attribute DOMString id;
673  readonly attribute DOMString inBandMetadataTrackDispatchType;
674
675  attribute TextTrackMode mode;
676
677  readonly attribute TextTrackCueList? cues;
678  readonly attribute TextTrackCueList? activeCues;
679
680  undefined addCue(TextTrackCue cue);
681  undefined removeCue(TextTrackCue cue);
682
683  attribute EventHandler oncuechange;
684};
685
686[Exposed=Window]
687interface TextTrackCueList {
688  readonly attribute unsigned long length;
689  getter TextTrackCue (unsigned long index);
690  TextTrackCue? getCueById(DOMString id);
691};
692
693[Exposed=Window]
694interface TextTrackCue : EventTarget {
695  readonly attribute TextTrack? track;
696
697  attribute DOMString id;
698  attribute double startTime;
699  attribute unrestricted double endTime;
700  attribute boolean pauseOnExit;
701
702  attribute EventHandler onenter;
703  attribute EventHandler onexit;
704};
705
706[Exposed=Window]
707interface TimeRanges {
708  readonly attribute unsigned long length;
709  double start(unsigned long index);
710  double end(unsigned long index);
711};
712
713[Exposed=Window]
714interface TrackEvent : Event {
715  constructor(DOMString type, optional TrackEventInit eventInitDict = {});
716
717  readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
718};
719
720dictionary TrackEventInit : EventInit {
721  (VideoTrack or AudioTrack or TextTrack)? track = null;
722};
723
724[Exposed=Window]
725interface HTMLMapElement : HTMLElement {
726  [HTMLConstructor] constructor();
727
728  [CEReactions] attribute DOMString name;
729  [SameObject] readonly attribute HTMLCollection areas;
730};
731
732[Exposed=Window]
733interface HTMLAreaElement : HTMLElement {
734  [HTMLConstructor] constructor();
735
736  [CEReactions] attribute DOMString alt;
737  [CEReactions] attribute DOMString coords;
738  [CEReactions] attribute DOMString shape;
739  [CEReactions] attribute DOMString target;
740  [CEReactions] attribute DOMString download;
741  [CEReactions] attribute USVString ping;
742  [CEReactions] attribute DOMString rel;
743  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
744  [CEReactions] attribute DOMString referrerPolicy;
745
746  // also has obsolete members
747};
748HTMLAreaElement includes HTMLHyperlinkElementUtils;
749
750[Exposed=Window]
751interface HTMLTableElement : HTMLElement {
752  [HTMLConstructor] constructor();
753
754  [CEReactions] attribute HTMLTableCaptionElement? caption;
755  HTMLTableCaptionElement createCaption();
756  [CEReactions] undefined deleteCaption();
757
758  [CEReactions] attribute HTMLTableSectionElement? tHead;
759  HTMLTableSectionElement createTHead();
760  [CEReactions] undefined deleteTHead();
761
762  [CEReactions] attribute HTMLTableSectionElement? tFoot;
763  HTMLTableSectionElement createTFoot();
764  [CEReactions] undefined deleteTFoot();
765
766  [SameObject] readonly attribute HTMLCollection tBodies;
767  HTMLTableSectionElement createTBody();
768
769  [SameObject] readonly attribute HTMLCollection rows;
770  HTMLTableRowElement insertRow(optional long index = -1);
771  [CEReactions] undefined deleteRow(long index);
772
773  // also has obsolete members
774};
775
776[Exposed=Window]
777interface HTMLTableCaptionElement : HTMLElement {
778  [HTMLConstructor] constructor();
779
780  // also has obsolete members
781};
782
783[Exposed=Window]
784interface HTMLTableColElement : HTMLElement {
785  [HTMLConstructor] constructor();
786
787  [CEReactions] attribute unsigned long span;
788
789  // also has obsolete members
790};
791
792[Exposed=Window]
793interface HTMLTableSectionElement : HTMLElement {
794  [HTMLConstructor] constructor();
795
796  [SameObject] readonly attribute HTMLCollection rows;
797  HTMLTableRowElement insertRow(optional long index = -1);
798  [CEReactions] undefined deleteRow(long index);
799
800  // also has obsolete members
801};
802
803[Exposed=Window]
804interface HTMLTableRowElement : HTMLElement {
805  [HTMLConstructor] constructor();
806
807  readonly attribute long rowIndex;
808  readonly attribute long sectionRowIndex;
809  [SameObject] readonly attribute HTMLCollection cells;
810  HTMLTableCellElement insertCell(optional long index = -1);
811  [CEReactions] undefined deleteCell(long index);
812
813  // also has obsolete members
814};
815
816[Exposed=Window]
817interface HTMLTableCellElement : HTMLElement {
818  [HTMLConstructor] constructor();
819
820  [CEReactions] attribute unsigned long colSpan;
821  [CEReactions] attribute unsigned long rowSpan;
822  [CEReactions] attribute DOMString headers;
823  readonly attribute long cellIndex;
824
825  [CEReactions] attribute DOMString scope; // only conforming for th elements
826  [CEReactions] attribute DOMString abbr;  // only conforming for th elements
827
828  // also has obsolete members
829};
830
831[Exposed=Window,
832 LegacyOverrideBuiltIns,
833 LegacyUnenumerableNamedProperties]
834interface HTMLFormElement : HTMLElement {
835  [HTMLConstructor] constructor();
836
837  [CEReactions] attribute DOMString acceptCharset;
838  [CEReactions] attribute USVString action;
839  [CEReactions] attribute DOMString autocomplete;
840  [CEReactions] attribute DOMString enctype;
841  [CEReactions] attribute DOMString encoding;
842  [CEReactions] attribute DOMString method;
843  [CEReactions] attribute DOMString name;
844  [CEReactions] attribute boolean noValidate;
845  [CEReactions] attribute DOMString target;
846  [CEReactions] attribute DOMString rel;
847  [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
848
849  [SameObject] readonly attribute HTMLFormControlsCollection elements;
850  readonly attribute unsigned long length;
851  getter Element (unsigned long index);
852  getter (RadioNodeList or Element) (DOMString name);
853
854  undefined submit();
855  undefined requestSubmit(optional HTMLElement? submitter = null);
856  [CEReactions] undefined reset();
857  boolean checkValidity();
858  boolean reportValidity();
859};
860
861[Exposed=Window]
862interface HTMLLabelElement : HTMLElement {
863  [HTMLConstructor] constructor();
864
865  readonly attribute HTMLFormElement? form;
866  [CEReactions] attribute DOMString htmlFor;
867  readonly attribute HTMLElement? control;
868};
869
870[Exposed=Window]
871interface HTMLInputElement : HTMLElement {
872  [HTMLConstructor] constructor();
873
874  [CEReactions] attribute DOMString accept;
875  [CEReactions] attribute DOMString alt;
876  [CEReactions] attribute DOMString autocomplete;
877  [CEReactions] attribute boolean defaultChecked;
878  attribute boolean checked;
879  [CEReactions] attribute DOMString dirName;
880  [CEReactions] attribute boolean disabled;
881  readonly attribute HTMLFormElement? form;
882  attribute FileList? files;
883  [CEReactions] attribute USVString formAction;
884  [CEReactions] attribute DOMString formEnctype;
885  [CEReactions] attribute DOMString formMethod;
886  [CEReactions] attribute boolean formNoValidate;
887  [CEReactions] attribute DOMString formTarget;
888  [CEReactions] attribute unsigned long height;
889  attribute boolean indeterminate;
890  readonly attribute HTMLElement? list;
891  [CEReactions] attribute DOMString max;
892  [CEReactions] attribute long maxLength;
893  [CEReactions] attribute DOMString min;
894  [CEReactions] attribute long minLength;
895  [CEReactions] attribute boolean multiple;
896  [CEReactions] attribute DOMString name;
897  [CEReactions] attribute DOMString pattern;
898  [CEReactions] attribute DOMString placeholder;
899  [CEReactions] attribute boolean readOnly;
900  [CEReactions] attribute boolean required;
901  [CEReactions] attribute unsigned long size;
902  [CEReactions] attribute USVString src;
903  [CEReactions] attribute DOMString step;
904  [CEReactions] attribute DOMString type;
905  [CEReactions] attribute DOMString defaultValue;
906  [CEReactions] attribute [LegacyNullToEmptyString] DOMString value;
907  attribute object? valueAsDate;
908  attribute unrestricted double valueAsNumber;
909  [CEReactions] attribute unsigned long width;
910
911  undefined stepUp(optional long n = 1);
912  undefined stepDown(optional long n = 1);
913
914  readonly attribute boolean willValidate;
915  readonly attribute ValidityState validity;
916  readonly attribute DOMString validationMessage;
917  boolean checkValidity();
918  boolean reportValidity();
919  undefined setCustomValidity(DOMString error);
920
921  readonly attribute NodeList? labels;
922
923  undefined select();
924  attribute unsigned long? selectionStart;
925  attribute unsigned long? selectionEnd;
926  attribute DOMString? selectionDirection;
927  undefined setRangeText(DOMString replacement);
928  undefined setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
929  undefined setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
930
931  // also has obsolete members
932};
933
934[Exposed=Window]
935interface HTMLButtonElement : HTMLElement {
936  [HTMLConstructor] constructor();
937
938  [CEReactions] attribute boolean disabled;
939  readonly attribute HTMLFormElement? form;
940  [CEReactions] attribute USVString formAction;
941  [CEReactions] attribute DOMString formEnctype;
942  [CEReactions] attribute DOMString formMethod;
943  [CEReactions] attribute boolean formNoValidate;
944  [CEReactions] attribute DOMString formTarget;
945  [CEReactions] attribute DOMString name;
946  [CEReactions] attribute DOMString type;
947  [CEReactions] attribute DOMString value;
948
949  readonly attribute boolean willValidate;
950  readonly attribute ValidityState validity;
951  readonly attribute DOMString validationMessage;
952  boolean checkValidity();
953  boolean reportValidity();
954  undefined setCustomValidity(DOMString error);
955
956  readonly attribute NodeList labels;
957};
958
959[Exposed=Window]
960interface HTMLSelectElement : HTMLElement {
961  [HTMLConstructor] constructor();
962
963  [CEReactions] attribute DOMString autocomplete;
964  [CEReactions] attribute boolean disabled;
965  readonly attribute HTMLFormElement? form;
966  [CEReactions] attribute boolean multiple;
967  [CEReactions] attribute DOMString name;
968  [CEReactions] attribute boolean required;
969  [CEReactions] attribute unsigned long size;
970
971  readonly attribute DOMString type;
972
973  [SameObject] readonly attribute HTMLOptionsCollection options;
974  [CEReactions] attribute unsigned long length;
975  getter Element? item(unsigned long index);
976  HTMLOptionElement? namedItem(DOMString name);
977  [CEReactions] undefined add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
978  [CEReactions] undefined remove(); // ChildNode overload
979  [CEReactions] undefined remove(long index);
980  [CEReactions] setter undefined (unsigned long index, HTMLOptionElement? option);
981
982  [SameObject] readonly attribute HTMLCollection selectedOptions;
983  attribute long selectedIndex;
984  attribute DOMString value;
985
986  readonly attribute boolean willValidate;
987  readonly attribute ValidityState validity;
988  readonly attribute DOMString validationMessage;
989  boolean checkValidity();
990  boolean reportValidity();
991  undefined setCustomValidity(DOMString error);
992
993  readonly attribute NodeList labels;
994};
995
996[Exposed=Window]
997interface HTMLDataListElement : HTMLElement {
998  [HTMLConstructor] constructor();
999
1000  [SameObject] readonly attribute HTMLCollection options;
1001};
1002
1003[Exposed=Window]
1004interface HTMLOptGroupElement : HTMLElement {
1005  [HTMLConstructor] constructor();
1006
1007  [CEReactions] attribute boolean disabled;
1008  [CEReactions] attribute DOMString label;
1009};
1010
1011[Exposed=Window,
1012 LegacyFactoryFunction=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
1013interface HTMLOptionElement : HTMLElement {
1014  [HTMLConstructor] constructor();
1015
1016  [CEReactions] attribute boolean disabled;
1017  readonly attribute HTMLFormElement? form;
1018  [CEReactions] attribute DOMString label;
1019  [CEReactions] attribute boolean defaultSelected;
1020  attribute boolean selected;
1021  [CEReactions] attribute DOMString value;
1022
1023  [CEReactions] attribute DOMString text;
1024  readonly attribute long index;
1025};
1026
1027[Exposed=Window]
1028interface HTMLTextAreaElement : HTMLElement {
1029  [HTMLConstructor] constructor();
1030
1031  [CEReactions] attribute DOMString autocomplete;
1032  [CEReactions] attribute unsigned long cols;
1033  [CEReactions] attribute DOMString dirName;
1034  [CEReactions] attribute boolean disabled;
1035  readonly attribute HTMLFormElement? form;
1036  [CEReactions] attribute long maxLength;
1037  [CEReactions] attribute long minLength;
1038  [CEReactions] attribute DOMString name;
1039  [CEReactions] attribute DOMString placeholder;
1040  [CEReactions] attribute boolean readOnly;
1041  [CEReactions] attribute boolean required;
1042  [CEReactions] attribute unsigned long rows;
1043  [CEReactions] attribute DOMString wrap;
1044
1045  readonly attribute DOMString type;
1046  [CEReactions] attribute DOMString defaultValue;
1047  attribute [LegacyNullToEmptyString] DOMString value;
1048  readonly attribute unsigned long textLength;
1049
1050  readonly attribute boolean willValidate;
1051  readonly attribute ValidityState validity;
1052  readonly attribute DOMString validationMessage;
1053  boolean checkValidity();
1054  boolean reportValidity();
1055  undefined setCustomValidity(DOMString error);
1056
1057  readonly attribute NodeList labels;
1058
1059  undefined select();
1060  attribute unsigned long selectionStart;
1061  attribute unsigned long selectionEnd;
1062  attribute DOMString selectionDirection;
1063  undefined setRangeText(DOMString replacement);
1064  undefined setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
1065  undefined setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
1066};
1067
1068[Exposed=Window]
1069interface HTMLOutputElement : HTMLElement {
1070  [HTMLConstructor] constructor();
1071
1072  [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
1073  readonly attribute HTMLFormElement? form;
1074  [CEReactions] attribute DOMString name;
1075
1076  readonly attribute DOMString type;
1077  [CEReactions] attribute DOMString defaultValue;
1078  [CEReactions] attribute DOMString value;
1079
1080  readonly attribute boolean willValidate;
1081  readonly attribute ValidityState validity;
1082  readonly attribute DOMString validationMessage;
1083  boolean checkValidity();
1084  boolean reportValidity();
1085  undefined setCustomValidity(DOMString error);
1086
1087  readonly attribute NodeList labels;
1088};
1089
1090[Exposed=Window]
1091interface HTMLProgressElement : HTMLElement {
1092  [HTMLConstructor] constructor();
1093
1094  [CEReactions] attribute double value;
1095  [CEReactions] attribute double max;
1096  readonly attribute double position;
1097  readonly attribute NodeList labels;
1098};
1099
1100[Exposed=Window]
1101interface HTMLMeterElement : HTMLElement {
1102  [HTMLConstructor] constructor();
1103
1104  [CEReactions] attribute double value;
1105  [CEReactions] attribute double min;
1106  [CEReactions] attribute double max;
1107  [CEReactions] attribute double low;
1108  [CEReactions] attribute double high;
1109  [CEReactions] attribute double optimum;
1110  readonly attribute NodeList labels;
1111};
1112
1113[Exposed=Window]
1114interface HTMLFieldSetElement : HTMLElement {
1115  [HTMLConstructor] constructor();
1116
1117  [CEReactions] attribute boolean disabled;
1118  readonly attribute HTMLFormElement? form;
1119  [CEReactions] attribute DOMString name;
1120
1121  readonly attribute DOMString type;
1122
1123  [SameObject] readonly attribute HTMLCollection elements;
1124
1125  readonly attribute boolean willValidate;
1126  [SameObject] readonly attribute ValidityState validity;
1127  readonly attribute DOMString validationMessage;
1128  boolean checkValidity();
1129  boolean reportValidity();
1130  undefined setCustomValidity(DOMString error);
1131};
1132
1133[Exposed=Window]
1134interface HTMLLegendElement : HTMLElement {
1135  [HTMLConstructor] constructor();
1136
1137  readonly attribute HTMLFormElement? form;
1138
1139  // also has obsolete members
1140};
1141
1142enum SelectionMode {
1143  "select",
1144  "start",
1145  "end",
1146  "preserve" // default
1147};
1148
1149[Exposed=Window]
1150interface ValidityState {
1151  readonly attribute boolean valueMissing;
1152  readonly attribute boolean typeMismatch;
1153  readonly attribute boolean patternMismatch;
1154  readonly attribute boolean tooLong;
1155  readonly attribute boolean tooShort;
1156  readonly attribute boolean rangeUnderflow;
1157  readonly attribute boolean rangeOverflow;
1158  readonly attribute boolean stepMismatch;
1159  readonly attribute boolean badInput;
1160  readonly attribute boolean customError;
1161  readonly attribute boolean valid;
1162};
1163
1164[Exposed=Window]
1165interface SubmitEvent : Event {
1166  constructor(DOMString type, optional SubmitEventInit eventInitDict = {});
1167
1168  readonly attribute HTMLElement? submitter;
1169};
1170
1171dictionary SubmitEventInit : EventInit {
1172  HTMLElement? submitter = null;
1173};
1174
1175[Exposed=Window]
1176interface FormDataEvent : Event {
1177  constructor(DOMString type, FormDataEventInit eventInitDict);
1178
1179  readonly attribute FormData formData;
1180};
1181
1182dictionary FormDataEventInit : EventInit {
1183  required FormData formData;
1184};
1185
1186[Exposed=Window]
1187interface HTMLDetailsElement : HTMLElement {
1188  [HTMLConstructor] constructor();
1189
1190  [CEReactions] attribute boolean open;
1191};
1192
1193[Exposed=Window]
1194interface HTMLDialogElement : HTMLElement {
1195  [HTMLConstructor] constructor();
1196
1197  [CEReactions] attribute boolean open;
1198  attribute DOMString returnValue;
1199  [CEReactions] undefined show();
1200  [CEReactions] undefined showModal();
1201  [CEReactions] undefined close(optional DOMString returnValue);
1202};
1203
1204[Exposed=Window]
1205interface HTMLScriptElement : HTMLElement {
1206  [HTMLConstructor] constructor();
1207
1208  [CEReactions] attribute USVString src;
1209  [CEReactions] attribute DOMString type;
1210  [CEReactions] attribute boolean noModule;
1211  [CEReactions] attribute boolean async;
1212  [CEReactions] attribute boolean defer;
1213  [CEReactions] attribute DOMString? crossOrigin;
1214  [CEReactions] attribute DOMString text;
1215  [CEReactions] attribute DOMString integrity;
1216  [CEReactions] attribute DOMString referrerPolicy;
1217
1218  // also has obsolete members
1219};
1220
1221[Exposed=Window]
1222interface HTMLTemplateElement : HTMLElement {
1223  [HTMLConstructor] constructor();
1224
1225  readonly attribute DocumentFragment content;
1226};
1227
1228[Exposed=Window]
1229interface HTMLSlotElement : HTMLElement {
1230  [HTMLConstructor] constructor();
1231
1232  [CEReactions] attribute DOMString name;
1233  sequence<Node> assignedNodes(optional AssignedNodesOptions options = {});
1234  sequence<Element> assignedElements(optional AssignedNodesOptions options = {});
1235  undefined assign((Element or Text)... nodes);
1236};
1237
1238dictionary AssignedNodesOptions {
1239  boolean flatten = false;
1240};
1241
1242typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext;
1243
1244[Exposed=Window]
1245interface HTMLCanvasElement : HTMLElement {
1246  [HTMLConstructor] constructor();
1247
1248  [CEReactions] attribute unsigned long width;
1249  [CEReactions] attribute unsigned long height;
1250
1251  RenderingContext? getContext(DOMString contextId, optional any options = null);
1252
1253  USVString toDataURL(optional DOMString type = "image/png", optional any quality);
1254  undefined toBlob(BlobCallback _callback, optional DOMString type = "image/png", optional any quality);
1255  OffscreenCanvas transferControlToOffscreen();
1256};
1257
1258callback BlobCallback = undefined (Blob? blob);
1259
1260typedef (HTMLImageElement or
1261         SVGImageElement) HTMLOrSVGImageElement;
1262
1263typedef (HTMLOrSVGImageElement or
1264         HTMLVideoElement or
1265         HTMLCanvasElement or
1266         ImageBitmap or
1267         OffscreenCanvas) CanvasImageSource;
1268
1269enum PredefinedColorSpace { "srgb", "display-p3" };
1270
1271enum CanvasFillRule { "nonzero", "evenodd" };
1272
1273dictionary CanvasRenderingContext2DSettings {
1274  boolean alpha = true;
1275  boolean desynchronized = false;
1276  PredefinedColorSpace colorSpace = "srgb";
1277};
1278
1279enum ImageSmoothingQuality { "low", "medium", "high" };
1280
1281[Exposed=Window]
1282interface CanvasRenderingContext2D {
1283  // back-reference to the canvas
1284  readonly attribute HTMLCanvasElement canvas;
1285
1286  CanvasRenderingContext2DSettings getContextAttributes();
1287};
1288CanvasRenderingContext2D includes CanvasState;
1289CanvasRenderingContext2D includes CanvasTransform;
1290CanvasRenderingContext2D includes CanvasCompositing;
1291CanvasRenderingContext2D includes CanvasImageSmoothing;
1292CanvasRenderingContext2D includes CanvasFillStrokeStyles;
1293CanvasRenderingContext2D includes CanvasShadowStyles;
1294CanvasRenderingContext2D includes CanvasFilters;
1295CanvasRenderingContext2D includes CanvasRect;
1296CanvasRenderingContext2D includes CanvasDrawPath;
1297CanvasRenderingContext2D includes CanvasUserInterface;
1298CanvasRenderingContext2D includes CanvasText;
1299CanvasRenderingContext2D includes CanvasDrawImage;
1300CanvasRenderingContext2D includes CanvasImageData;
1301CanvasRenderingContext2D includes CanvasPathDrawingStyles;
1302CanvasRenderingContext2D includes CanvasTextDrawingStyles;
1303CanvasRenderingContext2D includes CanvasPath;
1304
1305interface mixin CanvasState {
1306  // state
1307  undefined save(); // push state on state stack
1308  undefined restore(); // pop state stack and restore state
1309  undefined reset(); // reset the rendering context to its default state
1310};
1311
1312interface mixin CanvasTransform {
1313  // transformations (default transform is the identity matrix)
1314  undefined scale(unrestricted double x, unrestricted double y);
1315  undefined rotate(unrestricted double angle);
1316  undefined translate(unrestricted double x, unrestricted double y);
1317  undefined transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
1318
1319  [NewObject] DOMMatrix getTransform();
1320  undefined setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
1321  undefined setTransform(optional DOMMatrix2DInit transform = {});
1322  undefined resetTransform();
1323
1324};
1325
1326interface mixin CanvasCompositing {
1327  // compositing
1328  attribute unrestricted double globalAlpha; // (default 1.0)
1329  attribute DOMString globalCompositeOperation; // (default source-over)
1330};
1331
1332interface mixin CanvasImageSmoothing {
1333  // image smoothing
1334  attribute boolean imageSmoothingEnabled; // (default true)
1335  attribute ImageSmoothingQuality imageSmoothingQuality; // (default low)
1336
1337};
1338
1339interface mixin CanvasFillStrokeStyles {
1340  // colors and styles (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces)
1341  attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
1342  attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
1343  CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
1344  CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
1345  CanvasGradient createConicGradient(double startAngle, double x, double y);
1346  CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetition);
1347
1348};
1349
1350interface mixin CanvasShadowStyles {
1351  // shadows
1352  attribute unrestricted double shadowOffsetX; // (default 0)
1353  attribute unrestricted double shadowOffsetY; // (default 0)
1354  attribute unrestricted double shadowBlur; // (default 0)
1355  attribute DOMString shadowColor; // (default transparent black)
1356};
1357
1358interface mixin CanvasFilters {
1359  // filters
1360  attribute DOMString filter; // (default "none")
1361};
1362
1363interface mixin CanvasRect {
1364  // rects
1365  undefined clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1366  undefined fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1367  undefined strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1368};
1369
1370interface mixin CanvasDrawPath {
1371  // path API (see also CanvasPath)
1372  undefined beginPath();
1373  undefined fill(optional CanvasFillRule fillRule = "nonzero");
1374  undefined fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
1375  undefined stroke();
1376  undefined stroke(Path2D path);
1377  undefined clip(optional CanvasFillRule fillRule = "nonzero");
1378  undefined clip(Path2D path, optional CanvasFillRule fillRule = "nonzero");
1379  boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero");
1380  boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero");
1381  boolean isPointInStroke(unrestricted double x, unrestricted double y);
1382  boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
1383};
1384
1385interface mixin CanvasUserInterface {
1386  undefined drawFocusIfNeeded(Element element);
1387  undefined drawFocusIfNeeded(Path2D path, Element element);
1388  undefined scrollPathIntoView();
1389  undefined scrollPathIntoView(Path2D path);
1390};
1391
1392interface mixin CanvasText {
1393  // text (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces)
1394  undefined fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
1395  undefined strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
1396  TextMetrics measureText(DOMString text);
1397};
1398
1399interface mixin CanvasDrawImage {
1400  // drawing images
1401  undefined drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy);
1402  undefined drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh);
1403  undefined 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);
1404};
1405
1406interface mixin CanvasImageData {
1407  // pixel manipulation
1408  ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh, optional ImageDataSettings settings = {});
1409  ImageData createImageData(ImageData imagedata);
1410  ImageData getImageData([EnforceRange] long sx, [EnforceRange] long sy, [EnforceRange] long sw, [EnforceRange] long sh, optional ImageDataSettings settings = {});
1411  undefined putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy);
1412  undefined putImageData(ImageData imagedata, [EnforceRange] long dx, [EnforceRange] long dy, [EnforceRange] long dirtyX, [EnforceRange] long dirtyY, [EnforceRange] long dirtyWidth, [EnforceRange] long dirtyHeight);
1413};
1414
1415enum CanvasLineCap { "butt", "round", "square" };
1416enum CanvasLineJoin { "round", "bevel", "miter" };
1417enum CanvasTextAlign { "start", "end", "left", "right", "center" };
1418enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" };
1419enum CanvasDirection { "ltr", "rtl", "inherit" };
1420enum CanvasFontKerning { "auto", "normal", "none" };
1421enum CanvasFontStretch { "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded" };
1422enum CanvasFontVariantCaps { "normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps" };
1423enum CanvasTextRendering { "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision" };
1424
1425interface mixin CanvasPathDrawingStyles {
1426  // line caps/joins
1427  attribute unrestricted double lineWidth; // (default 1)
1428  attribute CanvasLineCap lineCap; // (default "butt")
1429  attribute CanvasLineJoin lineJoin; // (default "miter")
1430  attribute unrestricted double miterLimit; // (default 10)
1431
1432  // dashed lines
1433  undefined setLineDash(sequence<unrestricted double> segments); // default empty
1434  sequence<unrestricted double> getLineDash();
1435  attribute unrestricted double lineDashOffset;
1436};
1437
1438interface mixin CanvasTextDrawingStyles {
1439  // text
1440  attribute DOMString font; // (default 10px sans-serif)
1441  attribute CanvasTextAlign textAlign; // (default: "start")
1442  attribute CanvasTextBaseline textBaseline; // (default: "alphabetic")
1443  attribute CanvasDirection direction; // (default: "inherit")
1444  attribute double textLetterSpacing; // (default: 0)
1445  attribute double textWordSpacing; // (default: 0)
1446  attribute CanvasFontKerning fontKerning; // (default: "auto")
1447  attribute CanvasFontStretch fontStretch; // (default: "normal")
1448  attribute CanvasFontVariantCaps fontVariantCaps; // (default: "normal")
1449  attribute CanvasTextRendering textRendering; // (default: "normal")
1450};
1451
1452interface mixin CanvasPath {
1453  // shared path API methods
1454  undefined closePath();
1455  undefined moveTo(unrestricted double x, unrestricted double y);
1456  undefined lineTo(unrestricted double x, unrestricted double y);
1457  undefined quadraticCurveTo(unrestricted double cpx, unrestricted double cpy, unrestricted double x, unrestricted double y);
1458  undefined bezierCurveTo(unrestricted double cp1x, unrestricted double cp1y, unrestricted double cp2x, unrestricted double cp2y, unrestricted double x, unrestricted double y);
1459  undefined arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius);
1460  undefined rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1461  undefined arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean counterclockwise = false);
1462  undefined ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean counterclockwise = false);
1463};
1464
1465[Exposed=(Window,Worker)]
1466interface CanvasGradient {
1467  // opaque object
1468  undefined addColorStop(double offset, DOMString color);
1469};
1470
1471[Exposed=(Window,Worker)]
1472interface CanvasPattern {
1473  // opaque object
1474  undefined setTransform(optional DOMMatrix2DInit transform = {});
1475};
1476
1477[Exposed=(Window,Worker)]
1478interface TextMetrics {
1479  // x-direction
1480  readonly attribute double width; // advance width
1481  readonly attribute double actualBoundingBoxLeft;
1482  readonly attribute double actualBoundingBoxRight;
1483
1484  // y-direction
1485  readonly attribute double fontBoundingBoxAscent;
1486  readonly attribute double fontBoundingBoxDescent;
1487  readonly attribute double actualBoundingBoxAscent;
1488  readonly attribute double actualBoundingBoxDescent;
1489  readonly attribute double emHeightAscent;
1490  readonly attribute double emHeightDescent;
1491  readonly attribute double hangingBaseline;
1492  readonly attribute double alphabeticBaseline;
1493  readonly attribute double ideographicBaseline;
1494};
1495
1496dictionary ImageDataSettings {
1497  PredefinedColorSpace colorSpace;
1498};
1499
1500[Exposed=(Window,Worker),
1501 Serializable]
1502interface ImageData {
1503  constructor(unsigned long sw, unsigned long sh, optional ImageDataSettings settings = {});
1504  constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
1505
1506  readonly attribute unsigned long width;
1507  readonly attribute unsigned long height;
1508  readonly attribute Uint8ClampedArray data;
1509  readonly attribute PredefinedColorSpace colorSpace;
1510};
1511
1512[Exposed=(Window,Worker)]
1513interface Path2D {
1514  constructor(optional (Path2D or DOMString) path);
1515
1516  undefined addPath(Path2D path, optional DOMMatrix2DInit transform = {});
1517};
1518Path2D includes CanvasPath;
1519
1520[Exposed=(Window,Worker)]
1521interface ImageBitmapRenderingContext {
1522  readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;
1523  undefined transferFromImageBitmap(ImageBitmap? bitmap);
1524};
1525
1526dictionary ImageBitmapRenderingContextSettings {
1527  boolean alpha = true;
1528};
1529
1530typedef (OffscreenCanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext or WebGL2RenderingContext) OffscreenRenderingContext;
1531
1532dictionary ImageEncodeOptions {
1533  DOMString type = "image/png";
1534  unrestricted double quality;
1535};
1536
1537enum OffscreenRenderingContextId { "2d", "bitmaprenderer", "webgl", "webgl2" };
1538
1539[Exposed=(Window,Worker), Transferable]
1540interface OffscreenCanvas : EventTarget {
1541  constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height);
1542
1543  attribute [EnforceRange] unsigned long long width;
1544  attribute [EnforceRange] unsigned long long height;
1545
1546  OffscreenRenderingContext? getContext(OffscreenRenderingContextId contextId, optional any options = null);
1547  ImageBitmap transferToImageBitmap();
1548  Promise<Blob> convertToBlob(optional ImageEncodeOptions options = {});
1549};
1550
1551[Exposed=(Window,Worker)]
1552interface OffscreenCanvasRenderingContext2D {
1553  undefined commit();
1554  readonly attribute OffscreenCanvas canvas;
1555};
1556
1557OffscreenCanvasRenderingContext2D includes CanvasState;
1558OffscreenCanvasRenderingContext2D includes CanvasTransform;
1559OffscreenCanvasRenderingContext2D includes CanvasCompositing;
1560OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing;
1561OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles;
1562OffscreenCanvasRenderingContext2D includes CanvasShadowStyles;
1563OffscreenCanvasRenderingContext2D includes CanvasFilters;
1564OffscreenCanvasRenderingContext2D includes CanvasRect;
1565OffscreenCanvasRenderingContext2D includes CanvasDrawPath;
1566OffscreenCanvasRenderingContext2D includes CanvasText;
1567OffscreenCanvasRenderingContext2D includes CanvasDrawImage;
1568OffscreenCanvasRenderingContext2D includes CanvasImageData;
1569OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles;
1570OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles;
1571OffscreenCanvasRenderingContext2D includes CanvasPath;
1572
1573[Exposed=Window]
1574interface CustomElementRegistry {
1575  [CEReactions] undefined define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options = {});
1576  (CustomElementConstructor or undefined) get(DOMString name);
1577  Promise<CustomElementConstructor> whenDefined(DOMString name);
1578  [CEReactions] undefined upgrade(Node root);
1579};
1580
1581callback CustomElementConstructor = HTMLElement ();
1582
1583dictionary ElementDefinitionOptions {
1584  DOMString extends;
1585};
1586
1587[Exposed=Window]
1588interface ElementInternals {
1589  // Shadow root access
1590  readonly attribute ShadowRoot? shadowRoot;
1591
1592  // Form-associated custom elements
1593  undefined setFormValue((File or USVString or FormData)? value,
1594                         optional (File or USVString or FormData)? state);
1595
1596  readonly attribute HTMLFormElement? form;
1597
1598  undefined setValidity(optional ValidityStateFlags flags = {},
1599                        optional DOMString message,
1600                        optional HTMLElement anchor);
1601  readonly attribute boolean willValidate;
1602  readonly attribute ValidityState validity;
1603  readonly attribute DOMString validationMessage;
1604  boolean checkValidity();
1605  boolean reportValidity();
1606
1607  readonly attribute NodeList labels;
1608};
1609
1610// Accessibility semantics
1611ElementInternals includes ARIAMixin;
1612
1613dictionary ValidityStateFlags {
1614  boolean valueMissing = false;
1615  boolean typeMismatch = false;
1616  boolean patternMismatch = false;
1617  boolean tooLong = false;
1618  boolean tooShort = false;
1619  boolean rangeUnderflow = false;
1620  boolean rangeOverflow = false;
1621  boolean stepMismatch = false;
1622  boolean badInput = false;
1623  boolean customError = false;
1624};
1625
1626dictionary FocusOptions {
1627  boolean preventScroll = false;
1628};
1629
1630interface mixin ElementContentEditable {
1631  [CEReactions] attribute DOMString contentEditable;
1632  [CEReactions] attribute DOMString enterKeyHint;
1633  readonly attribute boolean isContentEditable;
1634  [CEReactions] attribute DOMString inputMode;
1635};
1636
1637[Exposed=Window]
1638interface DataTransfer {
1639  constructor();
1640
1641  attribute DOMString dropEffect;
1642  attribute DOMString effectAllowed;
1643
1644  [SameObject] readonly attribute DataTransferItemList items;
1645
1646  undefined setDragImage(Element image, long x, long y);
1647
1648  /* old interface */
1649  readonly attribute FrozenArray<DOMString> types;
1650  DOMString getData(DOMString format);
1651  undefined setData(DOMString format, DOMString data);
1652  undefined clearData(optional DOMString format);
1653  [SameObject] readonly attribute FileList files;
1654};
1655
1656[Exposed=Window]
1657interface DataTransferItemList {
1658  readonly attribute unsigned long length;
1659  getter DataTransferItem (unsigned long index);
1660  DataTransferItem? add(DOMString data, DOMString type);
1661  DataTransferItem? add(File data);
1662  undefined remove(unsigned long index);
1663  undefined clear();
1664};
1665
1666[Exposed=Window]
1667interface DataTransferItem {
1668  readonly attribute DOMString kind;
1669  readonly attribute DOMString type;
1670  undefined getAsString(FunctionStringCallback? _callback);
1671  File? getAsFile();
1672};
1673
1674callback FunctionStringCallback = undefined (DOMString data);
1675
1676[Exposed=Window]
1677interface DragEvent : MouseEvent {
1678  constructor(DOMString type, optional DragEventInit eventInitDict = {});
1679
1680  readonly attribute DataTransfer? dataTransfer;
1681};
1682
1683dictionary DragEventInit : MouseEventInit {
1684  DataTransfer? dataTransfer = null;
1685};
1686
1687[Global=Window,
1688 Exposed=Window,
1689 LegacyUnenumerableNamedProperties]
1690interface Window : EventTarget {
1691  // the current browsing context
1692  [LegacyUnforgeable] readonly attribute WindowProxy window;
1693  [Replaceable] readonly attribute WindowProxy self;
1694  [LegacyUnforgeable] readonly attribute Document document;
1695  attribute DOMString name;
1696  [PutForwards=href, LegacyUnforgeable] readonly attribute Location location;
1697  readonly attribute History history;
1698  readonly attribute CustomElementRegistry customElements;
1699  [Replaceable] readonly attribute BarProp locationbar;
1700  [Replaceable] readonly attribute BarProp menubar;
1701  [Replaceable] readonly attribute BarProp personalbar;
1702  [Replaceable] readonly attribute BarProp scrollbars;
1703  [Replaceable] readonly attribute BarProp statusbar;
1704  [Replaceable] readonly attribute BarProp toolbar;
1705  attribute DOMString status;
1706  undefined close();
1707  readonly attribute boolean closed;
1708  undefined stop();
1709  undefined focus();
1710  undefined blur();
1711
1712  // other browsing contexts
1713  [Replaceable] readonly attribute WindowProxy frames;
1714  [Replaceable] readonly attribute unsigned long length;
1715  [LegacyUnforgeable] readonly attribute WindowProxy? top;
1716  attribute any opener;
1717  [Replaceable] readonly attribute WindowProxy? parent;
1718  readonly attribute Element? frameElement;
1719  WindowProxy? open(optional USVString url = "", optional DOMString target = "_blank", optional [LegacyNullToEmptyString] DOMString features = "");
1720  getter object (DOMString name);
1721  // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic
1722  // object on the prototype chain. Indeed, this does not make the global object an exotic object.
1723  // Indexed access is taken care of by the WindowProxy exotic object.
1724
1725  // the user agent
1726  readonly attribute Navigator navigator;
1727  readonly attribute boolean originAgentCluster;
1728
1729  // user prompts
1730  undefined alert();
1731  undefined alert(DOMString message);
1732  boolean confirm(optional DOMString message = "");
1733  DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
1734  undefined print();
1735
1736  undefined postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
1737  undefined postMessage(any message, optional WindowPostMessageOptions options = {});
1738
1739  // also has obsolete members
1740};
1741Window includes GlobalEventHandlers;
1742Window includes WindowEventHandlers;
1743
1744dictionary WindowPostMessageOptions : PostMessageOptions {
1745  USVString targetOrigin = "/";
1746};
1747
1748[Exposed=Window]
1749interface BarProp {
1750  readonly attribute boolean visible;
1751};
1752
1753enum ScrollRestoration { "auto", "manual" };
1754
1755[Exposed=Window]
1756interface History {
1757  readonly attribute unsigned long length;
1758  attribute ScrollRestoration scrollRestoration;
1759  readonly attribute any state;
1760  undefined go(optional long delta = 0);
1761  undefined back();
1762  undefined forward();
1763  undefined pushState(any data, DOMString unused, optional USVString? url = null);
1764  undefined replaceState(any data, DOMString unused, optional USVString? url = null);
1765};
1766
1767[Exposed=Window]
1768interface Location { // but see also additional creation steps and overridden internal methods
1769  [LegacyUnforgeable] stringifier attribute USVString href;
1770  [LegacyUnforgeable] readonly attribute USVString origin;
1771  [LegacyUnforgeable] attribute USVString protocol;
1772  [LegacyUnforgeable] attribute USVString host;
1773  [LegacyUnforgeable] attribute USVString hostname;
1774  [LegacyUnforgeable] attribute USVString port;
1775  [LegacyUnforgeable] attribute USVString pathname;
1776  [LegacyUnforgeable] attribute USVString search;
1777  [LegacyUnforgeable] attribute USVString hash;
1778
1779  [LegacyUnforgeable] undefined assign(USVString url);
1780  [LegacyUnforgeable] undefined replace(USVString url);
1781  [LegacyUnforgeable] undefined reload();
1782
1783  [LegacyUnforgeable, SameObject] readonly attribute DOMStringList ancestorOrigins;
1784};
1785
1786[Exposed=Window]
1787interface PopStateEvent : Event {
1788  constructor(DOMString type, optional PopStateEventInit eventInitDict = {});
1789
1790  readonly attribute any state;
1791};
1792
1793dictionary PopStateEventInit : EventInit {
1794  any state = null;
1795};
1796
1797[Exposed=Window]
1798interface HashChangeEvent : Event {
1799  constructor(DOMString type, optional HashChangeEventInit eventInitDict = {});
1800
1801  readonly attribute USVString oldURL;
1802  readonly attribute USVString newURL;
1803};
1804
1805dictionary HashChangeEventInit : EventInit {
1806  USVString oldURL = "";
1807  USVString newURL = "";
1808};
1809
1810[Exposed=Window]
1811interface PageTransitionEvent : Event {
1812  constructor(DOMString type, optional PageTransitionEventInit eventInitDict = {});
1813
1814  readonly attribute boolean persisted;
1815};
1816
1817dictionary PageTransitionEventInit : EventInit {
1818  boolean persisted = false;
1819};
1820
1821[Exposed=Window]
1822interface BeforeUnloadEvent : Event {
1823  attribute DOMString returnValue;
1824};
1825
1826[Exposed=(Window,Worker)]
1827interface ErrorEvent : Event {
1828  constructor(DOMString type, optional ErrorEventInit eventInitDict = {});
1829
1830  readonly attribute DOMString message;
1831  readonly attribute USVString filename;
1832  readonly attribute unsigned long lineno;
1833  readonly attribute unsigned long colno;
1834  readonly attribute any error;
1835};
1836
1837dictionary ErrorEventInit : EventInit {
1838  DOMString message = "";
1839  USVString filename = "";
1840  unsigned long lineno = 0;
1841  unsigned long colno = 0;
1842  any error = null;
1843};
1844
1845[Exposed=(Window,Worker)]
1846interface PromiseRejectionEvent : Event {
1847  constructor(DOMString type, PromiseRejectionEventInit eventInitDict);
1848
1849  readonly attribute Promise<any> promise;
1850  readonly attribute any reason;
1851};
1852
1853dictionary PromiseRejectionEventInit : EventInit {
1854  required Promise<any> promise;
1855  any reason;
1856};
1857
1858[LegacyTreatNonObjectAsNull]
1859callback EventHandlerNonNull = any (Event event);
1860typedef EventHandlerNonNull? EventHandler;
1861
1862[LegacyTreatNonObjectAsNull]
1863callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long colno, optional any error);
1864typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
1865
1866[LegacyTreatNonObjectAsNull]
1867callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
1868typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
1869
1870interface mixin GlobalEventHandlers {
1871  attribute EventHandler onabort;
1872  attribute EventHandler onauxclick;
1873  attribute EventHandler onblur;
1874  attribute EventHandler oncancel;
1875  attribute EventHandler oncanplay;
1876  attribute EventHandler oncanplaythrough;
1877  attribute EventHandler onchange;
1878  attribute EventHandler onclick;
1879  attribute EventHandler onclose;
1880  attribute EventHandler oncontextmenu;
1881  attribute EventHandler oncuechange;
1882  attribute EventHandler ondblclick;
1883  attribute EventHandler ondrag;
1884  attribute EventHandler ondragend;
1885  attribute EventHandler ondragenter;
1886  attribute EventHandler ondragleave;
1887  attribute EventHandler ondragover;
1888  attribute EventHandler ondragstart;
1889  attribute EventHandler ondrop;
1890  attribute EventHandler ondurationchange;
1891  attribute EventHandler onemptied;
1892  attribute EventHandler onended;
1893  attribute OnErrorEventHandler onerror;
1894  attribute EventHandler onfocus;
1895  attribute EventHandler onformdata;
1896  attribute EventHandler oninput;
1897  attribute EventHandler oninvalid;
1898  attribute EventHandler onkeydown;
1899  attribute EventHandler onkeypress;
1900  attribute EventHandler onkeyup;
1901  attribute EventHandler onload;
1902  attribute EventHandler onloadeddata;
1903  attribute EventHandler onloadedmetadata;
1904  attribute EventHandler onloadstart;
1905  attribute EventHandler onmousedown;
1906  [LegacyLenientThis] attribute EventHandler onmouseenter;
1907  [LegacyLenientThis] attribute EventHandler onmouseleave;
1908  attribute EventHandler onmousemove;
1909  attribute EventHandler onmouseout;
1910  attribute EventHandler onmouseover;
1911  attribute EventHandler onmouseup;
1912  attribute EventHandler onpause;
1913  attribute EventHandler onplay;
1914  attribute EventHandler onplaying;
1915  attribute EventHandler onprogress;
1916  attribute EventHandler onratechange;
1917  attribute EventHandler onreset;
1918  attribute EventHandler onresize;
1919  attribute EventHandler onscroll;
1920  attribute EventHandler onsecuritypolicyviolation;
1921  attribute EventHandler onseeked;
1922  attribute EventHandler onseeking;
1923  attribute EventHandler onselect;
1924  attribute EventHandler onslotchange;
1925  attribute EventHandler onstalled;
1926  attribute EventHandler onsubmit;
1927  attribute EventHandler onsuspend;
1928  attribute EventHandler ontimeupdate;
1929  attribute EventHandler ontoggle;
1930  attribute EventHandler onvolumechange;
1931  attribute EventHandler onwaiting;
1932  attribute EventHandler onwebkitanimationend;
1933  attribute EventHandler onwebkitanimationiteration;
1934  attribute EventHandler onwebkitanimationstart;
1935  attribute EventHandler onwebkittransitionend;
1936  attribute EventHandler onwheel;
1937};
1938
1939interface mixin WindowEventHandlers {
1940  attribute EventHandler onafterprint;
1941  attribute EventHandler onbeforeprint;
1942  attribute OnBeforeUnloadEventHandler onbeforeunload;
1943  attribute EventHandler onhashchange;
1944  attribute EventHandler onlanguagechange;
1945  attribute EventHandler onmessage;
1946  attribute EventHandler onmessageerror;
1947  attribute EventHandler onoffline;
1948  attribute EventHandler ononline;
1949  attribute EventHandler onpagehide;
1950  attribute EventHandler onpageshow;
1951  attribute EventHandler onpopstate;
1952  attribute EventHandler onrejectionhandled;
1953  attribute EventHandler onstorage;
1954  attribute EventHandler onunhandledrejection;
1955  attribute EventHandler onunload;
1956};
1957
1958interface mixin DocumentAndElementEventHandlers {
1959  attribute EventHandler oncopy;
1960  attribute EventHandler oncut;
1961  attribute EventHandler onpaste;
1962};
1963
1964typedef (DOMString or Function) TimerHandler;
1965
1966interface mixin WindowOrWorkerGlobalScope {
1967  [Replaceable] readonly attribute USVString origin;
1968  readonly attribute boolean isSecureContext;
1969  readonly attribute boolean crossOriginIsolated;
1970
1971  // base64 utility methods
1972  DOMString btoa(DOMString data);
1973  ByteString atob(DOMString data);
1974
1975  // timers
1976  long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
1977  undefined clearTimeout(optional long handle = 0);
1978  long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments);
1979  undefined clearInterval(optional long handle = 0);
1980
1981  // microtask queuing
1982  undefined queueMicrotask(VoidFunction callback);
1983
1984  // ImageBitmap
1985  Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options = {});
1986  Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options = {});
1987};
1988Window includes WindowOrWorkerGlobalScope;
1989WorkerGlobalScope includes WindowOrWorkerGlobalScope;
1990
1991[Exposed=Window]
1992interface DOMParser {
1993  constructor();
1994
1995  [NewObject] Document parseFromString(DOMString string, DOMParserSupportedType type);
1996};
1997
1998enum DOMParserSupportedType {
1999  "text/html",
2000  "text/xml",
2001  "application/xml",
2002  "application/xhtml+xml",
2003  "image/svg+xml"
2004};
2005
2006[Exposed=Window]
2007interface Navigator {
2008  // objects implementing this interface also implement the interfaces given below
2009};
2010Navigator includes NavigatorID;
2011Navigator includes NavigatorLanguage;
2012Navigator includes NavigatorOnLine;
2013Navigator includes NavigatorContentUtils;
2014Navigator includes NavigatorCookies;
2015Navigator includes NavigatorPlugins;
2016Navigator includes NavigatorConcurrentHardware;
2017
2018interface mixin NavigatorID {
2019  readonly attribute DOMString appCodeName; // constant "Mozilla"
2020  readonly attribute DOMString appName; // constant "Netscape"
2021  readonly attribute DOMString appVersion;
2022  readonly attribute DOMString platform;
2023  readonly attribute DOMString product; // constant "Gecko"
2024  [Exposed=Window] readonly attribute DOMString productSub;
2025  readonly attribute DOMString userAgent;
2026  [Exposed=Window] readonly attribute DOMString vendor;
2027  [Exposed=Window] readonly attribute DOMString vendorSub; // constant ""
2028};
2029
2030partial interface mixin NavigatorID {
2031  [Exposed=Window] boolean taintEnabled(); // constant false
2032  [Exposed=Window] readonly attribute DOMString oscpu;
2033};
2034
2035interface mixin NavigatorLanguage {
2036  readonly attribute DOMString language;
2037  readonly attribute FrozenArray<DOMString> languages;
2038};
2039
2040interface mixin NavigatorOnLine {
2041  readonly attribute boolean onLine;
2042};
2043
2044interface mixin NavigatorContentUtils {
2045  [SecureContext] undefined registerProtocolHandler(DOMString scheme, USVString url);
2046  [SecureContext] undefined unregisterProtocolHandler(DOMString scheme, USVString url);
2047};
2048
2049interface mixin NavigatorCookies {
2050  readonly attribute boolean cookieEnabled;
2051};
2052
2053[Exposed=(Window,Worker), Serializable, Transferable]
2054interface ImageBitmap {
2055  readonly attribute unsigned long width;
2056  readonly attribute unsigned long height;
2057  undefined close();
2058};
2059
2060typedef (CanvasImageSource or
2061         Blob or
2062         ImageData) ImageBitmapSource;
2063
2064enum ImageOrientation { "none", "flipY" };
2065enum PremultiplyAlpha { "none", "premultiply", "default" };
2066enum ColorSpaceConversion { "none", "default" };
2067enum ResizeQuality { "pixelated", "low", "medium", "high" };
2068
2069dictionary ImageBitmapOptions {
2070  ImageOrientation imageOrientation = "none";
2071  PremultiplyAlpha premultiplyAlpha = "default";
2072  ColorSpaceConversion colorSpaceConversion = "default";
2073  [EnforceRange] unsigned long resizeWidth;
2074  [EnforceRange] unsigned long resizeHeight;
2075  ResizeQuality resizeQuality = "low";
2076};
2077
2078callback FrameRequestCallback = undefined (DOMHighResTimeStamp time);
2079
2080interface mixin AnimationFrameProvider {
2081  unsigned long requestAnimationFrame(FrameRequestCallback callback);
2082  undefined cancelAnimationFrame(unsigned long handle);
2083};
2084Window includes AnimationFrameProvider;
2085DedicatedWorkerGlobalScope includes AnimationFrameProvider;
2086
2087[Exposed=(Window,Worker,AudioWorklet)]
2088interface MessageEvent : Event {
2089  constructor(DOMString type, optional MessageEventInit eventInitDict = {});
2090
2091  readonly attribute any data;
2092  readonly attribute USVString origin;
2093  readonly attribute DOMString lastEventId;
2094  readonly attribute MessageEventSource? source;
2095  readonly attribute FrozenArray<MessagePort> ports;
2096
2097  undefined initMessageEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional any data = null, optional USVString origin = "", optional DOMString lastEventId = "", optional MessageEventSource? source = null, optional sequence<MessagePort> ports = []);
2098};
2099
2100dictionary MessageEventInit : EventInit {
2101  any data = null;
2102  USVString origin = "";
2103  DOMString lastEventId = "";
2104  MessageEventSource? source = null;
2105  sequence<MessagePort> ports = [];
2106};
2107
2108typedef (WindowProxy or MessagePort or ServiceWorker) MessageEventSource;
2109
2110[Exposed=(Window,Worker)]
2111interface EventSource : EventTarget {
2112  constructor(USVString url, optional EventSourceInit eventSourceInitDict = {});
2113
2114  readonly attribute USVString url;
2115  readonly attribute boolean withCredentials;
2116
2117  // ready state
2118  const unsigned short CONNECTING = 0;
2119  const unsigned short OPEN = 1;
2120  const unsigned short CLOSED = 2;
2121  readonly attribute unsigned short readyState;
2122
2123  // networking
2124  attribute EventHandler onopen;
2125  attribute EventHandler onmessage;
2126  attribute EventHandler onerror;
2127  undefined close();
2128};
2129
2130dictionary EventSourceInit {
2131  boolean withCredentials = false;
2132};
2133
2134enum BinaryType { "blob", "arraybuffer" };
2135[Exposed=(Window,Worker)]
2136interface WebSocket : EventTarget {
2137  constructor(USVString url, optional (DOMString or sequence<DOMString>) protocols = []);
2138
2139  readonly attribute USVString url;
2140
2141  // ready state
2142  const unsigned short CONNECTING = 0;
2143  const unsigned short OPEN = 1;
2144  const unsigned short CLOSING = 2;
2145  const unsigned short CLOSED = 3;
2146  readonly attribute unsigned short readyState;
2147  readonly attribute unsigned long long bufferedAmount;
2148
2149  // networking
2150  attribute EventHandler onopen;
2151  attribute EventHandler onerror;
2152  attribute EventHandler onclose;
2153  readonly attribute DOMString extensions;
2154  readonly attribute DOMString protocol;
2155  undefined close(optional [Clamp] unsigned short code, optional USVString reason);
2156
2157  // messaging
2158  attribute EventHandler onmessage;
2159  attribute BinaryType binaryType;
2160  undefined send(USVString data);
2161  undefined send(Blob data);
2162  undefined send(ArrayBuffer data);
2163  undefined send(ArrayBufferView data);
2164};
2165
2166[Exposed=(Window,Worker)]
2167interface CloseEvent : Event {
2168  constructor(DOMString type, optional CloseEventInit eventInitDict = {});
2169
2170  readonly attribute boolean wasClean;
2171  readonly attribute unsigned short code;
2172  readonly attribute USVString reason;
2173};
2174
2175dictionary CloseEventInit : EventInit {
2176  boolean wasClean = false;
2177  unsigned short code = 0;
2178  USVString reason = "";
2179};
2180
2181[Exposed=(Window,Worker)]
2182interface MessageChannel {
2183  constructor();
2184
2185  readonly attribute MessagePort port1;
2186  readonly attribute MessagePort port2;
2187};
2188
2189[Exposed=(Window,Worker,AudioWorklet), Transferable]
2190interface MessagePort : EventTarget {
2191  undefined postMessage(any message, sequence<object> transfer);
2192  undefined postMessage(any message, optional PostMessageOptions options = {});
2193  undefined start();
2194  undefined close();
2195
2196  // event handlers
2197  attribute EventHandler onmessage;
2198  attribute EventHandler onmessageerror;
2199};
2200
2201dictionary PostMessageOptions {
2202  sequence<object> transfer = [];
2203};
2204
2205[Exposed=(Window,Worker)]
2206interface BroadcastChannel : EventTarget {
2207  constructor(DOMString name);
2208
2209  readonly attribute DOMString name;
2210  undefined postMessage(any message);
2211  undefined close();
2212  attribute EventHandler onmessage;
2213  attribute EventHandler onmessageerror;
2214};
2215
2216[Exposed=Worker]
2217interface WorkerGlobalScope : EventTarget {
2218  readonly attribute WorkerGlobalScope self;
2219  readonly attribute WorkerLocation location;
2220  readonly attribute WorkerNavigator navigator;
2221  undefined importScripts(USVString... urls);
2222
2223  attribute OnErrorEventHandler onerror;
2224  attribute EventHandler onlanguagechange;
2225  attribute EventHandler onoffline;
2226  attribute EventHandler ononline;
2227  attribute EventHandler onrejectionhandled;
2228  attribute EventHandler onunhandledrejection;
2229};
2230
2231[Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
2232interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
2233  [Replaceable] readonly attribute DOMString name;
2234
2235  undefined postMessage(any message, sequence<object> transfer);
2236  undefined postMessage(any message, optional PostMessageOptions options = {});
2237
2238  undefined close();
2239
2240  attribute EventHandler onmessage;
2241  attribute EventHandler onmessageerror;
2242};
2243
2244[Global=(Worker,SharedWorker),Exposed=SharedWorker]
2245interface SharedWorkerGlobalScope : WorkerGlobalScope {
2246  [Replaceable] readonly attribute DOMString name;
2247
2248  undefined close();
2249
2250  attribute EventHandler onconnect;
2251};
2252
2253interface mixin AbstractWorker {
2254  attribute EventHandler onerror;
2255};
2256
2257[Exposed=(Window,DedicatedWorker,SharedWorker)]
2258interface Worker : EventTarget {
2259  constructor(USVString scriptURL, optional WorkerOptions options = {});
2260
2261  undefined terminate();
2262
2263  undefined postMessage(any message, sequence<object> transfer);
2264  undefined postMessage(any message, optional PostMessageOptions options = {});
2265  attribute EventHandler onmessage;
2266  attribute EventHandler onmessageerror;
2267};
2268
2269dictionary WorkerOptions {
2270  WorkerType type = "classic";
2271  RequestCredentials credentials = "same-origin"; // credentials is only used if type is "module"
2272  DOMString name = "";
2273};
2274
2275enum WorkerType { "classic", "module" };
2276
2277Worker includes AbstractWorker;
2278
2279[Exposed=Window]
2280interface SharedWorker : EventTarget {
2281  constructor(USVString scriptURL, optional (DOMString or WorkerOptions) options = {});
2282
2283  readonly attribute MessagePort port;
2284};
2285SharedWorker includes AbstractWorker;
2286
2287interface mixin NavigatorConcurrentHardware {
2288  readonly attribute unsigned long long hardwareConcurrency;
2289};
2290
2291[Exposed=Worker]
2292interface WorkerNavigator {};
2293WorkerNavigator includes NavigatorID;
2294WorkerNavigator includes NavigatorLanguage;
2295WorkerNavigator includes NavigatorOnLine;
2296WorkerNavigator includes NavigatorConcurrentHardware;
2297
2298[Exposed=Worker]
2299interface WorkerLocation {
2300  stringifier readonly attribute USVString href;
2301  readonly attribute USVString origin;
2302  readonly attribute USVString protocol;
2303  readonly attribute USVString host;
2304  readonly attribute USVString hostname;
2305  readonly attribute USVString port;
2306  readonly attribute USVString pathname;
2307  readonly attribute USVString search;
2308  readonly attribute USVString hash;
2309};
2310
2311[Exposed=Worklet, SecureContext]
2312interface WorkletGlobalScope {};
2313
2314[Exposed=Window, SecureContext]
2315interface Worklet {
2316  [NewObject] Promise<undefined> addModule(USVString moduleURL, optional WorkletOptions options = {});
2317};
2318
2319dictionary WorkletOptions {
2320  RequestCredentials credentials = "same-origin";
2321};
2322
2323[Exposed=Window]
2324interface Storage {
2325  readonly attribute unsigned long length;
2326  DOMString? key(unsigned long index);
2327  getter DOMString? getItem(DOMString key);
2328  setter undefined setItem(DOMString key, DOMString value);
2329  deleter undefined removeItem(DOMString key);
2330  undefined clear();
2331};
2332
2333interface mixin WindowSessionStorage {
2334  readonly attribute Storage sessionStorage;
2335};
2336Window includes WindowSessionStorage;
2337
2338interface mixin WindowLocalStorage {
2339  readonly attribute Storage localStorage;
2340};
2341Window includes WindowLocalStorage;
2342
2343[Exposed=Window]
2344interface StorageEvent : Event {
2345  constructor(DOMString type, optional StorageEventInit eventInitDict = {});
2346
2347  readonly attribute DOMString? key;
2348  readonly attribute DOMString? oldValue;
2349  readonly attribute DOMString? newValue;
2350  readonly attribute USVString url;
2351  readonly attribute Storage? storageArea;
2352
2353  undefined initStorageEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional DOMString? key = null, optional DOMString? oldValue = null, optional DOMString? newValue = null, optional USVString url = "", optional Storage? storageArea = null);
2354};
2355
2356dictionary StorageEventInit : EventInit {
2357  DOMString? key = null;
2358  DOMString? oldValue = null;
2359  DOMString? newValue = null;
2360  USVString url = "";
2361  Storage? storageArea = null;
2362};
2363
2364[Exposed=Window]
2365interface HTMLMarqueeElement : HTMLElement {
2366  [HTMLConstructor] constructor();
2367
2368  [CEReactions] attribute DOMString behavior;
2369  [CEReactions] attribute DOMString bgColor;
2370  [CEReactions] attribute DOMString direction;
2371  [CEReactions] attribute DOMString height;
2372  [CEReactions] attribute unsigned long hspace;
2373  [CEReactions] attribute long loop;
2374  [CEReactions] attribute unsigned long scrollAmount;
2375  [CEReactions] attribute unsigned long scrollDelay;
2376  [CEReactions] attribute boolean trueSpeed;
2377  [CEReactions] attribute unsigned long vspace;
2378  [CEReactions] attribute DOMString width;
2379
2380  undefined start();
2381  undefined stop();
2382};
2383
2384[Exposed=Window]
2385interface HTMLFrameSetElement : HTMLElement {
2386  [HTMLConstructor] constructor();
2387
2388  [CEReactions] attribute DOMString cols;
2389  [CEReactions] attribute DOMString rows;
2390};
2391HTMLFrameSetElement includes WindowEventHandlers;
2392
2393[Exposed=Window]
2394interface HTMLFrameElement : HTMLElement {
2395  [HTMLConstructor] constructor();
2396
2397  [CEReactions] attribute DOMString name;
2398  [CEReactions] attribute DOMString scrolling;
2399  [CEReactions] attribute USVString src;
2400  [CEReactions] attribute DOMString frameBorder;
2401  [CEReactions] attribute USVString longDesc;
2402  [CEReactions] attribute boolean noResize;
2403  readonly attribute Document? contentDocument;
2404  readonly attribute WindowProxy? contentWindow;
2405
2406  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
2407  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
2408};
2409
2410partial interface HTMLAnchorElement {
2411  [CEReactions] attribute DOMString coords;
2412  [CEReactions] attribute DOMString charset;
2413  [CEReactions] attribute DOMString name;
2414  [CEReactions] attribute DOMString rev;
2415  [CEReactions] attribute DOMString shape;
2416};
2417
2418partial interface HTMLAreaElement {
2419  [CEReactions] attribute boolean noHref;
2420};
2421
2422partial interface HTMLBodyElement {
2423  [CEReactions] attribute [LegacyNullToEmptyString] DOMString text;
2424  [CEReactions] attribute [LegacyNullToEmptyString] DOMString link;
2425  [CEReactions] attribute [LegacyNullToEmptyString] DOMString vLink;
2426  [CEReactions] attribute [LegacyNullToEmptyString] DOMString aLink;
2427  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
2428  [CEReactions] attribute DOMString background;
2429};
2430
2431partial interface HTMLBRElement {
2432  [CEReactions] attribute DOMString clear;
2433};
2434
2435partial interface HTMLTableCaptionElement {
2436  [CEReactions] attribute DOMString align;
2437};
2438
2439partial interface HTMLTableColElement {
2440  [CEReactions] attribute DOMString align;
2441  [CEReactions] attribute DOMString ch;
2442  [CEReactions] attribute DOMString chOff;
2443  [CEReactions] attribute DOMString vAlign;
2444  [CEReactions] attribute DOMString width;
2445};
2446
2447[Exposed=Window]
2448interface HTMLDirectoryElement : HTMLElement {
2449  [HTMLConstructor] constructor();
2450
2451  [CEReactions] attribute boolean compact;
2452};
2453
2454partial interface HTMLDivElement {
2455  [CEReactions] attribute DOMString align;
2456};
2457
2458partial interface HTMLDListElement {
2459  [CEReactions] attribute boolean compact;
2460};
2461
2462partial interface HTMLEmbedElement {
2463  [CEReactions] attribute DOMString align;
2464  [CEReactions] attribute DOMString name;
2465};
2466
2467[Exposed=Window]
2468interface HTMLFontElement : HTMLElement {
2469  [HTMLConstructor] constructor();
2470
2471  [CEReactions] attribute [LegacyNullToEmptyString] DOMString color;
2472  [CEReactions] attribute DOMString face;
2473  [CEReactions] attribute DOMString size;
2474};
2475
2476partial interface HTMLHeadingElement {
2477  [CEReactions] attribute DOMString align;
2478};
2479
2480partial interface HTMLHRElement {
2481  [CEReactions] attribute DOMString align;
2482  [CEReactions] attribute DOMString color;
2483  [CEReactions] attribute boolean noShade;
2484  [CEReactions] attribute DOMString size;
2485  [CEReactions] attribute DOMString width;
2486};
2487
2488partial interface HTMLHtmlElement {
2489  [CEReactions] attribute DOMString version;
2490};
2491
2492partial interface HTMLIFrameElement {
2493  [CEReactions] attribute DOMString align;
2494  [CEReactions] attribute DOMString scrolling;
2495  [CEReactions] attribute DOMString frameBorder;
2496  [CEReactions] attribute USVString longDesc;
2497
2498  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
2499  [CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
2500};
2501
2502partial interface HTMLImageElement {
2503  [CEReactions] attribute DOMString name;
2504  [CEReactions] attribute USVString lowsrc;
2505  [CEReactions] attribute DOMString align;
2506  [CEReactions] attribute unsigned long hspace;
2507  [CEReactions] attribute unsigned long vspace;
2508  [CEReactions] attribute USVString longDesc;
2509
2510  [CEReactions] attribute [LegacyNullToEmptyString] DOMString border;
2511};
2512
2513partial interface HTMLInputElement {
2514  [CEReactions] attribute DOMString align;
2515  [CEReactions] attribute DOMString useMap;
2516};
2517
2518partial interface HTMLLegendElement {
2519  [CEReactions] attribute DOMString align;
2520};
2521
2522partial interface HTMLLIElement {
2523  [CEReactions] attribute DOMString type;
2524};
2525
2526partial interface HTMLLinkElement {
2527  [CEReactions] attribute DOMString charset;
2528  [CEReactions] attribute DOMString rev;
2529  [CEReactions] attribute DOMString target;
2530};
2531
2532partial interface HTMLMenuElement {
2533  [CEReactions] attribute boolean compact;
2534};
2535
2536partial interface HTMLMetaElement {
2537  [CEReactions] attribute DOMString scheme;
2538};
2539
2540partial interface HTMLObjectElement {
2541  [CEReactions] attribute DOMString align;
2542  [CEReactions] attribute DOMString archive;
2543  [CEReactions] attribute DOMString code;
2544  [CEReactions] attribute boolean declare;
2545  [CEReactions] attribute unsigned long hspace;
2546  [CEReactions] attribute DOMString standby;
2547  [CEReactions] attribute unsigned long vspace;
2548  [CEReactions] attribute DOMString codeBase;
2549  [CEReactions] attribute DOMString codeType;
2550  [CEReactions] attribute DOMString useMap;
2551
2552  [CEReactions] attribute [LegacyNullToEmptyString] DOMString border;
2553};
2554
2555partial interface HTMLOListElement {
2556  [CEReactions] attribute boolean compact;
2557};
2558
2559partial interface HTMLParagraphElement {
2560  [CEReactions] attribute DOMString align;
2561};
2562
2563partial interface HTMLParamElement {
2564  [CEReactions] attribute DOMString type;
2565  [CEReactions] attribute DOMString valueType;
2566};
2567
2568partial interface HTMLPreElement {
2569  [CEReactions] attribute long width;
2570};
2571
2572partial interface HTMLStyleElement {
2573  [CEReactions] attribute DOMString type;
2574};
2575
2576partial interface HTMLScriptElement {
2577  [CEReactions] attribute DOMString charset;
2578  [CEReactions] attribute DOMString event;
2579  [CEReactions] attribute DOMString htmlFor;
2580};
2581
2582partial interface HTMLTableElement {
2583  [CEReactions] attribute DOMString align;
2584  [CEReactions] attribute DOMString border;
2585  [CEReactions] attribute DOMString frame;
2586  [CEReactions] attribute DOMString rules;
2587  [CEReactions] attribute DOMString summary;
2588  [CEReactions] attribute DOMString width;
2589
2590  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
2591  [CEReactions] attribute [LegacyNullToEmptyString] DOMString cellPadding;
2592  [CEReactions] attribute [LegacyNullToEmptyString] DOMString cellSpacing;
2593};
2594
2595partial interface HTMLTableSectionElement {
2596  [CEReactions] attribute DOMString align;
2597  [CEReactions] attribute DOMString ch;
2598  [CEReactions] attribute DOMString chOff;
2599  [CEReactions] attribute DOMString vAlign;
2600};
2601
2602partial interface HTMLTableCellElement {
2603  [CEReactions] attribute DOMString align;
2604  [CEReactions] attribute DOMString axis;
2605  [CEReactions] attribute DOMString height;
2606  [CEReactions] attribute DOMString width;
2607
2608  [CEReactions] attribute DOMString ch;
2609  [CEReactions] attribute DOMString chOff;
2610  [CEReactions] attribute boolean noWrap;
2611  [CEReactions] attribute DOMString vAlign;
2612
2613  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
2614};
2615
2616partial interface HTMLTableRowElement {
2617  [CEReactions] attribute DOMString align;
2618  [CEReactions] attribute DOMString ch;
2619  [CEReactions] attribute DOMString chOff;
2620  [CEReactions] attribute DOMString vAlign;
2621
2622  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
2623};
2624
2625partial interface HTMLUListElement {
2626  [CEReactions] attribute boolean compact;
2627  [CEReactions] attribute DOMString type;
2628};
2629
2630partial interface Document {
2631  [CEReactions] attribute [LegacyNullToEmptyString] DOMString fgColor;
2632  [CEReactions] attribute [LegacyNullToEmptyString] DOMString linkColor;
2633  [CEReactions] attribute [LegacyNullToEmptyString] DOMString vlinkColor;
2634  [CEReactions] attribute [LegacyNullToEmptyString] DOMString alinkColor;
2635  [CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
2636
2637  [SameObject] readonly attribute HTMLCollection anchors;
2638  [SameObject] readonly attribute HTMLCollection applets;
2639
2640  undefined clear();
2641  undefined captureEvents();
2642  undefined releaseEvents();
2643
2644  [SameObject] readonly attribute HTMLAllCollection all;
2645};
2646
2647partial interface Window {
2648  undefined captureEvents();
2649  undefined releaseEvents();
2650
2651  [Replaceable, SameObject] readonly attribute External external;
2652};
2653
2654[Exposed=Window]
2655interface External {
2656  undefined AddSearchProvider();
2657  undefined IsSearchProviderInstalled();
2658};
2659
2660interface mixin NavigatorPlugins {
2661  [SameObject] readonly attribute PluginArray plugins;
2662  [SameObject] readonly attribute MimeTypeArray mimeTypes;
2663  boolean javaEnabled();
2664};
2665
2666[Exposed=Window]
2667interface PluginArray {
2668  undefined refresh();
2669  readonly attribute unsigned long length;
2670  getter object? item(unsigned long index);
2671  object? namedItem(DOMString name);
2672};
2673
2674[Exposed=Window]
2675interface MimeTypeArray {
2676  readonly attribute unsigned long length;
2677  getter object? item(unsigned long index);
2678  object? namedItem(DOMString name);
2679};
2680
2681[Exposed=Window]
2682interface Plugin {
2683  readonly attribute undefined name;
2684  readonly attribute undefined description;
2685  readonly attribute undefined filename;
2686  readonly attribute undefined length;
2687  getter undefined item(unsigned long index);
2688  undefined namedItem(DOMString name);
2689};
2690
2691[Exposed=Window]
2692interface MimeType {
2693  readonly attribute undefined type;
2694  readonly attribute undefined description;
2695  readonly attribute undefined suffixes;
2696  readonly attribute undefined enabledPlugin;
2697};
2698