webidl 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c70923ded9d0a67bde963dcbd83d6bb7b722fff0
4
- data.tar.gz: 74b5f0816cd714e03427f0b0a613c6a26fd4113b
2
+ SHA256:
3
+ metadata.gz: 4f717a323fd847ae04b672085e842823d28d798cdf166f204d066f01cad03899
4
+ data.tar.gz: 01b43d15bca743edd72b9a235d546e70927ead1ec53a2d6e452f950ba84e3b94
5
5
  SHA512:
6
- metadata.gz: a16e4a99ed13e3e6d4d91de2b8828aa64ddbe103fcd571069524c540f4bf50978ef834b3095d539b217309f429e7067da99b9793ecbae54a3ebc9e3daec6ac0a
7
- data.tar.gz: 365147a478bb983160f9426a66fbc9ad707a91ab66e335c247d50d83f5a4b02b5c724335079d4a24685e4e62b65ac02811ea21f6daabea01e9f0af4f74731a49
6
+ metadata.gz: 40da3750a7d1bd3e3dc23cf668ac259d53b75cedef3c6bcf2bdda90fc4267a32f8f81f49b76ed48ccebb7e5f534a5f852eca30895c419ae1184bde8fda655185
7
+ data.tar.gz: b6be4604b58e334ea3365ed3d05d339afed29ddb480c4216f6b6072192d97c2204d51d45de5e1f90d7501ed6cb9f8791caf46f5f8fc28330cd94ae731cb6fee0
data/README.md CHANGED
@@ -3,9 +3,9 @@ webidl
3
3
 
4
4
  This gem provides a pure-ruby parser and code generator for Web IDL, an interface description language for interfaces intended to be implemented in web browsers.
5
5
 
6
- [![Build Status](https://secure.travis-ci.org/jarib/webidl.png)](http://travis-ci.org/jarib/webidl)
7
- [![Coverage Status](https://coveralls.io/repos/jarib/webidl/badge.png)](https://coveralls.io/r/jarib/webidl)
8
- [![Code Climate](https://codeclimate.com/github/jarib/webidl.png)](https://codeclimate.com/github/jarib/webidl)
6
+ [![Build Status](https://secure.travis-ci.org/jarib/webidl.svg)](http://travis-ci.org/jarib/webidl)
7
+ [![Coverage Status](https://coveralls.io/repos/jarib/webidl/badge.svg)](https://coveralls.io/r/jarib/webidl)
8
+ [![Code Climate](https://codeclimate.com/github/jarib/webidl.svg)](https://codeclimate.com/github/jarib/webidl)
9
9
 
10
10
  Problems
11
11
  --------
data/Rakefile CHANGED
@@ -23,8 +23,8 @@ namespace :parser do
23
23
  end
24
24
 
25
25
  namespace :webidl do
26
- WEBIDL_URL = "http://dev.w3.org/2006/webapi/WebIDL/"
27
- HTML5_URL = "https://www.whatwg.org/specs/web-apps/current-work/"
26
+ WEBIDL_URL = "https://heycam.github.io/webidl/"
27
+ HTML5_URL = "https://www.w3.org/TR/html/single-page.html"
28
28
 
29
29
  desc "Download the webidl spec to support/"
30
30
  task :download do
@@ -3,16 +3,17 @@ module WebIDL
3
3
  class Operation < Node
4
4
 
5
5
  attr_reader :type, :name, :args, :specials, :raises
6
- attr_accessor :stringifier
6
+ attr_accessor :extended_attributes, :stringifier
7
7
 
8
8
  def initialize(parent, type, opts = {})
9
- @parent = parent
10
- @type = type
11
- @name = opts[:name] || ''
12
- @static = opts[:static]
13
- @specials = opts[:specials] || []
14
- @args = opts[:args] || []
15
- @raises = opts[:raises] || []
9
+ @parent = parent
10
+ @type = type
11
+ @name = opts[:name] || ''
12
+ @static = opts[:static]
13
+ @specials = opts[:specials] || []
14
+ @args = opts[:args] || []
15
+ @raises = opts[:raises] || []
16
+ @extended_attributes = opts[:extended_attributes] || []
16
17
  end
17
18
 
18
19
  def stringifier?
@@ -333,7 +333,7 @@ module WebIDL
333
333
  end
334
334
 
335
335
  rule Identifiers
336
- ("," IdentifierList)?
336
+ ("," ws IdentifierList)?
337
337
  end
338
338
 
339
339
 
@@ -1,3 +1,3 @@
1
1
  module WebIDL
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
@@ -1,83 +1,57 @@
1
- interface Example {
2
- // this is an IDL definition
1
+ [LegacyUnenumerableNamedProperties]
2
+ interface HTMLAllCollection {
3
+ readonly attribute unsigned long length;
4
+ getter Element? (unsigned long index);
5
+ getter (HTMLCollection or Element)? namedItem(DOMString name);
6
+ legacycaller (HTMLCollection or Element)? item(optional DOMString nameOrItem);
3
7
  };
4
8
 
5
- typedef (Int8Array or Uint8Array or Uint8ClampedArray or
6
- Int16Array or Uint16Array or
7
- Int32Array or Uint32Array or
8
- Float32Array or Float64Array or
9
- DataView) ArrayBufferView;
10
-
11
- interface HTMLAllCollection : HTMLCollection {
12
- // inherits length and 'getter'
13
- Element? item(unsigned long index);
14
- (HTMLCollection or Element)? item(DOMString name);
15
- legacycaller getter (HTMLCollection or Element)? namedItem(DOMString name); // shadows inherited namedItem()
16
- };
17
9
 
18
10
  interface HTMLFormControlsCollection : HTMLCollection {
19
11
  // inherits length and item()
20
- legacycaller getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
12
+ getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
21
13
  };
22
14
 
15
+
23
16
  interface RadioNodeList : NodeList {
24
17
  attribute DOMString value;
25
18
  };
26
19
 
20
+
27
21
  interface HTMLOptionsCollection : HTMLCollection {
28
- // inherits item()
22
+ // inherits item(), namedItem()
29
23
  attribute unsigned long length; // shadows inherited length
30
- legacycaller HTMLOptionElement? (DOMString name);
31
- setter creator void (unsigned long index, HTMLOptionElement? option);
24
+ setter void (unsigned long index, HTMLOptionElement? option);
32
25
  void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
33
26
  void remove(long index);
34
27
  attribute long selectedIndex;
35
28
  };
36
29
 
37
- interface HTMLPropertiesCollection : HTMLCollection {
38
- // inherits length and item()
39
- getter PropertyNodeList? namedItem(DOMString name); // shadows inherited namedItem()
40
- [SameObject] readonly attribute DOMString[] names;
41
- };
42
-
43
- typedef sequence<any> PropertyValueArray;
44
30
 
45
- interface PropertyNodeList : NodeList {
46
- PropertyValueArray getValues();
47
- };
48
-
49
- [OverrideBuiltins, Exposed=(Window,Worker)]
50
- interface DOMStringMap {
51
- getter DOMString (DOMString name);
52
- setter creator void (DOMString name, DOMString value);
53
- deleter void (DOMString name);
54
- };
55
-
56
- interface DOMElementMap {
57
- getter Element (DOMString name);
58
- setter creator void (DOMString name, Element value);
59
- deleter void (DOMString name);
31
+ interface DOMStringList {
32
+ readonly attribute unsigned long length;
33
+ getter DOMString? item(unsigned long index);
34
+ boolean contains(DOMString string);
60
35
  };
61
36
 
62
- typedef (ArrayBuffer or CanvasProxy or MessagePort) Transferable;
63
-
64
- callback FileCallback = void (File file);
65
37
 
66
38
  enum DocumentReadyState { "loading", "interactive", "complete" };
67
39
 
40
+ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
41
+
68
42
  [OverrideBuiltins]
69
- partial /*sealed*/ interface Document {
43
+ partial interface Document {
70
44
  // resource metadata management
71
45
  [PutForwards=href, Unforgeable] readonly attribute Location? location;
72
- attribute DOMString domain;
73
- readonly attribute DOMString referrer;
74
- attribute DOMString cookie;
46
+ attribute USVString domain;
47
+ readonly attribute USVString referrer;
48
+ attribute USVString cookie;
75
49
  readonly attribute DOMString lastModified;
76
50
  readonly attribute DocumentReadyState readyState;
77
51
 
78
52
  // DOM tree accessors
79
53
  getter object (DOMString name);
80
- attribute DOMString title;
54
+ [CEReactions] attribute DOMString title;
81
55
  attribute DOMString dir;
82
56
  attribute HTMLElement? body;
83
57
  readonly attribute HTMLHeadElement? head;
@@ -88,281 +62,264 @@ partial /*sealed*/ interface Document {
88
62
  [SameObject] readonly attribute HTMLCollection forms;
89
63
  [SameObject] readonly attribute HTMLCollection scripts;
90
64
  NodeList getElementsByName(DOMString elementName);
91
- NodeList getItems(optional DOMString typeNames = ""); // microdata
92
- [SameObject] readonly attribute DOMElementMap cssElementMap;
93
- readonly attribute HTMLScriptElement? currentScript;
65
+ readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
94
66
 
95
67
  // dynamic markup insertion
96
68
  Document open(optional DOMString type = "text/html", optional DOMString replace = "");
97
69
  WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false);
98
- void close();
99
- void write(DOMString... text);
100
- void writeln(DOMString... text);
70
+ [CEReactions] void close();
71
+ [CEReactions] void write(DOMString... text);
72
+ [CEReactions] void writeln(DOMString... text);
101
73
 
102
74
  // user interaction
103
75
  readonly attribute WindowProxy? defaultView;
104
76
  readonly attribute Element? activeElement;
105
77
  boolean hasFocus();
106
- attribute DOMString designMode;
107
- boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
78
+ [CEReactions] attribute DOMString designMode;
79
+ [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
108
80
  boolean queryCommandEnabled(DOMString commandId);
109
81
  boolean queryCommandIndeterm(DOMString commandId);
110
82
  boolean queryCommandState(DOMString commandId);
111
83
  boolean queryCommandSupported(DOMString commandId);
112
84
  DOMString queryCommandValue(DOMString commandId);
113
- readonly attribute HTMLCollection commands;
114
85
 
115
86
  // special event handler IDL attributes that only apply to Document objects
116
87
  [LenientThis] attribute EventHandler onreadystatechange;
117
-
118
- // also has obsolete members
119
88
  };
120
89
  Document implements GlobalEventHandlers;
90
+ Document implements DocumentAndElementEventHandlers;
121
91
 
122
- partial interface XMLDocument {
123
- boolean load(DOMString url);
124
- };
125
92
 
93
+ [HTMLConstructor]
126
94
  interface HTMLElement : Element {
127
95
  // metadata attributes
128
- attribute DOMString title;
129
- attribute DOMString lang;
130
- attribute boolean translate;
131
- attribute DOMString dir;
96
+ [CEReactions] attribute DOMString title;
97
+ [CEReactions] attribute DOMString lang;
98
+ [CEReactions] attribute boolean translate;
99
+ [CEReactions] attribute DOMString dir;
132
100
  [SameObject] readonly attribute DOMStringMap dataset;
133
101
 
134
- // microdata
135
- attribute boolean itemScope;
136
- [PutForwards=value] readonly attribute DOMSettableTokenList itemType;
137
- attribute DOMString itemId;
138
- [PutForwards=value] readonly attribute DOMSettableTokenList itemRef;
139
- [PutForwards=value] readonly attribute DOMSettableTokenList itemProp;
140
- readonly attribute HTMLPropertiesCollection properties;
141
- attribute any itemValue; // acts as DOMString on setting
142
-
143
102
  // user interaction
144
- attribute boolean hidden;
103
+ [CEReactions] attribute boolean hidden;
145
104
  void click();
146
- attribute long tabIndex;
105
+ [CEReactions] attribute long tabIndex;
147
106
  void focus();
148
107
  void blur();
149
- attribute DOMString accessKey;
150
- readonly attribute DOMString accessKeyLabel;
151
- attribute boolean draggable;
152
- [PutForwards=value] readonly attribute DOMSettableTokenList dropzone;
153
- attribute HTMLMenuElement? contextMenu;
154
- attribute boolean spellcheck;
108
+ [CEReactions] attribute DOMString accessKey;
109
+ [CEReactions] attribute boolean draggable;
110
+ [CEReactions] attribute boolean spellcheck;
155
111
  void forceSpellCheck();
156
-
157
- // command API
158
- readonly attribute DOMString? commandType;
159
- readonly attribute DOMString? commandLabel;
160
- readonly attribute DOMString? commandIcon;
161
- readonly attribute boolean? commandHidden;
162
- readonly attribute boolean? commandDisabled;
163
- readonly attribute boolean? commandChecked;
112
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText;
164
113
  };
165
114
  HTMLElement implements GlobalEventHandlers;
115
+ HTMLElement implements DocumentAndElementEventHandlers;
166
116
  HTMLElement implements ElementContentEditable;
167
117
 
118
+ // Note: intentionally not [HTMLConstructor]
168
119
  interface HTMLUnknownElement : HTMLElement { };
169
120
 
170
- interface HTMLHtmlElement : HTMLElement {
171
- // also has obsolete members
121
+
122
+ [OverrideBuiltins]
123
+ interface DOMStringMap {
124
+ getter DOMString (DOMString name);
125
+ [CEReactions] setter void (DOMString name, DOMString value);
126
+ [CEReactions] deleter void (DOMString name);
172
127
  };
173
128
 
129
+
130
+ interface HTMLHtmlElement : HTMLElement {};
131
+
132
+
174
133
  interface HTMLHeadElement : HTMLElement {};
175
134
 
135
+
176
136
  interface HTMLTitleElement : HTMLElement {
177
137
  attribute DOMString text;
178
138
  };
179
139
 
140
+
180
141
  interface HTMLBaseElement : HTMLElement {
181
142
  attribute DOMString href;
182
143
  attribute DOMString target;
183
144
  };
184
145
 
185
- interface HTMLLinkElement : HTMLElement {
186
- attribute DOMString href;
187
- attribute DOMString? crossOrigin;
188
- attribute DOMString rel;
189
- readonly attribute DOMTokenList relList;
190
- attribute DOMString media;
191
- attribute DOMString hreflang;
192
- attribute DOMString type;
193
- [PutForwards=value] readonly attribute DOMSettableTokenList sizes;
194
146
 
195
- // also has obsolete members
147
+ interface HTMLLinkElement : HTMLElement {
148
+ [CEReactions] attribute USVString href;
149
+ [CEReactions] attribute DOMString? crossOrigin;
150
+ [CEReactions] attribute DOMString rel;
151
+ [CEReactions] attribute DOMString rev;
152
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
153
+ [CEReactions] attribute DOMString media;
154
+ [CEReactions] attribute DOMString nonce;
155
+ [CEReactions] attribute DOMString hreflang;
156
+ [CEReactions] attribute DOMString type;
157
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
158
+ [CEReactions] attribute DOMString referrerPolicy;
196
159
  };
197
- HTMLLinkElement implements LinkStyle;
160
+ HTMLLinkElement implements LinkStyle;
161
+
198
162
 
199
163
  interface HTMLMetaElement : HTMLElement {
200
164
  attribute DOMString name;
201
165
  attribute DOMString httpEquiv;
202
166
  attribute DOMString content;
203
-
204
- // also has obsolete members
205
167
  };
206
168
 
169
+
207
170
  interface HTMLStyleElement : HTMLElement {
208
171
  attribute DOMString media;
172
+ attribute DOMString nonce;
209
173
  attribute DOMString type;
210
- attribute boolean scoped;
211
174
  };
212
175
  HTMLStyleElement implements LinkStyle;
213
176
 
214
- interface HTMLBodyElement : HTMLElement {
215
177
 
216
- // also has obsolete members
178
+ interface HTMLBodyElement : HTMLElement {
217
179
  };
218
180
  HTMLBodyElement implements WindowEventHandlers;
219
181
 
220
- interface HTMLHeadingElement : HTMLElement {
221
- // also has obsolete members
222
- };
223
182
 
224
- interface HTMLParagraphElement : HTMLElement {
225
- // also has obsolete members
226
- };
183
+ interface HTMLHeadingElement : HTMLElement {};
227
184
 
228
- interface HTMLHRElement : HTMLElement {
229
- // also has obsolete members
230
- };
231
185
 
232
- interface HTMLPreElement : HTMLElement {
233
- // also has obsolete members
234
- };
186
+ interface HTMLParagraphElement : HTMLElement {};
187
+
188
+
189
+ interface HTMLHRElement : HTMLElement {};
190
+
191
+
192
+ interface HTMLPreElement : HTMLElement {};
193
+
235
194
 
236
195
  interface HTMLQuoteElement : HTMLElement {
237
196
  attribute DOMString cite;
238
197
  };
239
198
 
199
+
240
200
  interface HTMLOListElement : HTMLElement {
241
201
  attribute boolean reversed;
242
202
  attribute long start;
243
203
  attribute DOMString type;
244
-
245
- // also has obsolete members
246
204
  };
247
205
 
248
- interface HTMLUListElement : HTMLElement {
249
- // also has obsolete members
250
- };
206
+
207
+ interface HTMLUListElement : HTMLElement {};
208
+
251
209
 
252
210
  interface HTMLLIElement : HTMLElement {
253
211
  attribute long value;
254
-
255
- // also has obsolete members
256
212
  };
257
213
 
258
- interface HTMLDListElement : HTMLElement {
259
- // also has obsolete members
260
- };
261
214
 
262
- interface HTMLDivElement : HTMLElement {
263
- // also has obsolete members
264
- };
215
+ interface HTMLDListElement : HTMLElement {};
216
+
217
+
218
+ interface HTMLDivElement : HTMLElement {};
219
+
265
220
 
266
221
  interface HTMLAnchorElement : HTMLElement {
267
222
  attribute DOMString target;
268
223
  attribute DOMString download;
269
- [PutForwards=value] attribute DOMSettableTokenList ping;
270
224
  attribute DOMString rel;
271
- readonly attribute DOMTokenList relList;
225
+ attribute DOMString rev;
226
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
272
227
  attribute DOMString hreflang;
273
228
  attribute DOMString type;
274
-
275
229
  attribute DOMString text;
276
-
277
- // also has obsolete members
230
+ attribute DOMString referrerPolicy;
278
231
  };
279
- HTMLAnchorElement implements URLUtils;
232
+ HTMLAnchorElement implements HTMLHyperlinkElementUtils;
233
+
280
234
 
281
235
  interface HTMLDataElement : HTMLElement {
282
236
  attribute DOMString value;
283
237
  };
284
238
 
239
+
285
240
  interface HTMLTimeElement : HTMLElement {
286
241
  attribute DOMString dateTime;
287
242
  };
288
243
 
244
+
289
245
  interface HTMLSpanElement : HTMLElement {};
290
246
 
291
- interface HTMLBRElement : HTMLElement {
292
- // also has obsolete members
293
- };
247
+
248
+ interface HTMLBRElement : HTMLElement {};
249
+
294
250
 
295
251
  interface HTMLModElement : HTMLElement {
296
252
  attribute DOMString cite;
297
253
  attribute DOMString dateTime;
298
254
  };
299
255
 
256
+
300
257
  interface HTMLPictureElement : HTMLElement {};
301
258
 
302
- partial interface HTMLSourceElement {
303
- attribute DOMString srcset;
304
- attribute DOMString sizes;
305
- attribute DOMString media;
259
+
260
+ interface HTMLSourceElement : HTMLElement {
261
+ attribute DOMString src;
262
+ attribute DOMString type;
263
+ attribute DOMString srcset;
264
+ attribute DOMString sizes;
265
+ attribute DOMString media;
306
266
  };
307
267
 
268
+
308
269
  [NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
309
270
  interface HTMLImageElement : HTMLElement {
310
- attribute DOMString alt;
311
- attribute DOMString src;
312
- attribute DOMString srcset;
313
- attribute DOMString sizes;
314
- attribute DOMString? crossOrigin;
315
- attribute DOMString useMap;
316
- attribute boolean isMap;
317
- attribute unsigned long width;
318
- attribute unsigned long height;
271
+ attribute DOMString alt;
272
+ attribute DOMString src;
273
+ attribute DOMString srcset;
274
+ attribute DOMString sizes;
275
+ attribute DOMString? crossOrigin;
276
+ attribute DOMString useMap;
277
+ attribute DOMString longDesc;
278
+ attribute boolean isMap;
279
+ attribute unsigned long width;
280
+ attribute unsigned long height;
319
281
  readonly attribute unsigned long naturalWidth;
320
282
  readonly attribute unsigned long naturalHeight;
321
283
  readonly attribute boolean complete;
322
284
  readonly attribute DOMString currentSrc;
323
-
324
- // also has obsolete members
285
+ attribute DOMString referrerPolicy;
325
286
  };
326
287
 
288
+
327
289
  interface HTMLIFrameElement : HTMLElement {
328
290
  attribute DOMString src;
329
291
  attribute DOMString srcdoc;
330
292
  attribute DOMString name;
331
- [PutForwards=value] readonly attribute DOMSettableTokenList sandbox;
332
- attribute boolean seamless;
293
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
333
294
  attribute boolean allowFullscreen;
295
+ attribute boolean allowPaymentRequest;
334
296
  attribute DOMString width;
335
297
  attribute DOMString height;
298
+ attribute DOMString referrerPolicy;
336
299
  readonly attribute Document? contentDocument;
337
300
  readonly attribute WindowProxy? contentWindow;
338
- Document? getSVGDocument();
339
-
340
- // also has obsolete members
341
301
  };
342
302
 
303
+
343
304
  interface HTMLEmbedElement : HTMLElement {
344
305
  attribute DOMString src;
345
306
  attribute DOMString type;
346
307
  attribute DOMString width;
347
308
  attribute DOMString height;
348
- Document? getSVGDocument();
349
309
  legacycaller any (any... arguments);
350
-
351
- // also has obsolete members
352
310
  };
353
311
 
312
+
354
313
  interface HTMLObjectElement : HTMLElement {
355
314
  attribute DOMString data;
356
315
  attribute DOMString type;
357
316
  attribute boolean typeMustMatch;
358
317
  attribute DOMString name;
359
- attribute DOMString useMap;
360
318
  readonly attribute HTMLFormElement? form;
361
319
  attribute DOMString width;
362
320
  attribute DOMString height;
363
321
  readonly attribute Document? contentDocument;
364
322
  readonly attribute WindowProxy? contentWindow;
365
- Document? getSVGDocument();
366
323
 
367
324
  readonly attribute boolean willValidate;
368
325
  readonly attribute ValidityState validity;
@@ -372,17 +329,15 @@ interface HTMLObjectElement : HTMLElement {
372
329
  void setCustomValidity(DOMString error);
373
330
 
374
331
  legacycaller any (any... arguments);
375
-
376
- // also has obsolete members
377
332
  };
378
333
 
334
+
379
335
  interface HTMLParamElement : HTMLElement {
380
336
  attribute DOMString name;
381
337
  attribute DOMString value;
382
-
383
- // also has obsolete members
384
338
  };
385
339
 
340
+
386
341
  interface HTMLVideoElement : HTMLMediaElement {
387
342
  attribute unsigned long width;
388
343
  attribute unsigned long height;
@@ -391,15 +346,10 @@ interface HTMLVideoElement : HTMLMediaElement {
391
346
  attribute DOMString poster;
392
347
  };
393
348
 
349
+
394
350
  [NamedConstructor=Audio(optional DOMString src)]
395
351
  interface HTMLAudioElement : HTMLMediaElement {};
396
352
 
397
- interface HTMLSourceElement : HTMLElement {
398
- attribute DOMString src;
399
- attribute DOMString type;
400
-
401
- // also has obsolete members
402
- };
403
353
 
404
354
  interface HTMLTrackElement : HTMLElement {
405
355
  attribute DOMString kind;
@@ -417,8 +367,13 @@ interface HTMLTrackElement : HTMLElement {
417
367
  readonly attribute TextTrack track;
418
368
  };
419
369
 
370
+
420
371
  enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" };
372
+
373
+
421
374
  typedef (MediaStream or MediaSource or Blob) MediaProvider;
375
+
376
+
422
377
  interface HTMLMediaElement : HTMLElement {
423
378
 
424
379
  // error state
@@ -452,7 +407,7 @@ interface HTMLMediaElement : HTMLElement {
452
407
  attribute double currentTime;
453
408
  void fastSeek(double time);
454
409
  readonly attribute unrestricted double duration;
455
- Date getStartDate();
410
+ object getStartDate();
456
411
  readonly attribute boolean paused;
457
412
  attribute double defaultPlaybackRate;
458
413
  attribute double playbackRate;
@@ -464,10 +419,6 @@ interface HTMLMediaElement : HTMLElement {
464
419
  void play();
465
420
  void pause();
466
421
 
467
- // media controller
468
- attribute DOMString mediaGroup;
469
- attribute MediaController? controller;
470
-
471
422
  // controls
472
423
  attribute boolean controls;
473
424
  attribute double volume;
@@ -481,6 +432,7 @@ interface HTMLMediaElement : HTMLElement {
481
432
  TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
482
433
  };
483
434
 
435
+
484
436
  interface MediaError {
485
437
  const unsigned short MEDIA_ERR_ABORTED = 1;
486
438
  const unsigned short MEDIA_ERR_NETWORK = 2;
@@ -489,6 +441,7 @@ interface MediaError {
489
441
  readonly attribute unsigned short code;
490
442
  };
491
443
 
444
+
492
445
  interface AudioTrackList : EventTarget {
493
446
  readonly attribute unsigned long length;
494
447
  getter AudioTrack (unsigned long index);
@@ -499,6 +452,7 @@ interface AudioTrackList : EventTarget {
499
452
  attribute EventHandler onremovetrack;
500
453
  };
501
454
 
455
+
502
456
  interface AudioTrack {
503
457
  readonly attribute DOMString id;
504
458
  readonly attribute DOMString kind;
@@ -507,6 +461,7 @@ interface AudioTrack {
507
461
  attribute boolean enabled;
508
462
  };
509
463
 
464
+
510
465
  interface VideoTrackList : EventTarget {
511
466
  readonly attribute unsigned long length;
512
467
  getter VideoTrack (unsigned long index);
@@ -518,6 +473,7 @@ interface VideoTrackList : EventTarget {
518
473
  attribute EventHandler onremovetrack;
519
474
  };
520
475
 
476
+
521
477
  interface VideoTrack {
522
478
  readonly attribute DOMString id;
523
479
  readonly attribute DOMString kind;
@@ -526,45 +482,6 @@ interface VideoTrack {
526
482
  attribute boolean selected;
527
483
  };
528
484
 
529
- enum MediaControllerPlaybackState { "waiting", "playing", "ended" };
530
- [Constructor]
531
- interface MediaController : EventTarget {
532
- readonly attribute unsigned short readyState; // uses HTMLMediaElement.readyState's values
533
-
534
- readonly attribute TimeRanges buffered;
535
- readonly attribute TimeRanges seekable;
536
- readonly attribute unrestricted double duration;
537
- attribute double currentTime;
538
-
539
- readonly attribute boolean paused;
540
- readonly attribute MediaControllerPlaybackState playbackState;
541
- readonly attribute TimeRanges played;
542
- void pause();
543
- void unpause();
544
- void play(); // calls play() on all media elements as well
545
-
546
- attribute double defaultPlaybackRate;
547
- attribute double playbackRate;
548
-
549
- attribute double volume;
550
- attribute boolean muted;
551
-
552
- attribute EventHandler onemptied;
553
- attribute EventHandler onloadedmetadata;
554
- attribute EventHandler onloadeddata;
555
- attribute EventHandler oncanplay;
556
- attribute EventHandler oncanplaythrough;
557
- attribute EventHandler onplaying;
558
- attribute EventHandler onended;
559
- attribute EventHandler onwaiting;
560
-
561
- attribute EventHandler ondurationchange;
562
- attribute EventHandler ontimeupdate;
563
- attribute EventHandler onplay;
564
- attribute EventHandler onpause;
565
- attribute EventHandler onratechange;
566
- attribute EventHandler onvolumechange;
567
- };
568
485
 
569
486
  interface TextTrackList : EventTarget {
570
487
  readonly attribute unsigned long length;
@@ -576,8 +493,11 @@ interface TextTrackList : EventTarget {
576
493
  attribute EventHandler onremovetrack;
577
494
  };
578
495
 
496
+
579
497
  enum TextTrackMode { "disabled", "hidden", "showing" };
498
+
580
499
  enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" };
500
+
581
501
  interface TextTrack : EventTarget {
582
502
  readonly attribute TextTrackKind kind;
583
503
  readonly attribute DOMString label;
@@ -597,12 +517,14 @@ interface TextTrack : EventTarget {
597
517
  attribute EventHandler oncuechange;
598
518
  };
599
519
 
520
+
600
521
  interface TextTrackCueList {
601
522
  readonly attribute unsigned long length;
602
523
  getter TextTrackCue (unsigned long index);
603
524
  TextTrackCue? getCueById(DOMString id);
604
525
  };
605
526
 
527
+
606
528
  interface TextTrackCue : EventTarget {
607
529
  readonly attribute TextTrack? track;
608
530
 
@@ -615,112 +537,127 @@ interface TextTrackCue : EventTarget {
615
537
  attribute EventHandler onexit;
616
538
  };
617
539
 
540
+
541
+ [Constructor(double startTime, double endTime, ArrayBuffer data)]
542
+ interface DataCue : TextTrackCue {
543
+ attribute ArrayBuffer data;
544
+ };
545
+
546
+
618
547
  interface TimeRanges {
619
548
  readonly attribute unsigned long length;
620
549
  double start(unsigned long index);
621
550
  double end(unsigned long index);
622
551
  };
623
552
 
553
+
624
554
  [Constructor(DOMString type, optional TrackEventInit eventInitDict)]
625
555
  interface TrackEvent : Event {
626
556
  readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
627
557
  };
628
558
 
629
559
  dictionary TrackEventInit : EventInit {
630
- (VideoTrack or AudioTrack or TextTrack)? track;
560
+ (VideoTrack or AudioTrack or TextTrack)? track = null;
631
561
  };
632
562
 
563
+
633
564
  interface HTMLMapElement : HTMLElement {
634
565
  attribute DOMString name;
635
- readonly attribute HTMLCollection areas;
636
- readonly attribute HTMLCollection images;
566
+ [SameObject] readonly attribute HTMLCollection areas;
567
+ [SameObject] readonly attribute HTMLCollection images;
637
568
  };
638
569
 
570
+
639
571
  interface HTMLAreaElement : HTMLElement {
640
572
  attribute DOMString alt;
641
573
  attribute DOMString coords;
642
574
  attribute DOMString shape;
643
575
  attribute DOMString target;
644
576
  attribute DOMString download;
645
- [PutForwards=value] attribute DOMSettableTokenList ping;
646
577
  attribute DOMString rel;
647
- readonly attribute DOMTokenList relList;
578
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
648
579
  attribute DOMString hreflang;
649
580
  attribute DOMString type;
581
+ attribute DOMString referrerPolicy;
582
+ };
583
+ HTMLAreaElement implements HTMLHyperlinkElementUtils;
650
584
 
651
- // also has obsolete members
585
+
586
+ [NoInterfaceObject]
587
+ interface HTMLHyperlinkElementUtils {
588
+ stringifier attribute USVString href;
589
+ readonly attribute USVString origin;
590
+ attribute USVString protocol;
591
+ attribute USVString username;
592
+ attribute USVString password;
593
+ attribute USVString host;
594
+ attribute USVString hostname;
595
+ attribute USVString port;
596
+ attribute USVString pathname;
597
+ attribute USVString search;
598
+ attribute USVString hash;
652
599
  };
653
- HTMLAreaElement implements URLUtils;
600
+
654
601
 
655
602
  interface HTMLTableElement : HTMLElement {
656
603
  attribute HTMLTableCaptionElement? caption;
657
- HTMLElement createCaption();
604
+ HTMLTableCaptionElement createCaption();
658
605
  void deleteCaption();
659
606
  attribute HTMLTableSectionElement? tHead;
660
- HTMLElement createTHead();
607
+ HTMLTableSectionElement createTHead();
661
608
  void deleteTHead();
662
609
  attribute HTMLTableSectionElement? tFoot;
663
- HTMLElement createTFoot();
610
+ HTMLTableSectionElement createTFoot();
664
611
  void deleteTFoot();
665
- readonly attribute HTMLCollection tBodies;
666
- HTMLElement createTBody();
667
- readonly attribute HTMLCollection rows;
668
- HTMLElement insertRow(optional long index = -1);
612
+ [SameObject] readonly attribute HTMLCollection tBodies;
613
+ HTMLTableSectionElement createTBody();
614
+ [SameObject] readonly attribute HTMLCollection rows;
615
+ HTMLTableRowElement insertRow(optional long index = -1);
669
616
  void deleteRow(long index);
670
- attribute boolean sortable;
671
- void stopSorting();
672
-
673
- // also has obsolete members
674
617
  };
675
618
 
676
- interface HTMLTableCaptionElement : HTMLElement {
677
- // also has obsolete members
678
- };
619
+
620
+ interface HTMLTableCaptionElement : HTMLElement {};
621
+
679
622
 
680
623
  interface HTMLTableColElement : HTMLElement {
681
624
  attribute unsigned long span;
682
-
683
- // also has obsolete members
684
625
  };
685
626
 
627
+
686
628
  interface HTMLTableSectionElement : HTMLElement {
687
- readonly attribute HTMLCollection rows;
629
+ [SameObject] readonly attribute HTMLCollection rows;
688
630
  HTMLElement insertRow(optional long index = -1);
689
631
  void deleteRow(long index);
690
-
691
- // also has obsolete members
692
632
  };
693
633
 
634
+
694
635
  interface HTMLTableRowElement : HTMLElement {
695
636
  readonly attribute long rowIndex;
696
637
  readonly attribute long sectionRowIndex;
697
- readonly attribute HTMLCollection cells;
638
+ [SameObject] readonly attribute HTMLCollection cells;
698
639
  HTMLElement insertCell(optional long index = -1);
699
640
  void deleteCell(long index);
700
-
701
- // also has obsolete members
702
641
  };
703
642
 
704
- interface HTMLTableDataCellElement : HTMLTableCellElement {
705
- // also has obsolete members
706
- };
643
+
644
+ interface HTMLTableDataCellElement : HTMLTableCellElement {};
645
+
707
646
 
708
647
  interface HTMLTableHeaderCellElement : HTMLTableCellElement {
709
648
  attribute DOMString scope;
710
649
  attribute DOMString abbr;
711
- attribute DOMString sorted;
712
- void sort();
713
650
  };
714
651
 
652
+
715
653
  interface HTMLTableCellElement : HTMLElement {
716
654
  attribute unsigned long colSpan;
717
655
  attribute unsigned long rowSpan;
718
- [PutForwards=value] readonly attribute DOMSettableTokenList headers;
656
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList headers;
719
657
  readonly attribute long cellIndex;
720
-
721
- // also has obsolete members
722
658
  };
723
659
 
660
+
724
661
  [OverrideBuiltins]
725
662
  interface HTMLFormElement : HTMLElement {
726
663
  attribute DOMString acceptCharset;
@@ -733,8 +670,8 @@ interface HTMLFormElement : HTMLElement {
733
670
  attribute boolean noValidate;
734
671
  attribute DOMString target;
735
672
 
736
- readonly attribute HTMLFormControlsCollection elements;
737
- readonly attribute long length;
673
+ [SameObject] readonly attribute HTMLFormControlsCollection elements;
674
+ readonly attribute unsigned long length;
738
675
  getter Element (unsigned long index);
739
676
  getter (RadioNodeList or Element) (DOMString name);
740
677
 
@@ -742,16 +679,16 @@ interface HTMLFormElement : HTMLElement {
742
679
  void reset();
743
680
  boolean checkValidity();
744
681
  boolean reportValidity();
745
-
746
- void requestAutocomplete();
747
682
  };
748
683
 
684
+
749
685
  interface HTMLLabelElement : HTMLElement {
750
686
  readonly attribute HTMLFormElement? form;
751
687
  attribute DOMString htmlFor;
752
688
  readonly attribute HTMLElement? control;
753
689
  };
754
690
 
691
+
755
692
  interface HTMLInputElement : HTMLElement {
756
693
  attribute DOMString accept;
757
694
  attribute DOMString alt;
@@ -770,7 +707,6 @@ interface HTMLInputElement : HTMLElement {
770
707
  attribute DOMString formTarget;
771
708
  attribute unsigned long height;
772
709
  attribute boolean indeterminate;
773
- attribute DOMString inputMode;
774
710
  readonly attribute HTMLElement? list;
775
711
  attribute DOMString max;
776
712
  attribute long maxLength;
@@ -781,17 +717,15 @@ interface HTMLInputElement : HTMLElement {
781
717
  attribute DOMString pattern;
782
718
  attribute DOMString placeholder;
783
719
  attribute boolean readOnly;
784
- attribute boolean required;
720
+ attribute boolean _required;
785
721
  attribute unsigned long size;
786
722
  attribute DOMString src;
787
723
  attribute DOMString step;
788
724
  attribute DOMString type;
789
725
  attribute DOMString defaultValue;
790
726
  [TreatNullAs=EmptyString] attribute DOMString value;
791
- attribute Date? valueAsDate;
727
+ attribute object? valueAsDate;
792
728
  attribute unrestricted double valueAsNumber;
793
- attribute double valueLow;
794
- attribute double valueHigh;
795
729
  attribute unsigned long width;
796
730
 
797
731
  void stepUp(optional long n = 1);
@@ -804,19 +738,18 @@ interface HTMLInputElement : HTMLElement {
804
738
  boolean reportValidity();
805
739
  void setCustomValidity(DOMString error);
806
740
 
807
- readonly attribute NodeList labels;
741
+ [SameObject] readonly attribute NodeList labels;
808
742
 
809
743
  void select();
810
- attribute unsigned long selectionStart;
811
- attribute unsigned long selectionEnd;
812
- attribute DOMString selectionDirection;
744
+ attribute unsigned long? selectionStart;
745
+ attribute unsigned long? selectionEnd;
746
+ attribute DOMString? selectionDirection;
813
747
  void setRangeText(DOMString replacement);
814
748
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
815
749
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
816
-
817
- // also has obsolete members
818
750
  };
819
751
 
752
+
820
753
  interface HTMLButtonElement : HTMLElement {
821
754
  attribute boolean autofocus;
822
755
  attribute boolean disabled;
@@ -829,7 +762,6 @@ interface HTMLButtonElement : HTMLElement {
829
762
  attribute DOMString name;
830
763
  attribute DOMString type;
831
764
  attribute DOMString value;
832
- attribute HTMLMenuElement? menu;
833
765
 
834
766
  readonly attribute boolean willValidate;
835
767
  readonly attribute ValidityState validity;
@@ -838,9 +770,10 @@ interface HTMLButtonElement : HTMLElement {
838
770
  boolean reportValidity();
839
771
  void setCustomValidity(DOMString error);
840
772
 
841
- readonly attribute NodeList labels;
773
+ [SameObject] readonly attribute NodeList labels;
842
774
  };
843
775
 
776
+
844
777
  interface HTMLSelectElement : HTMLElement {
845
778
  attribute DOMString autocomplete;
846
779
  attribute boolean autofocus;
@@ -848,21 +781,21 @@ interface HTMLSelectElement : HTMLElement {
848
781
  readonly attribute HTMLFormElement? form;
849
782
  attribute boolean multiple;
850
783
  attribute DOMString name;
851
- attribute boolean required;
784
+ attribute boolean _required;
852
785
  attribute unsigned long size;
853
786
 
854
787
  readonly attribute DOMString type;
855
788
 
856
- readonly attribute HTMLOptionsCollection options;
789
+ [SameObject] readonly attribute HTMLOptionsCollection options;
857
790
  attribute unsigned long length;
858
791
  getter Element? item(unsigned long index);
859
792
  HTMLOptionElement? namedItem(DOMString name);
860
793
  void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
861
794
  void remove(); // ChildNode overload
862
795
  void remove(long index);
863
- setter creator void (unsigned long index, HTMLOptionElement? option);
796
+ setter void (unsigned long index, HTMLOptionElement? option);
864
797
 
865
- readonly attribute HTMLCollection selectedOptions;
798
+ [SameObject] readonly attribute HTMLCollection selectedOptions;
866
799
  attribute long selectedIndex;
867
800
  attribute DOMString value;
868
801
 
@@ -873,18 +806,21 @@ interface HTMLSelectElement : HTMLElement {
873
806
  boolean reportValidity();
874
807
  void setCustomValidity(DOMString error);
875
808
 
876
- readonly attribute NodeList labels;
809
+ [SameObject] readonly attribute NodeList labels;
877
810
  };
878
811
 
812
+
879
813
  interface HTMLDataListElement : HTMLElement {
880
- readonly attribute HTMLCollection options;
814
+ [SameObject] readonly attribute HTMLCollection options;
881
815
  };
882
816
 
817
+
883
818
  interface HTMLOptGroupElement : HTMLElement {
884
819
  attribute boolean disabled;
885
820
  attribute DOMString label;
886
821
  };
887
822
 
823
+
888
824
  [NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
889
825
  interface HTMLOptionElement : HTMLElement {
890
826
  attribute boolean disabled;
@@ -898,6 +834,7 @@ interface HTMLOptionElement : HTMLElement {
898
834
  readonly attribute long index;
899
835
  };
900
836
 
837
+
901
838
  interface HTMLTextAreaElement : HTMLElement {
902
839
  attribute DOMString autocomplete;
903
840
  attribute boolean autofocus;
@@ -905,13 +842,12 @@ interface HTMLTextAreaElement : HTMLElement {
905
842
  attribute DOMString dirName;
906
843
  attribute boolean disabled;
907
844
  readonly attribute HTMLFormElement? form;
908
- attribute DOMString inputMode;
909
845
  attribute long maxLength;
910
846
  attribute long minLength;
911
847
  attribute DOMString name;
912
848
  attribute DOMString placeholder;
913
849
  attribute boolean readOnly;
914
- attribute boolean required;
850
+ attribute boolean _required;
915
851
  attribute unsigned long rows;
916
852
  attribute DOMString wrap;
917
853
 
@@ -927,39 +863,20 @@ interface HTMLTextAreaElement : HTMLElement {
927
863
  boolean reportValidity();
928
864
  void setCustomValidity(DOMString error);
929
865
 
930
- readonly attribute NodeList labels;
866
+ [SameObject] readonly attribute NodeList labels;
931
867
 
932
868
  void select();
933
- attribute unsigned long selectionStart;
934
- attribute unsigned long selectionEnd;
935
- attribute DOMString selectionDirection;
869
+ attribute unsigned long? selectionStart;
870
+ attribute unsigned long? selectionEnd;
871
+ attribute DOMString? selectionDirection;
936
872
  void setRangeText(DOMString replacement);
937
873
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
938
874
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
939
875
  };
940
876
 
941
- interface HTMLKeygenElement : HTMLElement {
942
- attribute boolean autofocus;
943
- attribute DOMString challenge;
944
- attribute boolean disabled;
945
- readonly attribute HTMLFormElement? form;
946
- attribute DOMString keytype;
947
- attribute DOMString name;
948
-
949
- readonly attribute DOMString type;
950
-
951
- readonly attribute boolean willValidate;
952
- readonly attribute ValidityState validity;
953
- readonly attribute DOMString validationMessage;
954
- boolean checkValidity();
955
- boolean reportValidity();
956
- void setCustomValidity(DOMString error);
957
-
958
- readonly attribute NodeList labels;
959
- };
960
877
 
961
878
  interface HTMLOutputElement : HTMLElement {
962
- [PutForwards=value] readonly attribute DOMSettableTokenList htmlFor;
879
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
963
880
  readonly attribute HTMLFormElement? form;
964
881
  attribute DOMString name;
965
882
 
@@ -974,16 +891,18 @@ interface HTMLOutputElement : HTMLElement {
974
891
  boolean reportValidity();
975
892
  void setCustomValidity(DOMString error);
976
893
 
977
- readonly attribute NodeList labels;
894
+ [SameObject] readonly attribute NodeList labels;
978
895
  };
979
896
 
897
+
980
898
  interface HTMLProgressElement : HTMLElement {
981
899
  attribute double value;
982
900
  attribute double max;
983
901
  readonly attribute double position;
984
- readonly attribute NodeList labels;
902
+ [SameObject] readonly attribute NodeList labels;
985
903
  };
986
904
 
905
+
987
906
  interface HTMLMeterElement : HTMLElement {
988
907
  attribute double value;
989
908
  attribute double min;
@@ -991,9 +910,10 @@ interface HTMLMeterElement : HTMLElement {
991
910
  attribute double low;
992
911
  attribute double high;
993
912
  attribute double optimum;
994
- readonly attribute NodeList labels;
913
+ [SameObject] readonly attribute NodeList labels;
995
914
  };
996
915
 
916
+
997
917
  interface HTMLFieldSetElement : HTMLElement {
998
918
  attribute boolean disabled;
999
919
  readonly attribute HTMLFormElement? form;
@@ -1001,7 +921,7 @@ interface HTMLFieldSetElement : HTMLElement {
1001
921
 
1002
922
  readonly attribute DOMString type;
1003
923
 
1004
- readonly attribute HTMLFormControlsCollection elements;
924
+ [SameObject] readonly attribute HTMLCollection elements;
1005
925
 
1006
926
  readonly attribute boolean willValidate;
1007
927
  [SameObject] readonly attribute ValidityState validity;
@@ -1011,21 +931,9 @@ interface HTMLFieldSetElement : HTMLElement {
1011
931
  void setCustomValidity(DOMString error);
1012
932
  };
1013
933
 
934
+
1014
935
  interface HTMLLegendElement : HTMLElement {
1015
936
  readonly attribute HTMLFormElement? form;
1016
-
1017
- // also has obsolete members
1018
- };
1019
-
1020
- enum AutocompleteErrorReason { "" /* empty string */, "cancel", "disabled", "invalid" };
1021
-
1022
- [Constructor(DOMString type, optional AutocompleteErrorEventInit eventInitDict)]
1023
- interface AutocompleteErrorEvent : Event {
1024
- readonly attribute AutocompleteErrorReason reason;
1025
- };
1026
-
1027
- dictionary AutocompleteErrorEventInit : EventInit {
1028
- AutocompleteErrorReason reason;
1029
937
  };
1030
938
 
1031
939
 
@@ -1033,9 +941,10 @@ enum SelectionMode {
1033
941
  "select",
1034
942
  "start",
1035
943
  "end",
1036
- "preserve", // default
944
+ "preserve" // default
1037
945
  };
1038
946
 
947
+
1039
948
  interface ValidityState {
1040
949
  readonly attribute boolean valueMissing;
1041
950
  readonly attribute boolean typeMismatch;
@@ -1050,36 +959,11 @@ interface ValidityState {
1050
959
  readonly attribute boolean valid;
1051
960
  };
1052
961
 
962
+
1053
963
  interface HTMLDetailsElement : HTMLElement {
1054
964
  attribute boolean open;
1055
965
  };
1056
966
 
1057
- interface HTMLMenuElement : HTMLElement {
1058
- attribute DOMString type;
1059
- attribute DOMString label;
1060
-
1061
- // also has obsolete members
1062
- };
1063
-
1064
- interface HTMLMenuItemElement : HTMLElement {
1065
- attribute DOMString type;
1066
- attribute DOMString label;
1067
- attribute DOMString icon;
1068
- attribute boolean disabled;
1069
- attribute boolean checked;
1070
- attribute DOMString radiogroup;
1071
- attribute boolean default;
1072
- readonly attribute HTMLElement? command;
1073
- };
1074
-
1075
- [Constructor(DOMString type, optional RelatedEventInit eventInitDict)]
1076
- interface RelatedEvent : Event {
1077
- readonly attribute EventTarget? relatedTarget;
1078
- };
1079
-
1080
- dictionary RelatedEventInit : EventInit {
1081
- EventTarget? relatedTarget;
1082
- };
1083
967
 
1084
968
  interface HTMLDialogElement : HTMLElement {
1085
969
  attribute boolean open;
@@ -1089,6 +973,7 @@ interface HTMLDialogElement : HTMLElement {
1089
973
  void close(optional DOMString returnValue);
1090
974
  };
1091
975
 
976
+
1092
977
  interface HTMLScriptElement : HTMLElement {
1093
978
  attribute DOMString src;
1094
979
  attribute DOMString type;
@@ -1097,14 +982,17 @@ interface HTMLScriptElement : HTMLElement {
1097
982
  attribute boolean defer;
1098
983
  attribute DOMString? crossOrigin;
1099
984
  attribute DOMString text;
1100
-
1101
- // also has obsolete members
985
+ attribute DOMString nonce;
1102
986
  };
1103
987
 
988
+
989
+ [Exposed=Window,
990
+ HTMLConstructor]
1104
991
  interface HTMLTemplateElement : HTMLElement {
1105
992
  readonly attribute DocumentFragment content;
1106
993
  };
1107
994
 
995
+
1108
996
  typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
1109
997
 
1110
998
  interface HTMLCanvasElement : HTMLElement {
@@ -1114,242 +1002,1731 @@ interface HTMLCanvasElement : HTMLElement {
1114
1002
  RenderingContext? getContext(DOMString contextId, any... arguments);
1115
1003
  boolean probablySupportsContext(DOMString contextId, any... arguments);
1116
1004
 
1117
- void setContext(RenderingContext context);
1118
- CanvasProxy transferControlToProxy();
1119
-
1120
1005
  DOMString toDataURL(optional DOMString type, any... arguments);
1121
- void toBlob(FileCallback? _callback, optional DOMString type, any... arguments);
1006
+ void toBlob(BlobCallback _callback, optional DOMString type, any... arguments);
1122
1007
  };
1123
1008
 
1124
- [Exposed=(Window,Worker)]
1125
- interface CanvasProxy {
1126
- void setContext(RenderingContext context);
1127
- };
1128
- // CanvasProxy implements Transferable;
1009
+ callback BlobCallback = void (Blob? blob);
1129
1010
 
1130
- typedef (HTMLImageElement or
1131
- HTMLVideoElement or
1132
- HTMLCanvasElement or
1133
- CanvasRenderingContext2D or
1134
- ImageBitmap) CanvasImageSource;
1135
1011
 
1136
- enum CanvasFillRule { "nonzero", "evenodd" };
1012
+ [NoInterfaceObject]
1013
+ interface ElementContentEditable {
1014
+ attribute DOMString contentEditable;
1015
+ readonly attribute boolean isContentEditable;
1016
+ };
1137
1017
 
1138
1018
 
1139
- [Constructor(),
1140
- Constructor(unsigned long width, unsigned long height),
1141
- Exposed=(Window,Worker)]
1142
- interface CanvasRenderingContext2D {
1019
+ interface DataTransfer {
1020
+ attribute DOMString dropEffect;
1021
+ attribute DOMString effectAllowed;
1143
1022
 
1144
- // back-reference to the canvas
1145
- readonly attribute HTMLCanvasElement canvas;
1023
+ [SameObject] readonly attribute DataTransferItemList items;
1146
1024
 
1147
- // canvas dimensions
1148
- attribute unsigned long width;
1149
- attribute unsigned long height;
1025
+ void setDragImage(Element image, long x, long y);
1150
1026
 
1151
- // for contexts that aren't directly fixed to a specific canvas
1152
- void commit(); // push the image to the output bitmap
1153
-
1154
- // state
1155
- void save(); // push state on state stack
1156
- void restore(); // pop state stack and restore state
1157
-
1158
- // transformations (default transform is the identity matrix)
1159
- attribute SVGMatrix currentTransform;
1160
- void scale(unrestricted double x, unrestricted double y);
1161
- void rotate(unrestricted double angle);
1162
- void translate(unrestricted double x, unrestricted double y);
1163
- void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
1164
- void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
1165
- void resetTransform();
1166
-
1167
- // compositing
1168
- attribute unrestricted double globalAlpha; // (default 1.0)
1169
- attribute DOMString globalCompositeOperation; // (default source-over)
1170
-
1171
- // image smoothing
1172
- attribute boolean imageSmoothingEnabled; // (default true)
1173
-
1174
- // colours and styles (see also the CanvasDrawingStyles interface)
1175
- attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
1176
- attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
1177
- CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
1178
- CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
1179
- CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
1180
-
1181
- // shadows
1182
- attribute unrestricted double shadowOffsetX; // (default 0)
1183
- attribute unrestricted double shadowOffsetY; // (default 0)
1184
- attribute unrestricted double shadowBlur; // (default 0)
1185
- attribute DOMString shadowColor; // (default transparent black)
1186
-
1187
- // rects
1188
- void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1189
- void fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1190
- void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1191
-
1192
- // path API (see also CanvasPathMethods)
1193
- void beginPath();
1194
- void fill(optional CanvasFillRule fillRule = "nonzero");
1195
- void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
1196
- void stroke();
1197
- void stroke(Path2D path);
1198
- void drawFocusIfNeeded(Element element);
1199
- void drawFocusIfNeeded(Path2D path, Element element);
1200
- void scrollPathIntoView();
1201
- void scrollPathIntoView(Path2D path);
1202
- void clip(optional CanvasFillRule fillRule = "nonzero");
1203
- void clip(Path2D path, optional CanvasFillRule fillRule = "nonzero");
1204
- void resetClip();
1205
- boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero");
1206
- boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero");
1207
- boolean isPointInStroke(unrestricted double x, unrestricted double y);
1208
- boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
1209
-
1210
- // text (see also the CanvasDrawingStyles interface)
1211
- void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
1212
- void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
1213
- TextMetrics measureText(DOMString text);
1214
-
1215
- // drawing images
1216
- void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy);
1217
- void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh);
1218
- void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy, unrestricted double sw, unrestricted double sh, unrestricted double dx, unrestricted double dy, unrestricted double dw, unrestricted double dh);
1219
-
1220
- // hit regions
1221
- void addHitRegion(optional HitRegionOptions options);
1222
- void removeHitRegion(DOMString id);
1223
- void clearHitRegions();
1224
-
1225
- // pixel manipulation
1226
- ImageData createImageData(double sw, double sh);
1227
- ImageData createImageData(ImageData imagedata);
1228
- ImageData getImageData(double sx, double sy, double sw, double sh);
1229
- void putImageData(ImageData imagedata, double dx, double dy);
1230
- void putImageData(ImageData imagedata, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight);
1231
- };
1232
- CanvasRenderingContext2D implements CanvasDrawingStyles;
1233
- CanvasRenderingContext2D implements CanvasPathMethods;
1234
-
1235
- [NoInterfaceObject, Exposed=(Window,Worker)]
1236
- interface CanvasDrawingStyles {
1237
- // line caps/joins
1238
- attribute unrestricted double lineWidth; // (default 1)
1239
- attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
1240
- attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
1241
- attribute unrestricted double miterLimit; // (default 10)
1242
-
1243
- // dashed lines
1244
- void setLineDash(sequence<unrestricted double> segments); // default empty
1245
- sequence<unrestricted double> getLineDash();
1246
- attribute unrestricted double lineDashOffset;
1247
-
1248
- // text
1249
- attribute DOMString font; // (default 10px sans-serif)
1250
- attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
1251
- attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
1252
- attribute DOMString direction; // "ltr", "rtl", "inherit" (default: "inherit")
1253
- };
1254
-
1255
- [NoInterfaceObject, Exposed=(Window,Worker)]
1256
- interface CanvasPathMethods {
1257
- // shared path API methods
1258
- void closePath();
1259
- void moveTo(unrestricted double x, unrestricted double y);
1260
- void lineTo(unrestricted double x, unrestricted double y);
1261
- void quadraticCurveTo(unrestricted double cpx, unrestricted double cpy, unrestricted double x, unrestricted double y);
1262
- void bezierCurveTo(unrestricted double cp1x, unrestricted double cp1y, unrestricted double cp2x, unrestricted double cp2y, unrestricted double x, unrestricted double y);
1263
- void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius);
1264
- void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation);
1265
- void rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1266
- void arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1267
- void ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1268
- };
1269
-
1270
- [Exposed=(Window,Worker)]
1271
- interface CanvasGradient {
1272
- // opaque object
1273
- void addColorStop(double offset, DOMString color);
1274
- };
1275
-
1276
- [Exposed=(Window,Worker)]
1277
- interface CanvasPattern {
1278
- // opaque object
1279
- void setTransform(SVGMatrix transform);
1280
- };
1281
-
1282
- [Exposed=(Window,Worker)]
1283
- interface TextMetrics {
1284
- // x-direction
1285
- readonly attribute double width; // advance width
1286
- readonly attribute double actualBoundingBoxLeft;
1287
- readonly attribute double actualBoundingBoxRight;
1288
-
1289
- // y-direction
1290
- readonly attribute double fontBoundingBoxAscent;
1291
- readonly attribute double fontBoundingBoxDescent;
1292
- readonly attribute double actualBoundingBoxAscent;
1293
- readonly attribute double actualBoundingBoxDescent;
1294
- readonly attribute double emHeightAscent;
1295
- readonly attribute double emHeightDescent;
1296
- readonly attribute double hangingBaseline;
1297
- readonly attribute double alphabeticBaseline;
1298
- readonly attribute double ideographicBaseline;
1299
- };
1300
-
1301
- dictionary HitRegionOptions {
1302
- Path2D? path = null;
1303
- CanvasFillRule fillRule = "nonzero";
1304
- DOMString id = "";
1305
- DOMString? parentID = null;
1306
- DOMString cursor = "inherit";
1307
- // for control-backed regions:
1308
- Element? control = null;
1309
- // for unbacked regions:
1310
- DOMString? label = null;
1311
- DOMString? role = null;
1312
- };
1313
-
1314
- [Constructor(unsigned long sw, unsigned long sh),
1315
- Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh),
1316
- Exposed=(Window,Worker)]
1317
- interface ImageData {
1318
- readonly attribute unsigned long width;
1319
- readonly attribute unsigned long height;
1320
- readonly attribute Uint8ClampedArray data;
1321
- };
1027
+ /* old interface */
1028
+ [SameObject] readonly attribute DOMString[] types;
1029
+ DOMString getData(DOMString format);
1030
+ void setData(DOMString format, DOMString data);
1031
+ void clearData(optional DOMString format);
1032
+ [SameObject] readonly attribute FileList files;
1033
+ };
1034
+
1035
+
1036
+ interface DataTransferItemList {
1037
+ readonly attribute unsigned long length;
1038
+ getter DataTransferItem (unsigned long index);
1039
+ DataTransferItem? add(DOMString data, DOMString type);
1040
+ DataTransferItem? add(File data);
1041
+ void remove(unsigned long index);
1042
+ void clear();
1043
+ };
1044
+
1045
+
1046
+ interface DataTransferItem {
1047
+ readonly attribute DOMString kind;
1048
+ readonly attribute DOMString type;
1049
+ void getAsString(FunctionStringCallback? _callback);
1050
+ File? getAsFile();
1051
+ };
1052
+
1053
+ callback FunctionStringCallback = void (DOMString data);
1054
+
1055
+
1056
+ [Constructor(DOMString type, optional DragEventInit eventInitDict)]
1057
+ interface DragEvent : MouseEvent {
1058
+ readonly attribute DataTransfer? dataTransfer;
1059
+ };
1060
+
1061
+ dictionary DragEventInit : MouseEventInit {
1062
+ DataTransfer? dataTransfer = null;
1063
+ };
1064
+
1065
+
1066
+ [PrimaryGlobal, LegacyUnenumerableNamedProperties]
1067
+ /*sealed*/ interface Window : EventTarget {
1068
+ // the current browsing context
1069
+ [Unforgeable] readonly attribute WindowProxy window;
1070
+ [Replaceable] readonly attribute WindowProxy self;
1071
+ [Unforgeable] readonly attribute Document document;
1072
+ attribute DOMString name;
1073
+ [PutForwards=href, Unforgeable] readonly attribute Location location;
1074
+ readonly attribute History history;
1075
+ [Replaceable] readonly attribute BarProp locationbar;
1076
+ [Replaceable] readonly attribute BarProp menubar;
1077
+ [Replaceable] readonly attribute BarProp personalbar;
1078
+ [Replaceable] readonly attribute BarProp scrollbars;
1079
+ [Replaceable] readonly attribute BarProp statusbar;
1080
+ [Replaceable] readonly attribute BarProp toolbar;
1081
+ attribute DOMString status;
1082
+ void close();
1083
+ readonly attribute boolean closed;
1084
+ void stop();
1085
+ void focus();
1086
+ void blur();
1087
+
1088
+ // other browsing contexts
1089
+ [Replaceable] readonly attribute WindowProxy frames;
1090
+ [Replaceable] readonly attribute unsigned long length;
1091
+ [Unforgeable] readonly attribute WindowProxy top;
1092
+ attribute any opener;
1093
+ [Replaceable] readonly attribute WindowProxy parent;
1094
+ readonly attribute Element? frameElement;
1095
+ WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
1096
+ getter WindowProxy (unsigned long index);
1097
+ getter object (DOMString name);
1098
+ // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic
1099
+ // object on the prototype chain. Indeed, this does not make the global object an exotic object.
1100
+ // Indexed access is taken care of by the WindowProxy exotic object.
1101
+
1102
+ // the user agent
1103
+ readonly attribute Navigator navigator;
1104
+
1105
+ // user prompts
1106
+ void alert();
1107
+ void alert(DOMString message);
1108
+ boolean confirm(optional DOMString message = "");
1109
+ DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
1110
+ void print();
1111
+
1112
+ unsigned long requestAnimationFrame(FrameRequestCallback callback);
1113
+ void cancelAnimationFrame(unsigned long handle);
1114
+ };
1115
+ Window implements GlobalEventHandlers;
1116
+ Window implements WindowEventHandlers;
1117
+
1118
+ callback FrameRequestCallback = void (DOMHighResTimeStamp time);
1119
+
1120
+
1121
+ interface BarProp {
1122
+ readonly attribute boolean visible;
1123
+ };
1124
+
1125
+
1126
+ enum ScrollRestoration { "auto", "manual" };
1127
+
1128
+
1129
+ interface History {
1130
+ readonly attribute unsigned long length;
1131
+ attribute ScrollRestoration scrollRestoration;
1132
+ readonly attribute any state;
1133
+ void go(optional long delta = 0);
1134
+ void back();
1135
+ void forward();
1136
+ void pushState(any data, DOMString title, optional DOMString? url = null);
1137
+ void replaceState(any data, DOMString title, optional DOMString? url = null);
1138
+ };
1139
+
1140
+
1141
+ interface Location {
1142
+ [Unforgeable] stringifier attribute USVString href;
1143
+ [Unforgeable] readonly attribute USVString origin;
1144
+ [Unforgeable] attribute USVString protocol;
1145
+ [Unforgeable] attribute USVString host;
1146
+ [Unforgeable] attribute USVString hostname;
1147
+ [Unforgeable] attribute USVString port;
1148
+ [Unforgeable] attribute USVString pathname;
1149
+ [Unforgeable] attribute USVString search;
1150
+ [Unforgeable] attribute USVString hash;
1151
+
1152
+ [Unforgeable] void assign(USVString url);
1153
+ [Unforgeable] void replace(USVString url);
1154
+ [Unforgeable] void reload();
1155
+
1156
+ [Unforgeable, SameObject] readonly attribute USVString[] ancestorOrigins;
1157
+ };
1158
+
1159
+
1160
+ [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
1161
+ interface PopStateEvent : Event {
1162
+ readonly attribute any state;
1163
+ };
1164
+
1165
+
1166
+ dictionary PopStateEventInit : EventInit {
1167
+ any state = null;
1168
+ };
1169
+
1170
+
1171
+ [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
1172
+ interface HashChangeEvent : Event {
1173
+ readonly attribute USVString oldURL;
1174
+ readonly attribute USVString newURL;
1175
+ };
1176
+
1177
+
1178
+ dictionary HashChangeEventInit : EventInit {
1179
+ USVString oldURL = "";
1180
+ USVString newURL = "";
1181
+ };
1182
+
1183
+
1184
+ [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
1185
+ interface PageTransitionEvent : Event {
1186
+ readonly attribute boolean persisted;
1187
+ };
1188
+
1189
+
1190
+ dictionary PageTransitionEventInit : EventInit {
1191
+ boolean persisted = false;
1192
+ };
1193
+
1194
+
1195
+ interface BeforeUnloadEvent : Event {
1196
+ attribute DOMString returnValue;
1197
+ };
1198
+
1199
+
1200
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1201
+ interface NavigatorOnLine {
1202
+ readonly attribute boolean onLine;
1203
+ };
1204
+
1205
+
1206
+ [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window, Worker)]
1207
+ interface ErrorEvent : Event {
1208
+ readonly attribute DOMString message;
1209
+ readonly attribute DOMString filename;
1210
+ readonly attribute unsigned long lineno;
1211
+ readonly attribute unsigned long colno;
1212
+ readonly attribute any error;
1213
+ };
1214
+
1215
+
1216
+ dictionary ErrorEventInit : EventInit {
1217
+ DOMString message = "";
1218
+ DOMString filename = "";
1219
+ unsigned long lineno = 0;
1220
+ unsigned long colno = 0;
1221
+ any error = null;
1222
+ };
1223
+
1224
+
1225
+ [Constructor(DOMString type, PromiseRejectionEventInit eventInitDict), Exposed=(Window,Worker)]
1226
+ interface PromiseRejectionEvent : Event {
1227
+ readonly attribute Promise<any> promise;
1228
+ readonly attribute any reason;
1229
+ };
1230
+
1231
+
1232
+ dictionary PromiseRejectionEventInit : EventInit {
1233
+ required Promise<any> promise;
1234
+ any reason;
1235
+ };
1236
+
1237
+
1238
+ [TreatNonObjectAsNull]
1239
+ callback EventHandlerNonNull = any (Event event);
1240
+ typedef EventHandlerNonNull? EventHandler;
1241
+
1242
+
1243
+ [TreatNonObjectAsNull]
1244
+ callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long column, optional any error);
1245
+ typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
1246
+
1247
+
1248
+ [TreatNonObjectAsNull]
1249
+ callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
1250
+ typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
1251
+
1252
+
1253
+ [NoInterfaceObject]
1254
+ interface GlobalEventHandlers {
1255
+ attribute EventHandler onabort;
1256
+ attribute EventHandler onblur;
1257
+ attribute EventHandler oncancel;
1258
+ attribute EventHandler oncanplay;
1259
+ attribute EventHandler oncanplaythrough;
1260
+ attribute EventHandler onchange;
1261
+ attribute EventHandler onclick;
1262
+ attribute EventHandler onclose;
1263
+ attribute EventHandler oncuechange;
1264
+ attribute EventHandler ondblclick;
1265
+ attribute EventHandler ondrag;
1266
+ attribute EventHandler ondragend;
1267
+ attribute EventHandler ondragenter;
1268
+ attribute EventHandler ondragexit;
1269
+ attribute EventHandler ondragleave;
1270
+ attribute EventHandler ondragover;
1271
+ attribute EventHandler ondragstart;
1272
+ attribute EventHandler ondrop;
1273
+ attribute EventHandler ondurationchange;
1274
+ attribute EventHandler onemptied;
1275
+ attribute EventHandler onended;
1276
+ attribute OnErrorEventHandler onerror;
1277
+ attribute EventHandler onfocus;
1278
+ attribute EventHandler oninput;
1279
+ attribute EventHandler oninvalid;
1280
+ attribute EventHandler onkeydown;
1281
+ attribute EventHandler onkeypress;
1282
+ attribute EventHandler onkeyup;
1283
+ attribute EventHandler onload;
1284
+ attribute EventHandler onloadeddata;
1285
+ attribute EventHandler onloadedmetadata;
1286
+ attribute EventHandler onloadstart;
1287
+ attribute EventHandler onmousedown;
1288
+ [LenientThis] attribute EventHandler onmouseenter;
1289
+ [LenientThis] attribute EventHandler onmouseleave;
1290
+ attribute EventHandler onmousemove;
1291
+ attribute EventHandler onmouseout;
1292
+ attribute EventHandler onmouseover;
1293
+ attribute EventHandler onmouseup;
1294
+ attribute EventHandler onwheel;
1295
+ attribute EventHandler onpause;
1296
+ attribute EventHandler onplay;
1297
+ attribute EventHandler onplaying;
1298
+ attribute EventHandler onprogress;
1299
+ attribute EventHandler onratechange;
1300
+ attribute EventHandler onreset;
1301
+ attribute EventHandler onresize;
1302
+ attribute EventHandler onscroll;
1303
+ attribute EventHandler onseeked;
1304
+ attribute EventHandler onseeking;
1305
+ attribute EventHandler onselect;
1306
+ attribute EventHandler onshow;
1307
+ attribute EventHandler onstalled;
1308
+ attribute EventHandler onsubmit;
1309
+ attribute EventHandler onsuspend;
1310
+ attribute EventHandler ontimeupdate;
1311
+ attribute EventHandler ontoggle;
1312
+ attribute EventHandler onvolumechange;
1313
+ attribute EventHandler onwaiting;
1314
+ };
1315
+
1316
+
1317
+ [NoInterfaceObject]
1318
+ interface WindowEventHandlers {
1319
+ attribute EventHandler onafterprint;
1320
+ attribute EventHandler onbeforeprint;
1321
+ attribute OnBeforeUnloadEventHandler onbeforeunload;
1322
+ attribute EventHandler onhashchange;
1323
+ attribute EventHandler onlanguagechange;
1324
+ attribute EventHandler onmessage;
1325
+ attribute EventHandler onoffline;
1326
+ attribute EventHandler ononline;
1327
+ attribute EventHandler onpagehide;
1328
+ attribute EventHandler onpageshow;
1329
+ attribute EventHandler onrejectionhandled;
1330
+ attribute EventHandler onpopstate;
1331
+ attribute EventHandler onstorage;
1332
+ attribute EventHandler onunhandledrejection;
1333
+ attribute EventHandler onunload;
1334
+ };
1335
+
1336
+
1337
+ [NoInterfaceObject]
1338
+ interface DocumentAndElementEventHandlers {
1339
+ attribute EventHandler oncopy;
1340
+ attribute EventHandler oncut;
1341
+ attribute EventHandler onpaste;
1342
+ };
1343
+
1344
+
1345
+ typedef (DOMString or Function) TimerHandler;
1346
+
1347
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1348
+ interface WindowOrWorkerGlobalScope {
1349
+ [Replaceable] readonly attribute USVString origin;
1350
+
1351
+ // Base64 utility methods (WindowBase64)
1352
+ DOMString btoa(DOMString btoa);
1353
+ DOMString atob(DOMString atob);
1354
+
1355
+ // Timers (WindowTimers)
1356
+ long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments);
1357
+ void clearTimeout(optional long handle = 0);
1358
+ long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments);
1359
+ void clearInterval(optional long handle = 0);
1360
+
1361
+ // ImageBitmap, Images (ImageBitmapFactories)
1362
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
1363
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1364
+ };
1365
+ Window implements WindowOrWorkerGlobalScope;
1366
+ WorkerGlobalScope implements WindowOrWorkerGlobalScope;
1367
+
1368
+
1369
+ interface Navigator {
1370
+ // objects implementing this interface also implement the interfaces given below
1371
+ };
1372
+ Navigator implements NavigatorID;
1373
+ Navigator implements NavigatorLanguage;
1374
+ Navigator implements NavigatorOnLine;
1375
+ Navigator implements NavigatorContentUtils;
1376
+ Navigator implements NavigatorCookies;
1377
+
1378
+
1379
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1380
+ interface NavigatorID {
1381
+ [Exposed=Window] readonly attribute DOMString appCodeName; // constant "Mozilla"
1382
+ readonly attribute DOMString appName; // constant "Netscape"
1383
+ readonly attribute DOMString appVersion;
1384
+ readonly attribute DOMString platform;
1385
+ [Exposed=Window]readonly attribute DOMString product; // constant "Gecko"
1386
+ readonly attribute DOMString userAgent;
1387
+ };
1388
+
1389
+
1390
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1391
+ interface NavigatorLanguage {
1392
+ readonly attribute DOMString? language;
1393
+ readonly attribute DOMString[] languages;
1394
+ };
1395
+
1396
+
1397
+ [NoInterfaceObject]
1398
+ interface NavigatorContentUtils {
1399
+ // content handler registration
1400
+ void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
1401
+ void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
1402
+ DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
1403
+ DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
1404
+ void unregisterProtocolHandler(DOMString scheme, DOMString url);
1405
+ void unregisterContentHandler(DOMString mimeType, DOMString url);
1406
+ };
1407
+
1408
+
1409
+ [NoInterfaceObject]
1410
+ interface NavigatorCookies {
1411
+ readonly attribute boolean cookieEnabled;
1412
+ };
1413
+
1414
+
1415
+ [Exposed=(Window, Worker), Serializable, Transferable]
1416
+ interface ImageBitmap {
1417
+ readonly attribute unsigned long width;
1418
+ readonly attribute unsigned long height;
1419
+ };
1420
+
1421
+ typedef (HTMLImageElement or
1422
+ HTMLVideoElement or
1423
+ HTMLCanvasElement or
1424
+ Blob or
1425
+ ImageData or
1426
+ CanvasRenderingContext2D or
1427
+ ImageBitmap) ImageBitmapSource;
1428
+
1429
+
1430
+ // Note: intentionally not [HTMLConstructor]
1431
+ interface HTMLAppletElement : HTMLElement {
1432
+ attribute DOMString align;
1433
+ attribute DOMString alt;
1434
+ attribute DOMString archive;
1435
+ attribute DOMString code;
1436
+ attribute USVString codeBase;
1437
+ attribute DOMString height;
1438
+ attribute unsigned long hspace;
1439
+ attribute DOMString name;
1440
+ attribute USVString _object; // the underscore is not part of the identifier
1441
+ attribute unsigned long vspace;
1442
+ attribute DOMString width;
1443
+ };
1444
+
1445
+
1446
+ [HTMLConstructor]
1447
+ interface HTMLMarqueeElement : HTMLElement {
1448
+ [CEReactions] attribute DOMString behavior;
1449
+ [CEReactions] attribute DOMString bgColor;
1450
+ [CEReactions] attribute DOMString direction;
1451
+ [CEReactions] attribute DOMString height;
1452
+ [CEReactions] attribute unsigned long hspace;
1453
+ [CEReactions] attribute long loop;
1454
+ [CEReactions] attribute unsigned long scrollAmount;
1455
+ [CEReactions] attribute unsigned long scrollDelay;
1456
+ [CEReactions] attribute boolean trueSpeed;
1457
+ [CEReactions] attribute unsigned long vspace;
1458
+ [CEReactions] attribute DOMString width;
1459
+
1460
+ attribute EventHandler onbounce;
1461
+ attribute EventHandler onfinish;
1462
+ attribute EventHandler onstart;
1463
+
1464
+ void start();
1465
+ void stop();
1466
+ };
1467
+
1468
+
1469
+ [HTMLConstructor]
1470
+ interface HTMLFrameSetElement : HTMLElement {
1471
+ [CEReactions] attribute DOMString cols;
1472
+ [CEReactions] attribute DOMString rows;
1473
+ };
1474
+ HTMLFrameSetElement implements WindowEventHandlers;
1475
+
1476
+
1477
+ [HTMLConstructor]
1478
+ interface HTMLFrameElement : HTMLElement {
1479
+ [CEReactions] attribute DOMString name;
1480
+ [CEReactions] attribute DOMString scrolling;
1481
+ [CEReactions] attribute USVString src;
1482
+ [CEReactions] attribute DOMString frameBorder;
1483
+ [CEReactions] attribute USVString longDesc;
1484
+ [CEReactions] attribute boolean noResize;
1485
+ readonly attribute Document? contentDocument;
1486
+ readonly attribute WindowProxy? contentWindow;
1487
+
1488
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
1489
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
1490
+ };
1491
+
1492
+
1493
+ partial interface HTMLAnchorElement {
1494
+ [CEReactions] attribute DOMString coords;
1495
+ [CEReactions] attribute DOMString charset;
1496
+ [CEReactions] attribute DOMString name;
1497
+ [CEReactions] attribute DOMString shape;
1498
+ };
1499
+
1500
+
1501
+ partial interface HTMLAreaElement {
1502
+ [CEReactions] attribute boolean noHref;
1503
+ };
1504
+
1505
+
1506
+ partial interface HTMLBodyElement {
1507
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString text;
1508
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString link;
1509
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink;
1510
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink;
1511
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1512
+ attribute DOMString background;
1513
+ };
1514
+
1515
+
1516
+ partial interface HTMLBRElement {
1517
+ [CEReactions] attribute DOMString clear;
1518
+ };
1519
+
1520
+
1521
+ partial interface HTMLTableCaptionElement {
1522
+ [CEReactions] attribute DOMString align;
1523
+ };
1524
+
1525
+
1526
+ partial interface HTMLTableColElement {
1527
+ [CEReactions] attribute DOMString align;
1528
+ [CEReactions] attribute DOMString ch;
1529
+ [CEReactions] attribute DOMString chOff;
1530
+ [CEReactions] attribute DOMString vAlign;
1531
+ [CEReactions] attribute DOMString width;
1532
+ };
1533
+
1534
+
1535
+ [HTMLConstructor]
1536
+ interface HTMLDirectoryElement : HTMLElement {
1537
+ [CEReactions] attribute boolean compact;
1538
+ };
1539
+
1540
+
1541
+ partial interface HTMLDivElement {
1542
+ [CEReactions] attribute DOMString align;
1543
+ };
1544
+
1545
+
1546
+ partial interface HTMLDListElement {
1547
+ [CEReactions] attribute boolean compact;
1548
+ };
1549
+
1550
+
1551
+ partial interface HTMLEmbedElement {
1552
+ [CEReactions] attribute DOMString align;
1553
+ [CEReactions] attribute DOMString name;
1554
+ };
1555
+
1556
+
1557
+ [HTMLConstructor]
1558
+ interface HTMLFontElement : HTMLElement {
1559
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString color;
1560
+ [CEReactions] attribute DOMString face;
1561
+ [CEReactions] attribute DOMString size;
1562
+ };
1563
+
1564
+
1565
+ partial interface HTMLHeadingElement {
1566
+ [CEReactions] attribute DOMString align;
1567
+ };
1568
+
1569
+
1570
+ partial interface HTMLHRElement {
1571
+ [CEReactions] attribute DOMString align;
1572
+ [CEReactions] attribute DOMString color;
1573
+ [CEReactions] attribute boolean noShade;
1574
+ [CEReactions] attribute DOMString size;
1575
+ [CEReactions] attribute DOMString width;
1576
+ };
1577
+
1578
+
1579
+ partial interface HTMLHtmlElement {
1580
+ [CEReactions] attribute DOMString version;
1581
+ };
1582
+
1583
+
1584
+ partial interface HTMLIFrameElement {
1585
+ [CEReactions] attribute DOMString align;
1586
+ [CEReactions] attribute DOMString scrolling;
1587
+ [CEReactions] attribute DOMString frameBorder;
1588
+ [CEReactions] attribute USVString longDesc;
1589
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
1590
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
1591
+ };
1592
+
1593
+
1594
+ partial interface HTMLImageElement {
1595
+ [CEReactions] attribute DOMString name;
1596
+ [CEReactions] attribute USVString lowsrc;
1597
+ [CEReactions] attribute DOMString align;
1598
+ [CEReactions] attribute unsigned long hspace;
1599
+ [CEReactions] attribute unsigned long vspace;
1600
+
1601
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
1602
+ };
1603
+
1604
+
1605
+ partial interface HTMLInputElement {
1606
+ [CEReactions] attribute DOMString align;
1607
+ [CEReactions] attribute DOMString useMap;
1608
+ };
1609
+
1610
+
1611
+ partial interface HTMLLegendElement {
1612
+ [CEReactions] attribute DOMString align;
1613
+ };
1614
+
1615
+
1616
+ partial interface HTMLLIElement {
1617
+ [CEReactions] attribute DOMString type;
1618
+ };
1619
+
1620
+
1621
+ partial interface HTMLLinkElement {
1622
+ [CEReactions] attribute DOMString charset;
1623
+ [CEReactions] attribute DOMString target;
1624
+ };
1625
+
1626
+
1627
+ partial interface HTMLMenuElement {
1628
+ [CEReactions] attribute boolean compact;
1629
+ };
1630
+
1631
+
1632
+ partial interface HTMLMetaElement {
1633
+ [CEReactions] attribute DOMString scheme;
1634
+ };
1635
+
1636
+
1637
+ partial interface HTMLObjectElement {
1638
+ [CEReactions] attribute DOMString align;
1639
+ [CEReactions] attribute DOMString archive;
1640
+ [CEReactions] attribute DOMString code;
1641
+ [CEReactions] attribute boolean declare;
1642
+ [CEReactions] attribute unsigned long hspace;
1643
+ [CEReactions] attribute DOMString standby;
1644
+ [CEReactions] attribute unsigned long vspace;
1645
+ [CEReactions] attribute DOMString codeBase;
1646
+ [CEReactions] attribute DOMString codeType;
1647
+
1648
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
1649
+ };
1650
+
1651
+
1652
+ partial interface HTMLOListElement {
1653
+ [CEReactions] attribute boolean compact;
1654
+ };
1655
+
1656
+
1657
+ partial interface HTMLParagraphElement {
1658
+ [CEReactions] attribute DOMString align;
1659
+ };
1660
+
1661
+
1662
+ partial interface HTMLParamElement {
1663
+ [CEReactions] attribute DOMString type;
1664
+ [CEReactions] attribute DOMString valueType;
1665
+ };
1666
+
1667
+
1668
+ partial interface HTMLPreElement {
1669
+ [CEReactions] attribute long width;
1670
+ };
1671
+
1672
+
1673
+ partial interface HTMLScriptElement {
1674
+ [CEReactions] attribute DOMString event;
1675
+ [CEReactions] attribute DOMString htmlFor;
1676
+ };
1677
+
1678
+
1679
+ partial interface HTMLTableElement {
1680
+ [CEReactions] attribute DOMString align;
1681
+ [CEReactions] attribute DOMString border;
1682
+ [CEReactions] attribute DOMString frame;
1683
+ [CEReactions] attribute DOMString rules;
1684
+ [CEReactions] attribute DOMString summary;
1685
+ [CEReactions] attribute DOMString width;
1686
+
1687
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1688
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding;
1689
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
1690
+ };
1691
+
1692
+
1693
+ partial interface HTMLTableSectionElement {
1694
+ [CEReactions] attribute DOMString align;
1695
+ [CEReactions] attribute DOMString ch;
1696
+ [CEReactions] attribute DOMString chOff;
1697
+ [CEReactions] attribute DOMString vAlign;
1698
+ };
1699
+
1700
+
1701
+ partial interface HTMLTableCellElement {
1702
+ [CEReactions] attribute DOMString align;
1703
+ [CEReactions] attribute DOMString axis;
1704
+ [CEReactions] attribute DOMString height;
1705
+ [CEReactions] attribute DOMString width;
1706
+
1707
+ [CEReactions] attribute DOMString ch;
1708
+ [CEReactions] attribute DOMString chOff;
1709
+ [CEReactions] attribute boolean noWrap;
1710
+ [CEReactions] attribute DOMString vAlign;
1711
+
1712
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1713
+ };
1714
+
1715
+
1716
+ partial interface HTMLTableRowElement {
1717
+ [CEReactions] attribute DOMString align;
1718
+ [CEReactions] attribute DOMString ch;
1719
+ [CEReactions] attribute DOMString chOff;
1720
+ [CEReactions] attribute DOMString vAlign;
1721
+
1722
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1723
+ };
1724
+
1725
+
1726
+ partial interface HTMLUListElement {
1727
+ [CEReactions] attribute boolean compact;
1728
+ [CEReactions] attribute DOMString type;
1729
+ };
1730
+
1731
+
1732
+ partial interface Document {
1733
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor;
1734
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor;
1735
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor;
1736
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor;
1737
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1738
+
1739
+ [SameObject] readonly attribute HTMLCollection anchors;
1740
+ [SameObject] readonly attribute HTMLCollection applets;
1741
+
1742
+ void clear();
1743
+ void captureEvents();
1744
+ void releaseEvents();
1745
+
1746
+ [SameObject] readonly attribute HTMLAllCollection all;
1747
+ };
1748
+
1749
+
1750
+ partial interface Window {
1751
+ void captureEvents();
1752
+ void releaseEvents();
1753
+
1754
+ [Replaceable, SameObject] readonly attribute External external;
1755
+ };
1756
+
1757
+
1758
+ [NoInterfaceObject]
1759
+ interface External {
1760
+ void AddSearchProvider();
1761
+ void IsSearchProviderInstalled();
1762
+ };
1763
+
1764
+
1765
+ Navigator implements NavigatorPlugins;
1766
+
1767
+ [NoInterfaceObject]
1768
+ interface NavigatorPlugins {
1769
+ [SameObject] readonly attribute PluginArray plugins;
1770
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
1771
+ boolean javaEnabled();
1772
+ };
1773
+
1774
+
1775
+ interface PluginArray {
1776
+ void refresh(optional boolean reload = false);
1777
+ readonly attribute unsigned long length;
1778
+ getter Plugin? item(unsigned long index);
1779
+ getter Plugin? namedItem(DOMString name);
1780
+ };
1781
+
1782
+
1783
+ interface MimeTypeArray {
1784
+ readonly attribute unsigned long length;
1785
+ getter MimeType? item(unsigned long index);
1786
+ getter MimeType? namedItem(DOMString name);
1787
+ };
1788
+
1789
+
1790
+ interface Plugin {
1791
+ readonly attribute DOMString name;
1792
+ readonly attribute DOMString description;
1793
+ readonly attribute DOMString filename;
1794
+ readonly attribute unsigned long length;
1795
+ getter MimeType? item(unsigned long index);
1796
+ getter MimeType? namedItem(DOMString name);
1797
+ };
1798
+
1799
+
1800
+ interface MimeType {
1801
+ readonly attribute DOMString type;
1802
+ readonly attribute DOMString description;
1803
+ readonly attribute DOMString suffixes; // comma-separated
1804
+ readonly attribute Plugin enabledPlugin;
1805
+ };
1806
+
1807
+
1808
+ [LegacyUnenumerableNamedProperties]
1809
+ interface HTMLAllCollection {
1810
+ readonly attribute unsigned long length;
1811
+ getter Element? (unsigned long index);
1812
+ getter (HTMLCollection or Element)? namedItem(DOMString name);
1813
+ legacycaller (HTMLCollection or Element)? item(optional DOMString nameOrItem);
1814
+ };
1815
+
1816
+ interface HTMLFormControlsCollection : HTMLCollection {
1817
+ // inherits length and item()
1818
+ getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
1819
+ };
1820
+
1821
+ interface RadioNodeList : NodeList {
1822
+ attribute DOMString value;
1823
+ };
1824
+
1825
+ interface HTMLOptionsCollection : HTMLCollection {
1826
+ // inherits item(), namedItem()
1827
+ attribute unsigned long length; // shadows inherited length
1828
+ setter void (unsigned long index, HTMLOptionElement? option);
1829
+ void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
1830
+ void remove(long index);
1831
+ attribute long selectedIndex;
1832
+ };
1833
+
1834
+ interface DOMStringList {
1835
+ readonly attribute unsigned long length;
1836
+ getter DOMString? item(unsigned long index);
1837
+ boolean contains(DOMString string);
1838
+ };
1839
+
1840
+ enum DocumentReadyState { "loading", "interactive", "complete" };
1841
+
1842
+ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
1843
+
1844
+ [OverrideBuiltins]
1845
+ partial interface Document {
1846
+ // resource metadata management
1847
+ [PutForwards=href, Unforgeable] readonly attribute Location? location;
1848
+ attribute USVString domain;
1849
+ readonly attribute USVString referrer;
1850
+ attribute USVString cookie;
1851
+ readonly attribute DOMString lastModified;
1852
+ readonly attribute DocumentReadyState readyState;
1853
+
1854
+ // DOM tree accessors
1855
+ getter object (DOMString name);
1856
+ [CEReactions] attribute DOMString title;
1857
+ attribute DOMString dir;
1858
+ attribute HTMLElement? body;
1859
+ readonly attribute HTMLHeadElement? head;
1860
+ [SameObject] readonly attribute HTMLCollection images;
1861
+ [SameObject] readonly attribute HTMLCollection embeds;
1862
+ [SameObject] readonly attribute HTMLCollection plugins;
1863
+ [SameObject] readonly attribute HTMLCollection links;
1864
+ [SameObject] readonly attribute HTMLCollection forms;
1865
+ [SameObject] readonly attribute HTMLCollection scripts;
1866
+ NodeList getElementsByName(DOMString elementName);
1867
+ readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
1868
+
1869
+ // dynamic markup insertion
1870
+ Document open(optional DOMString type = "text/html", optional DOMString replace = "");
1871
+ WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false);
1872
+ [CEReactions] void close();
1873
+ [CEReactions] void write(DOMString... text);
1874
+ [CEReactions] void writeln(DOMString... text);
1875
+
1876
+ // user interaction
1877
+ readonly attribute WindowProxy? defaultView;
1878
+ readonly attribute Element? activeElement;
1879
+ boolean hasFocus();
1880
+ [CEReactions] attribute DOMString designMode;
1881
+ [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
1882
+ boolean queryCommandEnabled(DOMString commandId);
1883
+ boolean queryCommandIndeterm(DOMString commandId);
1884
+ boolean queryCommandState(DOMString commandId);
1885
+ boolean queryCommandSupported(DOMString commandId);
1886
+ DOMString queryCommandValue(DOMString commandId);
1887
+
1888
+ // special event handler IDL attributes that only apply to Document objects
1889
+ [LenientThis] attribute EventHandler onreadystatechange;
1890
+ };
1891
+ Document implements GlobalEventHandlers;
1892
+ Document implements DocumentAndElementEventHandlers;
1893
+
1894
+ [HTMLConstructor]
1895
+ interface HTMLElement : Element {
1896
+ // metadata attributes
1897
+ [CEReactions] attribute DOMString title;
1898
+ [CEReactions] attribute DOMString lang;
1899
+ [CEReactions] attribute boolean translate;
1900
+ [CEReactions] attribute DOMString dir;
1901
+ [SameObject] readonly attribute DOMStringMap dataset;
1902
+
1903
+ // user interaction
1904
+ [CEReactions] attribute boolean hidden;
1905
+ void click();
1906
+ [CEReactions] attribute long tabIndex;
1907
+ void focus();
1908
+ void blur();
1909
+ [CEReactions] attribute DOMString accessKey;
1910
+ [CEReactions] attribute boolean draggable;
1911
+ [CEReactions] attribute boolean spellcheck;
1912
+ void forceSpellCheck();
1913
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText;
1914
+ };
1915
+ HTMLElement implements GlobalEventHandlers;
1916
+ HTMLElement implements DocumentAndElementEventHandlers;
1917
+ HTMLElement implements ElementContentEditable;
1918
+
1919
+ // Note: intentionally not [HTMLConstructor]
1920
+ interface HTMLUnknownElement : HTMLElement { };
1921
+
1922
+ [OverrideBuiltins]
1923
+ interface DOMStringMap {
1924
+ getter DOMString (DOMString name);
1925
+ [CEReactions] setter void (DOMString name, DOMString value);
1926
+ [CEReactions] deleter void (DOMString name);
1927
+ };
1928
+
1929
+ interface HTMLHtmlElement : HTMLElement {};
1930
+
1931
+ interface HTMLHeadElement : HTMLElement {};
1932
+
1933
+ interface HTMLTitleElement : HTMLElement {
1934
+ attribute DOMString text;
1935
+ };
1936
+
1937
+ interface HTMLBaseElement : HTMLElement {
1938
+ attribute DOMString href;
1939
+ attribute DOMString target;
1940
+ };
1941
+
1942
+ interface HTMLLinkElement : HTMLElement {
1943
+ [CEReactions] attribute USVString href;
1944
+ [CEReactions] attribute DOMString? crossOrigin;
1945
+ [CEReactions] attribute DOMString rel;
1946
+ [CEReactions] attribute DOMString rev;
1947
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
1948
+ [CEReactions] attribute DOMString media;
1949
+ [CEReactions] attribute DOMString nonce;
1950
+ [CEReactions] attribute DOMString hreflang;
1951
+ [CEReactions] attribute DOMString type;
1952
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
1953
+ [CEReactions] attribute DOMString referrerPolicy;
1954
+ };
1955
+ HTMLLinkElement implements LinkStyle;
1956
+
1957
+ interface HTMLMetaElement : HTMLElement {
1958
+ attribute DOMString name;
1959
+ attribute DOMString httpEquiv;
1960
+ attribute DOMString content;
1961
+ };
1962
+
1963
+ interface HTMLStyleElement : HTMLElement {
1964
+ attribute DOMString media;
1965
+ attribute DOMString nonce;
1966
+ attribute DOMString type;
1967
+ };
1968
+ HTMLStyleElement implements LinkStyle;
1969
+
1970
+ interface HTMLBodyElement : HTMLElement {
1971
+ };
1972
+ HTMLBodyElement implements WindowEventHandlers;
1973
+
1974
+ interface HTMLHeadingElement : HTMLElement {};
1975
+
1976
+ interface HTMLParagraphElement : HTMLElement {};
1977
+
1978
+ interface HTMLHRElement : HTMLElement {};
1979
+
1980
+ interface HTMLPreElement : HTMLElement {};
1981
+
1982
+ interface HTMLQuoteElement : HTMLElement {
1983
+ attribute DOMString cite;
1984
+ };
1985
+
1986
+ interface HTMLOListElement : HTMLElement {
1987
+ attribute boolean reversed;
1988
+ attribute long start;
1989
+ attribute DOMString type;
1990
+ };
1991
+
1992
+ interface HTMLUListElement : HTMLElement {};
1993
+
1994
+ interface HTMLLIElement : HTMLElement {
1995
+ attribute long value;
1996
+ };
1997
+
1998
+ interface HTMLDListElement : HTMLElement {};
1999
+
2000
+ interface HTMLDivElement : HTMLElement {};
2001
+
2002
+ interface HTMLAnchorElement : HTMLElement {
2003
+ attribute DOMString target;
2004
+ attribute DOMString download;
2005
+ attribute DOMString rel;
2006
+ attribute DOMString rev;
2007
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
2008
+ attribute DOMString hreflang;
2009
+ attribute DOMString type;
2010
+ attribute DOMString text;
2011
+ attribute DOMString referrerPolicy;
2012
+ };
2013
+ HTMLAnchorElement implements HTMLHyperlinkElementUtils;
2014
+
2015
+ interface HTMLDataElement : HTMLElement {
2016
+ attribute DOMString value;
2017
+ };
2018
+
2019
+ interface HTMLTimeElement : HTMLElement {
2020
+ attribute DOMString dateTime;
2021
+ };
2022
+
2023
+ interface HTMLSpanElement : HTMLElement {};
2024
+
2025
+ interface HTMLBRElement : HTMLElement {};
2026
+
2027
+ interface HTMLModElement : HTMLElement {
2028
+ attribute DOMString cite;
2029
+ attribute DOMString dateTime;
2030
+ };
2031
+
2032
+ interface HTMLPictureElement : HTMLElement {};
2033
+
2034
+ interface HTMLSourceElement : HTMLElement {
2035
+ attribute DOMString src;
2036
+ attribute DOMString type;
2037
+ attribute DOMString srcset;
2038
+ attribute DOMString sizes;
2039
+ attribute DOMString media;
2040
+ };
2041
+
2042
+ [NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
2043
+ interface HTMLImageElement : HTMLElement {
2044
+ attribute DOMString alt;
2045
+ attribute DOMString src;
2046
+ attribute DOMString srcset;
2047
+ attribute DOMString sizes;
2048
+ attribute DOMString? crossOrigin;
2049
+ attribute DOMString useMap;
2050
+ attribute DOMString longDesc;
2051
+ attribute boolean isMap;
2052
+ attribute unsigned long width;
2053
+ attribute unsigned long height;
2054
+ readonly attribute unsigned long naturalWidth;
2055
+ readonly attribute unsigned long naturalHeight;
2056
+ readonly attribute boolean complete;
2057
+ readonly attribute DOMString currentSrc;
2058
+ attribute DOMString referrerPolicy;
2059
+ };
2060
+
2061
+ interface HTMLIFrameElement : HTMLElement {
2062
+ attribute DOMString src;
2063
+ attribute DOMString srcdoc;
2064
+ attribute DOMString name;
2065
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
2066
+ attribute boolean allowFullscreen;
2067
+ attribute boolean allowPaymentRequest;
2068
+ attribute DOMString width;
2069
+ attribute DOMString height;
2070
+ attribute DOMString referrerPolicy;
2071
+ readonly attribute Document? contentDocument;
2072
+ readonly attribute WindowProxy? contentWindow;
2073
+ };
2074
+
2075
+ interface HTMLEmbedElement : HTMLElement {
2076
+ attribute DOMString src;
2077
+ attribute DOMString type;
2078
+ attribute DOMString width;
2079
+ attribute DOMString height;
2080
+ legacycaller any (any... arguments);
2081
+ };
2082
+
2083
+ interface HTMLObjectElement : HTMLElement {
2084
+ attribute DOMString data;
2085
+ attribute DOMString type;
2086
+ attribute boolean typeMustMatch;
2087
+ attribute DOMString name;
2088
+ readonly attribute HTMLFormElement? form;
2089
+ attribute DOMString width;
2090
+ attribute DOMString height;
2091
+ readonly attribute Document? contentDocument;
2092
+ readonly attribute WindowProxy? contentWindow;
2093
+
2094
+ readonly attribute boolean willValidate;
2095
+ readonly attribute ValidityState validity;
2096
+ readonly attribute DOMString validationMessage;
2097
+ boolean checkValidity();
2098
+ boolean reportValidity();
2099
+ void setCustomValidity(DOMString error);
2100
+
2101
+ legacycaller any (any... arguments);
2102
+ };
2103
+
2104
+ interface HTMLParamElement : HTMLElement {
2105
+ attribute DOMString name;
2106
+ attribute DOMString value;
2107
+ };
2108
+
2109
+ interface HTMLVideoElement : HTMLMediaElement {
2110
+ attribute unsigned long width;
2111
+ attribute unsigned long height;
2112
+ readonly attribute unsigned long videoWidth;
2113
+ readonly attribute unsigned long videoHeight;
2114
+ attribute DOMString poster;
2115
+ };
2116
+
2117
+ [NamedConstructor=Audio(optional DOMString src)]
2118
+ interface HTMLAudioElement : HTMLMediaElement {};
2119
+
2120
+ interface HTMLTrackElement : HTMLElement {
2121
+ attribute DOMString kind;
2122
+ attribute DOMString src;
2123
+ attribute DOMString srclang;
2124
+ attribute DOMString label;
2125
+ attribute boolean default;
2126
+
2127
+ const unsigned short NONE = 0;
2128
+ const unsigned short LOADING = 1;
2129
+ const unsigned short LOADED = 2;
2130
+ const unsigned short ERROR = 3;
2131
+ readonly attribute unsigned short readyState;
2132
+
2133
+ readonly attribute TextTrack track;
2134
+ };
2135
+
2136
+ enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" };
2137
+
2138
+ typedef (MediaStream or MediaSource or Blob) MediaProvider;
2139
+
2140
+ interface HTMLMediaElement : HTMLElement {
2141
+
2142
+ // error state
2143
+ readonly attribute MediaError? error;
2144
+
2145
+ // network state
2146
+ attribute DOMString src;
2147
+ attribute MediaProvider? srcObject;
2148
+ readonly attribute DOMString currentSrc;
2149
+ attribute DOMString? crossOrigin;
2150
+ const unsigned short NETWORK_EMPTY = 0;
2151
+ const unsigned short NETWORK_IDLE = 1;
2152
+ const unsigned short NETWORK_LOADING = 2;
2153
+ const unsigned short NETWORK_NO_SOURCE = 3;
2154
+ readonly attribute unsigned short networkState;
2155
+ attribute DOMString preload;
2156
+ readonly attribute TimeRanges buffered;
2157
+ void load();
2158
+ CanPlayTypeResult canPlayType(DOMString type);
2159
+
2160
+ // ready state
2161
+ const unsigned short HAVE_NOTHING = 0;
2162
+ const unsigned short HAVE_METADATA = 1;
2163
+ const unsigned short HAVE_CURRENT_DATA = 2;
2164
+ const unsigned short HAVE_FUTURE_DATA = 3;
2165
+ const unsigned short HAVE_ENOUGH_DATA = 4;
2166
+ readonly attribute unsigned short readyState;
2167
+ readonly attribute boolean seeking;
2168
+
2169
+ // playback state
2170
+ attribute double currentTime;
2171
+ void fastSeek(double time);
2172
+ readonly attribute unrestricted double duration;
2173
+ object getStartDate();
2174
+ readonly attribute boolean paused;
2175
+ attribute double defaultPlaybackRate;
2176
+ attribute double playbackRate;
2177
+ readonly attribute TimeRanges played;
2178
+ readonly attribute TimeRanges seekable;
2179
+ readonly attribute boolean ended;
2180
+ attribute boolean autoplay;
2181
+ attribute boolean loop;
2182
+ void play();
2183
+ void pause();
2184
+
2185
+ // controls
2186
+ attribute boolean controls;
2187
+ attribute double volume;
2188
+ attribute boolean muted;
2189
+ attribute boolean defaultMuted;
2190
+
2191
+ // tracks
2192
+ [SameObject] readonly attribute AudioTrackList audioTracks;
2193
+ [SameObject] readonly attribute VideoTrackList videoTracks;
2194
+ [SameObject] readonly attribute TextTrackList textTracks;
2195
+ TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
2196
+ };
2197
+
2198
+ interface MediaError {
2199
+ const unsigned short MEDIA_ERR_ABORTED = 1;
2200
+ const unsigned short MEDIA_ERR_NETWORK = 2;
2201
+ const unsigned short MEDIA_ERR_DECODE = 3;
2202
+ const unsigned short MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
2203
+ readonly attribute unsigned short code;
2204
+ };
2205
+
2206
+ interface AudioTrackList : EventTarget {
2207
+ readonly attribute unsigned long length;
2208
+ getter AudioTrack (unsigned long index);
2209
+ AudioTrack? getTrackById(DOMString id);
2210
+
2211
+ attribute EventHandler onchange;
2212
+ attribute EventHandler onaddtrack;
2213
+ attribute EventHandler onremovetrack;
2214
+ };
2215
+
2216
+ interface AudioTrack {
2217
+ readonly attribute DOMString id;
2218
+ readonly attribute DOMString kind;
2219
+ readonly attribute DOMString label;
2220
+ readonly attribute DOMString language;
2221
+ attribute boolean enabled;
2222
+ };
2223
+
2224
+ interface VideoTrackList : EventTarget {
2225
+ readonly attribute unsigned long length;
2226
+ getter VideoTrack (unsigned long index);
2227
+ VideoTrack? getTrackById(DOMString id);
2228
+ readonly attribute long selectedIndex;
2229
+
2230
+ attribute EventHandler onchange;
2231
+ attribute EventHandler onaddtrack;
2232
+ attribute EventHandler onremovetrack;
2233
+ };
2234
+
2235
+ interface VideoTrack {
2236
+ readonly attribute DOMString id;
2237
+ readonly attribute DOMString kind;
2238
+ readonly attribute DOMString label;
2239
+ readonly attribute DOMString language;
2240
+ attribute boolean selected;
2241
+ };
2242
+
2243
+ interface TextTrackList : EventTarget {
2244
+ readonly attribute unsigned long length;
2245
+ getter TextTrack (unsigned long index);
2246
+ TextTrack? getTrackById(DOMString id);
2247
+
2248
+ attribute EventHandler onchange;
2249
+ attribute EventHandler onaddtrack;
2250
+ attribute EventHandler onremovetrack;
2251
+ };
2252
+
2253
+ enum TextTrackMode { "disabled", "hidden", "showing" };
2254
+
2255
+ enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" };
2256
+
2257
+ interface TextTrack : EventTarget {
2258
+ readonly attribute TextTrackKind kind;
2259
+ readonly attribute DOMString label;
2260
+ readonly attribute DOMString language;
2261
+
2262
+ readonly attribute DOMString id;
2263
+ readonly attribute DOMString inBandMetadataTrackDispatchType;
2264
+
2265
+ attribute TextTrackMode mode;
2266
+
2267
+ readonly attribute TextTrackCueList? cues;
2268
+ readonly attribute TextTrackCueList? activeCues;
2269
+
2270
+ void addCue(TextTrackCue cue);
2271
+ void removeCue(TextTrackCue cue);
2272
+
2273
+ attribute EventHandler oncuechange;
2274
+ };
2275
+
2276
+ interface TextTrackCueList {
2277
+ readonly attribute unsigned long length;
2278
+ getter TextTrackCue (unsigned long index);
2279
+ TextTrackCue? getCueById(DOMString id);
2280
+ };
2281
+
2282
+ interface TextTrackCue : EventTarget {
2283
+ readonly attribute TextTrack? track;
2284
+
2285
+ attribute DOMString id;
2286
+ attribute double startTime;
2287
+ attribute double endTime;
2288
+ attribute boolean pauseOnExit;
2289
+
2290
+ attribute EventHandler onenter;
2291
+ attribute EventHandler onexit;
2292
+ };
2293
+
2294
+ [Constructor(double startTime, double endTime, ArrayBuffer data)]
2295
+ interface DataCue : TextTrackCue {
2296
+ attribute ArrayBuffer data;
2297
+ };
2298
+
2299
+ interface TimeRanges {
2300
+ readonly attribute unsigned long length;
2301
+ double start(unsigned long index);
2302
+ double end(unsigned long index);
2303
+ };
2304
+
2305
+ [Constructor(DOMString type, optional TrackEventInit eventInitDict)]
2306
+ interface TrackEvent : Event {
2307
+ readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
2308
+ };
2309
+
2310
+ dictionary TrackEventInit : EventInit {
2311
+ (VideoTrack or AudioTrack or TextTrack)? track = null;
2312
+ };
2313
+
2314
+ interface HTMLMapElement : HTMLElement {
2315
+ attribute DOMString name;
2316
+ [SameObject] readonly attribute HTMLCollection areas;
2317
+ [SameObject] readonly attribute HTMLCollection images;
2318
+ };
2319
+
2320
+ interface HTMLAreaElement : HTMLElement {
2321
+ attribute DOMString alt;
2322
+ attribute DOMString coords;
2323
+ attribute DOMString shape;
2324
+ attribute DOMString target;
2325
+ attribute DOMString download;
2326
+ attribute DOMString rel;
2327
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
2328
+ attribute DOMString hreflang;
2329
+ attribute DOMString type;
2330
+ attribute DOMString referrerPolicy;
2331
+ };
2332
+ HTMLAreaElement implements HTMLHyperlinkElementUtils;
2333
+
2334
+ [NoInterfaceObject]
2335
+ interface HTMLHyperlinkElementUtils {
2336
+ stringifier attribute USVString href;
2337
+ readonly attribute USVString origin;
2338
+ attribute USVString protocol;
2339
+ attribute USVString username;
2340
+ attribute USVString password;
2341
+ attribute USVString host;
2342
+ attribute USVString hostname;
2343
+ attribute USVString port;
2344
+ attribute USVString pathname;
2345
+ attribute USVString search;
2346
+ attribute USVString hash;
2347
+ };
2348
+
2349
+ interface HTMLTableElement : HTMLElement {
2350
+ attribute HTMLTableCaptionElement? caption;
2351
+ HTMLTableCaptionElement createCaption();
2352
+ void deleteCaption();
2353
+ attribute HTMLTableSectionElement? tHead;
2354
+ HTMLTableSectionElement createTHead();
2355
+ void deleteTHead();
2356
+ attribute HTMLTableSectionElement? tFoot;
2357
+ HTMLTableSectionElement createTFoot();
2358
+ void deleteTFoot();
2359
+ [SameObject] readonly attribute HTMLCollection tBodies;
2360
+ HTMLTableSectionElement createTBody();
2361
+ [SameObject] readonly attribute HTMLCollection rows;
2362
+ HTMLTableRowElement insertRow(optional long index = -1);
2363
+ void deleteRow(long index);
2364
+ };
2365
+
2366
+ interface HTMLTableCaptionElement : HTMLElement {};
2367
+
2368
+ interface HTMLTableColElement : HTMLElement {
2369
+ attribute unsigned long span;
2370
+ };
2371
+
2372
+ interface HTMLTableSectionElement : HTMLElement {
2373
+ [SameObject] readonly attribute HTMLCollection rows;
2374
+ HTMLElement insertRow(optional long index = -1);
2375
+ void deleteRow(long index);
2376
+ };
2377
+
2378
+ interface HTMLTableRowElement : HTMLElement {
2379
+ readonly attribute long rowIndex;
2380
+ readonly attribute long sectionRowIndex;
2381
+ [SameObject] readonly attribute HTMLCollection cells;
2382
+ HTMLElement insertCell(optional long index = -1);
2383
+ void deleteCell(long index);
2384
+ };
2385
+
2386
+ interface HTMLTableDataCellElement : HTMLTableCellElement {};
2387
+
2388
+ interface HTMLTableHeaderCellElement : HTMLTableCellElement {
2389
+ attribute DOMString scope;
2390
+ attribute DOMString abbr;
2391
+ };
2392
+
2393
+ interface HTMLTableCellElement : HTMLElement {
2394
+ attribute unsigned long colSpan;
2395
+ attribute unsigned long rowSpan;
2396
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList headers;
2397
+ readonly attribute long cellIndex;
2398
+ };
2399
+
2400
+ [OverrideBuiltins]
2401
+ interface HTMLFormElement : HTMLElement {
2402
+ attribute DOMString acceptCharset;
2403
+ attribute DOMString action;
2404
+ attribute DOMString autocomplete;
2405
+ attribute DOMString enctype;
2406
+ attribute DOMString encoding;
2407
+ attribute DOMString method;
2408
+ attribute DOMString name;
2409
+ attribute boolean noValidate;
2410
+ attribute DOMString target;
2411
+
2412
+ [SameObject] readonly attribute HTMLFormControlsCollection elements;
2413
+ readonly attribute unsigned long length;
2414
+ getter Element (unsigned long index);
2415
+ getter (RadioNodeList or Element) (DOMString name);
2416
+
2417
+ void submit();
2418
+ void reset();
2419
+ boolean checkValidity();
2420
+ boolean reportValidity();
2421
+ };
2422
+
2423
+ interface HTMLLabelElement : HTMLElement {
2424
+ readonly attribute HTMLFormElement? form;
2425
+ attribute DOMString htmlFor;
2426
+ readonly attribute HTMLElement? control;
2427
+ };
2428
+
2429
+ interface HTMLInputElement : HTMLElement {
2430
+ attribute DOMString accept;
2431
+ attribute DOMString alt;
2432
+ attribute DOMString autocomplete;
2433
+ attribute boolean autofocus;
2434
+ attribute boolean defaultChecked;
2435
+ attribute boolean checked;
2436
+ attribute DOMString dirName;
2437
+ attribute boolean disabled;
2438
+ readonly attribute HTMLFormElement? form;
2439
+ readonly attribute FileList? files;
2440
+ attribute DOMString formAction;
2441
+ attribute DOMString formEnctype;
2442
+ attribute DOMString formMethod;
2443
+ attribute boolean formNoValidate;
2444
+ attribute DOMString formTarget;
2445
+ attribute unsigned long height;
2446
+ attribute boolean indeterminate;
2447
+ readonly attribute HTMLElement? list;
2448
+ attribute DOMString max;
2449
+ attribute long maxLength;
2450
+ attribute DOMString min;
2451
+ attribute long minLength;
2452
+ attribute boolean multiple;
2453
+ attribute DOMString name;
2454
+ attribute DOMString pattern;
2455
+ attribute DOMString placeholder;
2456
+ attribute boolean readOnly;
2457
+ attribute boolean _required;
2458
+ attribute unsigned long size;
2459
+ attribute DOMString src;
2460
+ attribute DOMString step;
2461
+ attribute DOMString type;
2462
+ attribute DOMString defaultValue;
2463
+ [TreatNullAs=EmptyString] attribute DOMString value;
2464
+ attribute object? valueAsDate;
2465
+ attribute unrestricted double valueAsNumber;
2466
+ attribute unsigned long width;
2467
+
2468
+ void stepUp(optional long n = 1);
2469
+ void stepDown(optional long n = 1);
2470
+
2471
+ readonly attribute boolean willValidate;
2472
+ readonly attribute ValidityState validity;
2473
+ readonly attribute DOMString validationMessage;
2474
+ boolean checkValidity();
2475
+ boolean reportValidity();
2476
+ void setCustomValidity(DOMString error);
2477
+
2478
+ [SameObject] readonly attribute NodeList labels;
2479
+
2480
+ void select();
2481
+ attribute unsigned long? selectionStart;
2482
+ attribute unsigned long? selectionEnd;
2483
+ attribute DOMString? selectionDirection;
2484
+ void setRangeText(DOMString replacement);
2485
+ void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
2486
+ void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
2487
+ };
2488
+
2489
+ interface HTMLButtonElement : HTMLElement {
2490
+ attribute boolean autofocus;
2491
+ attribute boolean disabled;
2492
+ readonly attribute HTMLFormElement? form;
2493
+ attribute DOMString formAction;
2494
+ attribute DOMString formEnctype;
2495
+ attribute DOMString formMethod;
2496
+ attribute boolean formNoValidate;
2497
+ attribute DOMString formTarget;
2498
+ attribute DOMString name;
2499
+ attribute DOMString type;
2500
+ attribute DOMString value;
2501
+
2502
+ readonly attribute boolean willValidate;
2503
+ readonly attribute ValidityState validity;
2504
+ readonly attribute DOMString validationMessage;
2505
+ boolean checkValidity();
2506
+ boolean reportValidity();
2507
+ void setCustomValidity(DOMString error);
2508
+
2509
+ [SameObject] readonly attribute NodeList labels;
2510
+ };
2511
+
2512
+ interface HTMLSelectElement : HTMLElement {
2513
+ attribute DOMString autocomplete;
2514
+ attribute boolean autofocus;
2515
+ attribute boolean disabled;
2516
+ readonly attribute HTMLFormElement? form;
2517
+ attribute boolean multiple;
2518
+ attribute DOMString name;
2519
+ attribute boolean _required;
2520
+ attribute unsigned long size;
2521
+
2522
+ readonly attribute DOMString type;
2523
+
2524
+ [SameObject] readonly attribute HTMLOptionsCollection options;
2525
+ attribute unsigned long length;
2526
+ getter Element? item(unsigned long index);
2527
+ HTMLOptionElement? namedItem(DOMString name);
2528
+ void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
2529
+ void remove(); // ChildNode overload
2530
+ void remove(long index);
2531
+ setter void (unsigned long index, HTMLOptionElement? option);
2532
+
2533
+ [SameObject] readonly attribute HTMLCollection selectedOptions;
2534
+ attribute long selectedIndex;
2535
+ attribute DOMString value;
2536
+
2537
+ readonly attribute boolean willValidate;
2538
+ readonly attribute ValidityState validity;
2539
+ readonly attribute DOMString validationMessage;
2540
+ boolean checkValidity();
2541
+ boolean reportValidity();
2542
+ void setCustomValidity(DOMString error);
2543
+
2544
+ [SameObject] readonly attribute NodeList labels;
2545
+ };
2546
+
2547
+ interface HTMLDataListElement : HTMLElement {
2548
+ [SameObject] readonly attribute HTMLCollection options;
2549
+ };
2550
+
2551
+ interface HTMLOptGroupElement : HTMLElement {
2552
+ attribute boolean disabled;
2553
+ attribute DOMString label;
2554
+ };
2555
+
2556
+ [NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
2557
+ interface HTMLOptionElement : HTMLElement {
2558
+ attribute boolean disabled;
2559
+ readonly attribute HTMLFormElement? form;
2560
+ attribute DOMString label;
2561
+ attribute boolean defaultSelected;
2562
+ attribute boolean selected;
2563
+ attribute DOMString value;
2564
+
2565
+ attribute DOMString text;
2566
+ readonly attribute long index;
2567
+ };
2568
+
2569
+ interface HTMLTextAreaElement : HTMLElement {
2570
+ attribute DOMString autocomplete;
2571
+ attribute boolean autofocus;
2572
+ attribute unsigned long cols;
2573
+ attribute DOMString dirName;
2574
+ attribute boolean disabled;
2575
+ readonly attribute HTMLFormElement? form;
2576
+ attribute long maxLength;
2577
+ attribute long minLength;
2578
+ attribute DOMString name;
2579
+ attribute DOMString placeholder;
2580
+ attribute boolean readOnly;
2581
+ attribute boolean _required;
2582
+ attribute unsigned long rows;
2583
+ attribute DOMString wrap;
2584
+
2585
+ readonly attribute DOMString type;
2586
+ attribute DOMString defaultValue;
2587
+ [TreatNullAs=EmptyString] attribute DOMString value;
2588
+ readonly attribute unsigned long textLength;
2589
+
2590
+ readonly attribute boolean willValidate;
2591
+ readonly attribute ValidityState validity;
2592
+ readonly attribute DOMString validationMessage;
2593
+ boolean checkValidity();
2594
+ boolean reportValidity();
2595
+ void setCustomValidity(DOMString error);
2596
+
2597
+ [SameObject] readonly attribute NodeList labels;
2598
+
2599
+ void select();
2600
+ attribute unsigned long? selectionStart;
2601
+ attribute unsigned long? selectionEnd;
2602
+ attribute DOMString? selectionDirection;
2603
+ void setRangeText(DOMString replacement);
2604
+ void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
2605
+ void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
2606
+ };
2607
+
2608
+ interface HTMLOutputElement : HTMLElement {
2609
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
2610
+ readonly attribute HTMLFormElement? form;
2611
+ attribute DOMString name;
2612
+
2613
+ readonly attribute DOMString type;
2614
+ attribute DOMString defaultValue;
2615
+ attribute DOMString value;
2616
+
2617
+ readonly attribute boolean willValidate;
2618
+ readonly attribute ValidityState validity;
2619
+ readonly attribute DOMString validationMessage;
2620
+ boolean checkValidity();
2621
+ boolean reportValidity();
2622
+ void setCustomValidity(DOMString error);
2623
+
2624
+ [SameObject] readonly attribute NodeList labels;
2625
+ };
2626
+
2627
+ interface HTMLProgressElement : HTMLElement {
2628
+ attribute double value;
2629
+ attribute double max;
2630
+ readonly attribute double position;
2631
+ [SameObject] readonly attribute NodeList labels;
2632
+ };
2633
+
2634
+ interface HTMLMeterElement : HTMLElement {
2635
+ attribute double value;
2636
+ attribute double min;
2637
+ attribute double max;
2638
+ attribute double low;
2639
+ attribute double high;
2640
+ attribute double optimum;
2641
+ [SameObject] readonly attribute NodeList labels;
2642
+ };
2643
+
2644
+ interface HTMLFieldSetElement : HTMLElement {
2645
+ attribute boolean disabled;
2646
+ readonly attribute HTMLFormElement? form;
2647
+ attribute DOMString name;
2648
+
2649
+ readonly attribute DOMString type;
2650
+
2651
+ [SameObject] readonly attribute HTMLCollection elements;
2652
+
2653
+ readonly attribute boolean willValidate;
2654
+ [SameObject] readonly attribute ValidityState validity;
2655
+ readonly attribute DOMString validationMessage;
2656
+ boolean checkValidity();
2657
+ boolean reportValidity();
2658
+ void setCustomValidity(DOMString error);
2659
+ };
2660
+
2661
+ interface HTMLLegendElement : HTMLElement {
2662
+ readonly attribute HTMLFormElement? form;
2663
+ };
2664
+
2665
+ enum SelectionMode {
2666
+ "select",
2667
+ "start",
2668
+ "end",
2669
+ "preserve" // default
2670
+ };
2671
+
2672
+ interface ValidityState {
2673
+ readonly attribute boolean valueMissing;
2674
+ readonly attribute boolean typeMismatch;
2675
+ readonly attribute boolean patternMismatch;
2676
+ readonly attribute boolean tooLong;
2677
+ readonly attribute boolean tooShort;
2678
+ readonly attribute boolean rangeUnderflow;
2679
+ readonly attribute boolean rangeOverflow;
2680
+ readonly attribute boolean stepMismatch;
2681
+ readonly attribute boolean badInput;
2682
+ readonly attribute boolean customError;
2683
+ readonly attribute boolean valid;
2684
+ };
1322
2685
 
1323
- [Constructor(optional Element scope), Exposed=(Window,Worker)]
1324
- interface DrawingStyle { };
1325
- DrawingStyle implements CanvasDrawingStyles;
2686
+ interface HTMLDetailsElement : HTMLElement {
2687
+ attribute boolean open;
2688
+ };
1326
2689
 
1327
- [Constructor,
1328
- Constructor(Path2D path),
1329
- Constructor(Path2D[] paths, optional CanvasFillRule fillRule = "nonzero"),
1330
- Constructor(DOMString d), Exposed=(Window,Worker)]
1331
- interface Path2D {
1332
- void addPath(Path2D path, optional SVGMatrix? transformation = null);
1333
- void addPathByStrokingPath(Path2D path, CanvasDrawingStyles styles, optional SVGMatrix? transformation = null);
1334
- void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
1335
- void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
1336
- void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path2D path, optional unrestricted double maxWidth);
1337
- void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path2D path, optional unrestricted double maxWidth);
2690
+ interface HTMLDialogElement : HTMLElement {
2691
+ attribute boolean open;
2692
+ attribute DOMString returnValue;
2693
+ void show(optional (MouseEvent or Element) anchor);
2694
+ void showModal(optional (MouseEvent or Element) anchor);
2695
+ void close(optional DOMString returnValue);
1338
2696
  };
1339
- Path2D implements CanvasPathMethods;
1340
2697
 
1341
- partial interface MouseEvent {
1342
- readonly attribute DOMString? region;
2698
+ interface HTMLScriptElement : HTMLElement {
2699
+ attribute DOMString src;
2700
+ attribute DOMString type;
2701
+ attribute DOMString charset;
2702
+ attribute boolean async;
2703
+ attribute boolean defer;
2704
+ attribute DOMString? crossOrigin;
2705
+ attribute DOMString text;
2706
+ attribute DOMString nonce;
1343
2707
  };
1344
2708
 
1345
- partial dictionary MouseEventInit {
1346
- DOMString? region;
2709
+ [Exposed=Window,
2710
+ HTMLConstructor]
2711
+ interface HTMLTemplateElement : HTMLElement {
2712
+ readonly attribute DocumentFragment content;
1347
2713
  };
1348
2714
 
1349
- partial interface Touch {
1350
- readonly attribute DOMString? region;
2715
+ typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
2716
+
2717
+ interface HTMLCanvasElement : HTMLElement {
2718
+ attribute unsigned long width;
2719
+ attribute unsigned long height;
2720
+
2721
+ RenderingContext? getContext(DOMString contextId, any... arguments);
2722
+ boolean probablySupportsContext(DOMString contextId, any... arguments);
2723
+
2724
+ DOMString toDataURL(optional DOMString type, any... arguments);
2725
+ void toBlob(BlobCallback _callback, optional DOMString type, any... arguments);
1351
2726
  };
1352
2727
 
2728
+ callback BlobCallback = void (Blob? blob);
2729
+
1353
2730
  [NoInterfaceObject]
1354
2731
  interface ElementContentEditable {
1355
2732
  attribute DOMString contentEditable;
@@ -1396,85 +2773,97 @@ interface DragEvent : MouseEvent {
1396
2773
  };
1397
2774
 
1398
2775
  dictionary DragEventInit : MouseEventInit {
1399
- DataTransfer? dataTransfer;
2776
+ DataTransfer? dataTransfer = null;
1400
2777
  };
1401
2778
 
1402
- [PrimaryGlobal]
2779
+ [PrimaryGlobal, LegacyUnenumerableNamedProperties]
1403
2780
  /*sealed*/ interface Window : EventTarget {
1404
- // the current browsing context
1405
- [Unforgeable] readonly attribute WindowProxy window;
1406
- [Replaceable] readonly attribute WindowProxy self;
1407
- [Unforgeable] readonly attribute Document document;
1408
- attribute DOMString name;
1409
- [PutForwards=href, Unforgeable] readonly attribute Location location;
1410
- readonly attribute History history;
1411
- [Replaceable] readonly attribute BarProp locationbar;
1412
- [Replaceable] readonly attribute BarProp menubar;
1413
- [Replaceable] readonly attribute BarProp personalbar;
1414
- [Replaceable] readonly attribute BarProp scrollbars;
1415
- [Replaceable] readonly attribute BarProp statusbar;
1416
- [Replaceable] readonly attribute BarProp toolbar;
1417
- attribute DOMString status;
1418
- void close();
1419
- readonly attribute boolean closed;
1420
- void stop();
1421
- void focus();
1422
- void blur();
1423
-
1424
- // other browsing contexts
1425
- [Replaceable] readonly attribute WindowProxy frames;
1426
- [Replaceable] readonly attribute unsigned long length;
1427
- [Unforgeable] readonly attribute WindowProxy top;
1428
- attribute any opener;
1429
- [Replaceable] readonly attribute WindowProxy parent;
1430
- readonly attribute Element? frameElement;
1431
- WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
1432
- getter WindowProxy (unsigned long index);
1433
- getter object (DOMString name);
1434
-
1435
- // the user agent
1436
- readonly attribute Navigator navigator;
1437
- [Replaceable, SameObject] readonly attribute External external;
1438
- readonly attribute ApplicationCache applicationCache;
1439
-
1440
- // user prompts
1441
- void alert();
1442
- void alert(DOMString message);
1443
- boolean confirm(optional DOMString message = "");
1444
- DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
1445
- void print();
1446
- any showModalDialog(DOMString url, optional any argument); // deprecated
1447
-
1448
- long requestAnimationFrame(FrameRequestCallback callback);
1449
- void cancelAnimationFrame(long handle);
1450
-
1451
- void postMessage(any message, DOMString targetOrigin, optional sequence<Transferable> transfer);
1452
-
1453
- // also has obsolete members
2781
+ // the current browsing context
2782
+ [Unforgeable] readonly attribute WindowProxy window;
2783
+ [Replaceable] readonly attribute WindowProxy self;
2784
+ [Unforgeable] readonly attribute Document document;
2785
+ attribute DOMString name;
2786
+ [PutForwards=href, Unforgeable] readonly attribute Location location;
2787
+ readonly attribute History history;
2788
+ [Replaceable] readonly attribute BarProp locationbar;
2789
+ [Replaceable] readonly attribute BarProp menubar;
2790
+ [Replaceable] readonly attribute BarProp personalbar;
2791
+ [Replaceable] readonly attribute BarProp scrollbars;
2792
+ [Replaceable] readonly attribute BarProp statusbar;
2793
+ [Replaceable] readonly attribute BarProp toolbar;
2794
+ attribute DOMString status;
2795
+ void close();
2796
+ readonly attribute boolean closed;
2797
+ void stop();
2798
+ void focus();
2799
+ void blur();
2800
+
2801
+ // other browsing contexts
2802
+ [Replaceable] readonly attribute WindowProxy frames;
2803
+ [Replaceable] readonly attribute unsigned long length;
2804
+ [Unforgeable] readonly attribute WindowProxy top;
2805
+ attribute any opener;
2806
+ [Replaceable] readonly attribute WindowProxy parent;
2807
+ readonly attribute Element? frameElement;
2808
+ WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
2809
+ getter WindowProxy (unsigned long index);
2810
+ getter object (DOMString name);
2811
+ // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic
2812
+ // object on the prototype chain. Indeed, this does not make the global object an exotic object.
2813
+ // Indexed access is taken care of by the WindowProxy exotic object.
2814
+
2815
+ // the user agent
2816
+ readonly attribute Navigator navigator;
2817
+
2818
+ // user prompts
2819
+ void alert();
2820
+ void alert(DOMString message);
2821
+ boolean confirm(optional DOMString message = "");
2822
+ DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
2823
+ void print();
2824
+
2825
+ unsigned long requestAnimationFrame(FrameRequestCallback callback);
2826
+ void cancelAnimationFrame(unsigned long handle);
1454
2827
  };
1455
2828
  Window implements GlobalEventHandlers;
1456
2829
  Window implements WindowEventHandlers;
1457
2830
 
2831
+ callback FrameRequestCallback = void (DOMHighResTimeStamp time);
2832
+
1458
2833
  interface BarProp {
1459
- attribute boolean visible;
2834
+ readonly attribute boolean visible;
1460
2835
  };
1461
2836
 
2837
+ enum ScrollRestoration { "auto", "manual" };
2838
+
1462
2839
  interface History {
1463
- readonly attribute long length;
2840
+ readonly attribute unsigned long length;
2841
+ attribute ScrollRestoration scrollRestoration;
1464
2842
  readonly attribute any state;
1465
- void go(optional long delta);
2843
+ void go(optional long delta = 0);
1466
2844
  void back();
1467
2845
  void forward();
1468
2846
  void pushState(any data, DOMString title, optional DOMString? url = null);
1469
2847
  void replaceState(any data, DOMString title, optional DOMString? url = null);
1470
2848
  };
1471
2849
 
1472
- [Unforgeable] interface Location {
1473
- void assign(DOMString url);
1474
- void replace(DOMString url);
1475
- void reload();
2850
+ interface Location {
2851
+ [Unforgeable] stringifier attribute USVString href;
2852
+ [Unforgeable] readonly attribute USVString origin;
2853
+ [Unforgeable] attribute USVString protocol;
2854
+ [Unforgeable] attribute USVString host;
2855
+ [Unforgeable] attribute USVString hostname;
2856
+ [Unforgeable] attribute USVString port;
2857
+ [Unforgeable] attribute USVString pathname;
2858
+ [Unforgeable] attribute USVString search;
2859
+ [Unforgeable] attribute USVString hash;
2860
+
2861
+ [Unforgeable] void assign(USVString url);
2862
+ [Unforgeable] void replace(USVString url);
2863
+ [Unforgeable] void reload();
2864
+
2865
+ [Unforgeable, SameObject] readonly attribute USVString[] ancestorOrigins;
1476
2866
  };
1477
- Location implements URLUtils;
1478
2867
 
1479
2868
  [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
1480
2869
  interface PopStateEvent : Event {
@@ -1482,18 +2871,18 @@ interface PopStateEvent : Event {
1482
2871
  };
1483
2872
 
1484
2873
  dictionary PopStateEventInit : EventInit {
1485
- any state;
2874
+ any state = null;
1486
2875
  };
1487
2876
 
1488
2877
  [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
1489
2878
  interface HashChangeEvent : Event {
1490
- readonly attribute DOMString oldURL;
1491
- readonly attribute DOMString newURL;
2879
+ readonly attribute USVString oldURL;
2880
+ readonly attribute USVString newURL;
1492
2881
  };
1493
2882
 
1494
2883
  dictionary HashChangeEventInit : EventInit {
1495
- DOMString oldURL;
1496
- DOMString newURL;
2884
+ USVString oldURL = "";
2885
+ USVString newURL = "";
1497
2886
  };
1498
2887
 
1499
2888
  [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
@@ -1502,47 +2891,19 @@ interface PageTransitionEvent : Event {
1502
2891
  };
1503
2892
 
1504
2893
  dictionary PageTransitionEventInit : EventInit {
1505
- boolean persisted;
2894
+ boolean persisted = false;
1506
2895
  };
1507
2896
 
1508
2897
  interface BeforeUnloadEvent : Event {
1509
2898
  attribute DOMString returnValue;
1510
2899
  };
1511
2900
 
1512
- [Exposed=(Window,SharedWorker)]
1513
- interface ApplicationCache : EventTarget {
1514
-
1515
- // update status
1516
- const unsigned short UNCACHED = 0;
1517
- const unsigned short IDLE = 1;
1518
- const unsigned short CHECKING = 2;
1519
- const unsigned short DOWNLOADING = 3;
1520
- const unsigned short UPDATEREADY = 4;
1521
- const unsigned short OBSOLETE = 5;
1522
- readonly attribute unsigned short status;
1523
-
1524
- // updates
1525
- void update();
1526
- void abort();
1527
- void swapCache();
1528
-
1529
- // events
1530
- attribute EventHandler onchecking;
1531
- attribute EventHandler onerror;
1532
- attribute EventHandler onnoupdate;
1533
- attribute EventHandler ondownloading;
1534
- attribute EventHandler onprogress;
1535
- attribute EventHandler onupdateready;
1536
- attribute EventHandler oncached;
1537
- attribute EventHandler onobsolete;
1538
- };
1539
-
1540
- [NoInterfaceObject, Exposed=(Window,Worker)]
2901
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1541
2902
  interface NavigatorOnLine {
1542
2903
  readonly attribute boolean onLine;
1543
2904
  };
1544
2905
 
1545
- [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
2906
+ [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window, Worker)]
1546
2907
  interface ErrorEvent : Event {
1547
2908
  readonly attribute DOMString message;
1548
2909
  readonly attribute DOMString filename;
@@ -1552,30 +2913,39 @@ interface ErrorEvent : Event {
1552
2913
  };
1553
2914
 
1554
2915
  dictionary ErrorEventInit : EventInit {
1555
- DOMString message;
1556
- DOMString filename;
1557
- unsigned long lineno;
1558
- unsigned long colno;
1559
- any error;
2916
+ DOMString message = "";
2917
+ DOMString filename = "";
2918
+ unsigned long lineno = 0;
2919
+ unsigned long colno = 0;
2920
+ any error = null;
2921
+ };
2922
+
2923
+ [Constructor(DOMString type, PromiseRejectionEventInit eventInitDict), Exposed=(Window,Worker)]
2924
+ interface PromiseRejectionEvent : Event {
2925
+ readonly attribute Promise<any> promise;
2926
+ readonly attribute any reason;
2927
+ };
2928
+
2929
+ dictionary PromiseRejectionEventInit : EventInit {
2930
+ required Promise<any> promise;
2931
+ any reason;
1560
2932
  };
1561
2933
 
1562
- [TreatNonCallableAsNull]
2934
+ [TreatNonObjectAsNull]
1563
2935
  callback EventHandlerNonNull = any (Event event);
1564
2936
  typedef EventHandlerNonNull? EventHandler;
1565
2937
 
1566
- [TreatNonCallableAsNull]
2938
+ [TreatNonObjectAsNull]
1567
2939
  callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long column, optional any error);
1568
2940
  typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
1569
2941
 
1570
- [TreatNonCallableAsNull]
2942
+ [TreatNonObjectAsNull]
1571
2943
  callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
1572
2944
  typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
1573
2945
 
1574
2946
  [NoInterfaceObject]
1575
2947
  interface GlobalEventHandlers {
1576
2948
  attribute EventHandler onabort;
1577
- attribute EventHandler onautocomplete;
1578
- attribute EventHandler onautocompleteerror;
1579
2949
  attribute EventHandler onblur;
1580
2950
  attribute EventHandler oncancel;
1581
2951
  attribute EventHandler oncanplay;
@@ -1583,7 +2953,6 @@ interface GlobalEventHandlers {
1583
2953
  attribute EventHandler onchange;
1584
2954
  attribute EventHandler onclick;
1585
2955
  attribute EventHandler onclose;
1586
- attribute EventHandler oncontextmenu;
1587
2956
  attribute EventHandler oncuechange;
1588
2957
  attribute EventHandler ondblclick;
1589
2958
  attribute EventHandler ondrag;
@@ -1615,7 +2984,7 @@ interface GlobalEventHandlers {
1615
2984
  attribute EventHandler onmouseout;
1616
2985
  attribute EventHandler onmouseover;
1617
2986
  attribute EventHandler onmouseup;
1618
- attribute EventHandler onmousewheel;
2987
+ attribute EventHandler onwheel;
1619
2988
  attribute EventHandler onpause;
1620
2989
  attribute EventHandler onplay;
1621
2990
  attribute EventHandler onplaying;
@@ -1628,7 +2997,6 @@ interface GlobalEventHandlers {
1628
2997
  attribute EventHandler onseeking;
1629
2998
  attribute EventHandler onselect;
1630
2999
  attribute EventHandler onshow;
1631
- attribute EventHandler onsort;
1632
3000
  attribute EventHandler onstalled;
1633
3001
  attribute EventHandler onsubmit;
1634
3002
  attribute EventHandler onsuspend;
@@ -1650,34 +3018,42 @@ interface WindowEventHandlers {
1650
3018
  attribute EventHandler ononline;
1651
3019
  attribute EventHandler onpagehide;
1652
3020
  attribute EventHandler onpageshow;
3021
+ attribute EventHandler onrejectionhandled;
1653
3022
  attribute EventHandler onpopstate;
1654
3023
  attribute EventHandler onstorage;
3024
+ attribute EventHandler onunhandledrejection;
1655
3025
  attribute EventHandler onunload;
1656
3026
  };
1657
3027
 
1658
- [NoInterfaceObject, Exposed=(Window,Worker)]
1659
- interface WindowBase64 {
3028
+ [NoInterfaceObject]
3029
+ interface DocumentAndElementEventHandlers {
3030
+ attribute EventHandler oncopy;
3031
+ attribute EventHandler oncut;
3032
+ attribute EventHandler onpaste;
3033
+ };
3034
+
3035
+ typedef (DOMString or Function) TimerHandler;
3036
+
3037
+ [NoInterfaceObject, Exposed=(Window, Worker)]
3038
+ interface WindowOrWorkerGlobalScope {
3039
+ [Replaceable] readonly attribute USVString origin;
3040
+
3041
+ // Base64 utility methods (WindowBase64)
1660
3042
  DOMString btoa(DOMString btoa);
1661
3043
  DOMString atob(DOMString atob);
1662
- };
1663
- Window implements WindowBase64;
1664
3044
 
1665
- [NoInterfaceObject, Exposed=(Window,Worker)]
1666
- interface WindowTimers {
1667
- long setTimeout(Function handler, optional long timeout = 0, any... arguments);
1668
- long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
3045
+ // Timers (WindowTimers)
3046
+ long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments);
1669
3047
  void clearTimeout(optional long handle = 0);
1670
- long setInterval(Function handler, optional long timeout = 0, any... arguments);
1671
- long setInterval(DOMString handler, optional long timeout = 0, any... arguments);
3048
+ long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments);
1672
3049
  void clearInterval(optional long handle = 0);
1673
- };
1674
- Window implements WindowTimers;
1675
3050
 
1676
- [NoInterfaceObject]
1677
- interface WindowModal {
1678
- readonly attribute any dialogArguments;
1679
- attribute any returnValue;
3051
+ // ImageBitmap, Images (ImageBitmapFactories)
3052
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
3053
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1680
3054
  };
3055
+ Window implements WindowOrWorkerGlobalScope;
3056
+ WorkerGlobalScope implements WindowOrWorkerGlobalScope;
1681
3057
 
1682
3058
  interface Navigator {
1683
3059
  // objects implementing this interface also implement the interfaces given below
@@ -1686,21 +3062,19 @@ Navigator implements NavigatorID;
1686
3062
  Navigator implements NavigatorLanguage;
1687
3063
  Navigator implements NavigatorOnLine;
1688
3064
  Navigator implements NavigatorContentUtils;
1689
- Navigator implements NavigatorStorageUtils;
1690
- Navigator implements NavigatorPlugins;
3065
+ Navigator implements NavigatorCookies;
1691
3066
 
1692
- [NoInterfaceObject, Exposed=(Window,Worker)]
3067
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1693
3068
  interface NavigatorID {
1694
- readonly attribute DOMString appCodeName; // constant "Mozilla"
1695
- readonly attribute DOMString appName;
3069
+ [Exposed=Window] readonly attribute DOMString appCodeName; // constant "Mozilla"
3070
+ readonly attribute DOMString appName; // constant "Netscape"
1696
3071
  readonly attribute DOMString appVersion;
1697
3072
  readonly attribute DOMString platform;
1698
- readonly attribute DOMString product; // constant "Gecko"
1699
- boolean taintEnabled(); // constant false
3073
+ [Exposed=Window]readonly attribute DOMString product; // constant "Gecko"
1700
3074
  readonly attribute DOMString userAgent;
1701
3075
  };
1702
3076
 
1703
- [NoInterfaceObject, Exposed=(Window,Worker)]
3077
+ [NoInterfaceObject, Exposed=(Window, Worker)]
1704
3078
  interface NavigatorLanguage {
1705
3079
  readonly attribute DOMString? language;
1706
3080
  readonly attribute DOMString[] languages;
@@ -1718,322 +3092,52 @@ interface NavigatorContentUtils {
1718
3092
  };
1719
3093
 
1720
3094
  [NoInterfaceObject]
1721
- interface NavigatorStorageUtils {
3095
+ interface NavigatorCookies {
1722
3096
  readonly attribute boolean cookieEnabled;
1723
- void yieldForStorageUpdates();
1724
- };
1725
-
1726
- [NoInterfaceObject]
1727
- interface NavigatorPlugins {
1728
- [SameObject] readonly attribute PluginArray plugins;
1729
- [SameObject] readonly attribute MimeTypeArray mimeTypes;
1730
- readonly attribute boolean javaEnabled;
1731
- };
1732
-
1733
- interface PluginArray {
1734
- void refresh(optional boolean reload = false);
1735
- readonly attribute unsigned long length;
1736
- getter Plugin? item(unsigned long index);
1737
- getter Plugin? namedItem(DOMString name);
1738
- };
1739
-
1740
- interface MimeTypeArray {
1741
- readonly attribute unsigned long length;
1742
- getter MimeType? item(unsigned long index);
1743
- getter MimeType? namedItem(DOMString name);
1744
- };
1745
-
1746
- interface Plugin {
1747
- readonly attribute DOMString name;
1748
- readonly attribute DOMString description;
1749
- readonly attribute DOMString filename;
1750
- readonly attribute unsigned long length;
1751
- getter MimeType? item(unsigned long index);
1752
- getter MimeType? namedItem(DOMString name);
1753
- };
1754
-
1755
- interface MimeType {
1756
- readonly attribute DOMString type;
1757
- readonly attribute DOMString description;
1758
- readonly attribute DOMString suffixes; // comma-separated
1759
- readonly attribute Plugin enabledPlugin;
1760
3097
  };
1761
3098
 
1762
- interface External {
1763
- void AddSearchProvider(DOMString engineURL);
1764
- unsigned long IsSearchProviderInstalled(DOMString engineURL);
1765
- };
1766
-
1767
- [Exposed=(Window,Worker)]
3099
+ [Exposed=(Window, Worker), Serializable, Transferable]
1768
3100
  interface ImageBitmap {
1769
3101
  readonly attribute unsigned long width;
1770
3102
  readonly attribute unsigned long height;
1771
3103
  };
1772
3104
 
1773
3105
  typedef (HTMLImageElement or
1774
- HTMLVideoElement or
1775
- HTMLCanvasElement or
1776
- Blob or
1777
- ImageData or
1778
- CanvasRenderingContext2D or
1779
- ImageBitmap) ImageBitmapSource;
1780
-
1781
- [NoInterfaceObject, Exposed=(Window,Worker)]
1782
- interface ImageBitmapFactories {
1783
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
1784
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1785
- };
1786
- Window implements ImageBitmapFactories;
1787
- WorkerGlobalScope implements ImageBitmapFactories;
1788
-
1789
- [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker)]
1790
- interface MessageEvent : Event {
1791
- readonly attribute any data;
1792
- readonly attribute DOMString origin;
1793
- readonly attribute DOMString lastEventId;
1794
- readonly attribute (WindowProxy or MessagePort)? source;
1795
- readonly attribute MessagePort[]? ports;
1796
-
1797
- void initMessageEvent(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg, DOMString originArg, DOMString lastEventIdArg, (WindowProxy or MessagePort) sourceArg, sequence<MessagePort>? portsArg);
1798
- };
1799
-
1800
- dictionary MessageEventInit : EventInit {
1801
- any data;
1802
- DOMString origin;
1803
- DOMString lastEventId;
1804
- (WindowProxy or MessagePort)? source;
1805
- sequence<MessagePort> ports;
1806
- };
1807
-
1808
- [Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=(Window,Worker)]
1809
- interface EventSource : EventTarget {
1810
- readonly attribute DOMString url;
1811
- readonly attribute boolean withCredentials;
1812
-
1813
- // ready state
1814
- const unsigned short CONNECTING = 0;
1815
- const unsigned short OPEN = 1;
1816
- const unsigned short CLOSED = 2;
1817
- readonly attribute unsigned short readyState;
1818
-
1819
- // networking
1820
- attribute EventHandler onopen;
1821
- attribute EventHandler onmessage;
1822
- attribute EventHandler onerror;
1823
- void close();
1824
- };
1825
-
1826
- dictionary EventSourceInit {
1827
- boolean withCredentials = false;
1828
- };
1829
-
1830
- enum BinaryType { "blob", "arraybuffer" };
1831
- [Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=(Window,Worker)]
1832
- interface WebSocket : EventTarget {
1833
- readonly attribute DOMString url;
1834
-
1835
- // ready state
1836
- const unsigned short CONNECTING = 0;
1837
- const unsigned short OPEN = 1;
1838
- const unsigned short CLOSING = 2;
1839
- const unsigned short CLOSED = 3;
1840
- readonly attribute unsigned short readyState;
1841
- readonly attribute unsigned long bufferedAmount;
1842
-
1843
- // networking
1844
- attribute EventHandler onopen;
1845
- attribute EventHandler onerror;
1846
- attribute EventHandler onclose;
1847
- readonly attribute DOMString extensions;
1848
- readonly attribute DOMString protocol;
1849
- void close([Clamp] optional unsigned short code, optional USVString reason);
1850
-
1851
- // messaging
1852
- attribute EventHandler onmessage;
1853
- attribute BinaryType binaryType;
1854
- void send(USVString data);
1855
- void send(Blob data);
1856
- void send(ArrayBuffer data);
1857
- void send(ArrayBufferView data);
1858
- };
1859
-
1860
- [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)]
1861
- interface CloseEvent : Event {
1862
- readonly attribute boolean wasClean;
1863
- readonly attribute unsigned short code;
1864
- readonly attribute DOMString reason;
1865
- };
1866
-
1867
- dictionary CloseEventInit : EventInit {
1868
- boolean wasClean;
1869
- unsigned short code;
1870
- DOMString reason;
1871
- };
1872
-
1873
- [Constructor, Exposed=(Window,Worker)]
1874
- interface MessageChannel {
1875
- readonly attribute MessagePort port1;
1876
- readonly attribute MessagePort port2;
1877
- };
1878
-
1879
- [Exposed=(Window,Worker)]
1880
- interface MessagePort : EventTarget {
1881
- void postMessage(any message, optional sequence<Transferable> transfer);
1882
- void start();
1883
- void close();
1884
-
1885
- // event handlers
1886
- attribute EventHandler onmessage;
1887
- };
1888
- // MessagePort implements Transferable;
1889
-
1890
- [Constructor, Exposed=(Window,Worker)]
1891
- interface PortCollection {
1892
- void add(MessagePort port);
1893
- void remove(MessagePort port);
1894
- void clear();
1895
- void iterate(PortCollectionCallback callback);
1896
- };
1897
-
1898
- callback PortCollectionCallback = void (MessagePort port);
1899
-
1900
- [Constructor(DOMString channel), Exposed=(Window,Worker)]
1901
- interface BroadcastChannel : EventTarget {
1902
- readonly attribute DOMString name;
1903
- void postMessage(any message);
1904
- void close();
1905
- attribute EventHandler onmessage;
1906
- };
1907
-
1908
- [Exposed=Worker]
1909
- interface WorkerGlobalScope : EventTarget {
1910
- readonly attribute WorkerGlobalScope self;
1911
- readonly attribute WorkerLocation location;
1912
-
1913
- void close();
1914
- attribute OnErrorEventHandler onerror;
1915
- attribute EventHandler onlanguagechange;
1916
- attribute EventHandler onoffline;
1917
- attribute EventHandler ononline;
1918
-
1919
- // also has additional members in a partial interface
1920
- };
1921
-
1922
- [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
1923
- /*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
1924
- void postMessage(any message, optional sequence<Transferable> transfer);
1925
- attribute EventHandler onmessage;
1926
- };
1927
-
1928
- [Global=(Worker,SharedWorker),Exposed=SharedWorker]
1929
- /*sealed*/ interface SharedWorkerGlobalScope : WorkerGlobalScope {
1930
- readonly attribute DOMString name;
1931
- readonly attribute ApplicationCache applicationCache;
1932
- attribute EventHandler onconnect;
1933
- };
1934
-
1935
- [NoInterfaceObject, Exposed=(Window,Worker)]
1936
- interface AbstractWorker {
1937
- attribute EventHandler onerror;
1938
- };
1939
-
1940
- [Constructor(DOMString scriptURL), Exposed=(Window,Worker)]
1941
- interface Worker : EventTarget {
1942
- void terminate();
1943
-
1944
- void postMessage(any message, optional sequence<Transferable> transfer);
1945
- attribute EventHandler onmessage;
1946
- };
1947
- Worker implements AbstractWorker;
1948
-
1949
- [Constructor(DOMString scriptURL, optional DOMString name), Exposed=(Window,Worker)]
1950
- interface SharedWorker : EventTarget {
1951
- readonly attribute MessagePort port;
1952
- };
1953
- SharedWorker implements AbstractWorker;
1954
-
1955
- [Exposed=Worker]
1956
- partial interface WorkerGlobalScope { // not obsolete
1957
- void importScripts(DOMString... urls);
1958
- readonly attribute WorkerNavigator navigator;
1959
- };
1960
- WorkerGlobalScope implements WindowTimers;
1961
- WorkerGlobalScope implements WindowBase64;
1962
-
1963
- [Exposed=Worker]
1964
- interface WorkerNavigator {};
1965
- WorkerNavigator implements NavigatorID;
1966
- WorkerNavigator implements NavigatorLanguage;
1967
- WorkerNavigator implements NavigatorOnLine;
1968
-
1969
- [Exposed=Worker]
1970
- interface WorkerLocation { };
1971
- WorkerLocation implements URLUtilsReadOnly;
1972
-
1973
- interface Storage {
1974
- readonly attribute unsigned long length;
1975
- DOMString? key(unsigned long index);
1976
- getter DOMString? getItem(DOMString key);
1977
- setter creator void setItem(DOMString key, DOMString value);
1978
- deleter void removeItem(DOMString key);
1979
- void clear();
1980
- };
1981
-
1982
- [NoInterfaceObject]
1983
- interface WindowSessionStorage {
1984
- readonly attribute Storage sessionStorage;
1985
- };
1986
- Window implements WindowSessionStorage;
1987
-
1988
- [NoInterfaceObject]
1989
- interface WindowLocalStorage {
1990
- readonly attribute Storage localStorage;
1991
- };
1992
- Window implements WindowLocalStorage;
1993
-
1994
- [Constructor(DOMString type, optional StorageEventInit eventInitDict)]
1995
- interface StorageEvent : Event {
1996
- readonly attribute DOMString? key;
1997
- readonly attribute DOMString? oldValue;
1998
- readonly attribute DOMString? newValue;
1999
- readonly attribute DOMString url;
2000
- readonly attribute Storage? storageArea;
2001
- };
2002
-
2003
- dictionary StorageEventInit : EventInit {
2004
- DOMString? key;
2005
- DOMString? oldValue;
2006
- DOMString? newValue;
2007
- DOMString url;
2008
- Storage? storageArea;
2009
- };
2010
-
3106
+ HTMLVideoElement or
3107
+ HTMLCanvasElement or
3108
+ Blob or
3109
+ ImageData or
3110
+ CanvasRenderingContext2D or
3111
+ ImageBitmap) ImageBitmapSource;
3112
+
3113
+ // Note: intentionally not [HTMLConstructor]
2011
3114
  interface HTMLAppletElement : HTMLElement {
2012
3115
  attribute DOMString align;
2013
3116
  attribute DOMString alt;
2014
3117
  attribute DOMString archive;
2015
3118
  attribute DOMString code;
2016
- attribute DOMString codeBase;
3119
+ attribute USVString codeBase;
2017
3120
  attribute DOMString height;
2018
3121
  attribute unsigned long hspace;
2019
3122
  attribute DOMString name;
2020
- attribute DOMString _object; // the underscore is not part of the identifier
3123
+ attribute USVString _object; // the underscore is not part of the identifier
2021
3124
  attribute unsigned long vspace;
2022
3125
  attribute DOMString width;
2023
3126
  };
2024
3127
 
3128
+ [HTMLConstructor]
2025
3129
  interface HTMLMarqueeElement : HTMLElement {
2026
- attribute DOMString behavior;
2027
- attribute DOMString bgColor;
2028
- attribute DOMString direction;
2029
- attribute DOMString height;
2030
- attribute unsigned long hspace;
2031
- attribute long loop;
2032
- attribute unsigned long scrollAmount;
2033
- attribute unsigned long scrollDelay;
2034
- attribute boolean trueSpeed;
2035
- attribute unsigned long vspace;
2036
- attribute DOMString width;
3130
+ [CEReactions] attribute DOMString behavior;
3131
+ [CEReactions] attribute DOMString bgColor;
3132
+ [CEReactions] attribute DOMString direction;
3133
+ [CEReactions] attribute DOMString height;
3134
+ [CEReactions] attribute unsigned long hspace;
3135
+ [CEReactions] attribute long loop;
3136
+ [CEReactions] attribute unsigned long scrollAmount;
3137
+ [CEReactions] attribute unsigned long scrollDelay;
3138
+ [CEReactions] attribute boolean trueSpeed;
3139
+ [CEReactions] attribute unsigned long vspace;
3140
+ [CEReactions] attribute DOMString width;
2037
3141
 
2038
3142
  attribute EventHandler onbounce;
2039
3143
  attribute EventHandler onfinish;
@@ -2043,256 +3147,299 @@ interface HTMLMarqueeElement : HTMLElement {
2043
3147
  void stop();
2044
3148
  };
2045
3149
 
3150
+ [HTMLConstructor]
2046
3151
  interface HTMLFrameSetElement : HTMLElement {
2047
- attribute DOMString cols;
2048
- attribute DOMString rows;
3152
+ [CEReactions] attribute DOMString cols;
3153
+ [CEReactions] attribute DOMString rows;
2049
3154
  };
2050
3155
  HTMLFrameSetElement implements WindowEventHandlers;
2051
3156
 
3157
+ [HTMLConstructor]
2052
3158
  interface HTMLFrameElement : HTMLElement {
2053
- attribute DOMString name;
2054
- attribute DOMString scrolling;
2055
- attribute DOMString src;
2056
- attribute DOMString frameBorder;
2057
- attribute DOMString longDesc;
2058
- attribute boolean noResize;
3159
+ [CEReactions] attribute DOMString name;
3160
+ [CEReactions] attribute DOMString scrolling;
3161
+ [CEReactions] attribute USVString src;
3162
+ [CEReactions] attribute DOMString frameBorder;
3163
+ [CEReactions] attribute USVString longDesc;
3164
+ [CEReactions] attribute boolean noResize;
2059
3165
  readonly attribute Document? contentDocument;
2060
3166
  readonly attribute WindowProxy? contentWindow;
2061
3167
 
2062
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
2063
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
3168
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
3169
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
2064
3170
  };
2065
3171
 
2066
3172
  partial interface HTMLAnchorElement {
2067
- attribute DOMString coords;
2068
- attribute DOMString charset;
2069
- attribute DOMString name;
2070
- attribute DOMString rev;
2071
- attribute DOMString shape;
3173
+ [CEReactions] attribute DOMString coords;
3174
+ [CEReactions] attribute DOMString charset;
3175
+ [CEReactions] attribute DOMString name;
3176
+ [CEReactions] attribute DOMString shape;
2072
3177
  };
2073
3178
 
2074
3179
  partial interface HTMLAreaElement {
2075
- attribute boolean noHref;
3180
+ [CEReactions] attribute boolean noHref;
2076
3181
  };
2077
3182
 
2078
3183
  partial interface HTMLBodyElement {
2079
- [TreatNullAs=EmptyString] attribute DOMString text;
2080
- [TreatNullAs=EmptyString] attribute DOMString link;
2081
- [TreatNullAs=EmptyString] attribute DOMString vLink;
2082
- [TreatNullAs=EmptyString] attribute DOMString aLink;
2083
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
2084
- attribute DOMString background;
3184
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString text;
3185
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString link;
3186
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink;
3187
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink;
3188
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3189
+ attribute DOMString background;
2085
3190
  };
2086
3191
 
2087
3192
  partial interface HTMLBRElement {
2088
- attribute DOMString clear;
3193
+ [CEReactions] attribute DOMString clear;
2089
3194
  };
2090
3195
 
2091
3196
  partial interface HTMLTableCaptionElement {
2092
- attribute DOMString align;
3197
+ [CEReactions] attribute DOMString align;
2093
3198
  };
2094
3199
 
2095
3200
  partial interface HTMLTableColElement {
2096
- attribute DOMString align;
2097
- attribute DOMString ch;
2098
- attribute DOMString chOff;
2099
- attribute DOMString vAlign;
2100
- attribute DOMString width;
3201
+ [CEReactions] attribute DOMString align;
3202
+ [CEReactions] attribute DOMString ch;
3203
+ [CEReactions] attribute DOMString chOff;
3204
+ [CEReactions] attribute DOMString vAlign;
3205
+ [CEReactions] attribute DOMString width;
2101
3206
  };
2102
3207
 
3208
+ [HTMLConstructor]
2103
3209
  interface HTMLDirectoryElement : HTMLElement {
2104
- attribute boolean compact;
3210
+ [CEReactions] attribute boolean compact;
2105
3211
  };
2106
3212
 
2107
3213
  partial interface HTMLDivElement {
2108
- attribute DOMString align;
3214
+ [CEReactions] attribute DOMString align;
2109
3215
  };
2110
3216
 
2111
3217
  partial interface HTMLDListElement {
2112
- attribute boolean compact;
3218
+ [CEReactions] attribute boolean compact;
2113
3219
  };
2114
3220
 
2115
3221
  partial interface HTMLEmbedElement {
2116
- attribute DOMString align;
2117
- attribute DOMString name;
3222
+ [CEReactions] attribute DOMString align;
3223
+ [CEReactions] attribute DOMString name;
2118
3224
  };
2119
3225
 
3226
+ [HTMLConstructor]
2120
3227
  interface HTMLFontElement : HTMLElement {
2121
- [TreatNullAs=EmptyString] attribute DOMString color;
2122
- attribute DOMString face;
2123
- attribute DOMString size;
3228
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString color;
3229
+ [CEReactions] attribute DOMString face;
3230
+ [CEReactions] attribute DOMString size;
2124
3231
  };
2125
3232
 
2126
3233
  partial interface HTMLHeadingElement {
2127
- attribute DOMString align;
3234
+ [CEReactions] attribute DOMString align;
2128
3235
  };
2129
3236
 
2130
3237
  partial interface HTMLHRElement {
2131
- attribute DOMString align;
2132
- attribute DOMString color;
2133
- attribute boolean noShade;
2134
- attribute DOMString size;
2135
- attribute DOMString width;
3238
+ [CEReactions] attribute DOMString align;
3239
+ [CEReactions] attribute DOMString color;
3240
+ [CEReactions] attribute boolean noShade;
3241
+ [CEReactions] attribute DOMString size;
3242
+ [CEReactions] attribute DOMString width;
2136
3243
  };
2137
3244
 
2138
3245
  partial interface HTMLHtmlElement {
2139
- attribute DOMString version;
3246
+ [CEReactions] attribute DOMString version;
2140
3247
  };
2141
3248
 
2142
3249
  partial interface HTMLIFrameElement {
2143
- attribute DOMString align;
2144
- attribute DOMString scrolling;
2145
- attribute DOMString frameBorder;
2146
- attribute DOMString longDesc;
2147
-
2148
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
2149
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
3250
+ [CEReactions] attribute DOMString align;
3251
+ [CEReactions] attribute DOMString scrolling;
3252
+ [CEReactions] attribute DOMString frameBorder;
3253
+ [CEReactions] attribute USVString longDesc;
3254
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
3255
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
2150
3256
  };
2151
3257
 
2152
3258
  partial interface HTMLImageElement {
2153
- attribute DOMString name;
2154
- attribute DOMString lowsrc;
2155
- attribute DOMString align;
2156
- attribute unsigned long hspace;
2157
- attribute unsigned long vspace;
2158
- attribute DOMString longDesc;
3259
+ [CEReactions] attribute DOMString name;
3260
+ [CEReactions] attribute USVString lowsrc;
3261
+ [CEReactions] attribute DOMString align;
3262
+ [CEReactions] attribute unsigned long hspace;
3263
+ [CEReactions] attribute unsigned long vspace;
2159
3264
 
2160
- [TreatNullAs=EmptyString] attribute DOMString border;
3265
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
2161
3266
  };
2162
3267
 
2163
3268
  partial interface HTMLInputElement {
2164
- attribute DOMString align;
2165
- attribute DOMString useMap;
3269
+ [CEReactions] attribute DOMString align;
3270
+ [CEReactions] attribute DOMString useMap;
2166
3271
  };
2167
3272
 
2168
3273
  partial interface HTMLLegendElement {
2169
- attribute DOMString align;
3274
+ [CEReactions] attribute DOMString align;
2170
3275
  };
2171
3276
 
2172
3277
  partial interface HTMLLIElement {
2173
- attribute DOMString type;
3278
+ [CEReactions] attribute DOMString type;
2174
3279
  };
2175
3280
 
2176
3281
  partial interface HTMLLinkElement {
2177
- attribute DOMString charset;
2178
- attribute DOMString rev;
2179
- attribute DOMString target;
3282
+ [CEReactions] attribute DOMString charset;
3283
+ [CEReactions] attribute DOMString target;
2180
3284
  };
2181
3285
 
2182
3286
  partial interface HTMLMenuElement {
2183
- attribute boolean compact;
3287
+ [CEReactions] attribute boolean compact;
2184
3288
  };
2185
3289
 
2186
3290
  partial interface HTMLMetaElement {
2187
- attribute DOMString scheme;
3291
+ [CEReactions] attribute DOMString scheme;
2188
3292
  };
2189
3293
 
2190
3294
  partial interface HTMLObjectElement {
2191
- attribute DOMString align;
2192
- attribute DOMString archive;
2193
- attribute DOMString code;
2194
- attribute boolean declare;
2195
- attribute unsigned long hspace;
2196
- attribute DOMString standby;
2197
- attribute unsigned long vspace;
2198
- attribute DOMString codeBase;
2199
- attribute DOMString codeType;
3295
+ [CEReactions] attribute DOMString align;
3296
+ [CEReactions] attribute DOMString archive;
3297
+ [CEReactions] attribute DOMString code;
3298
+ [CEReactions] attribute boolean declare;
3299
+ [CEReactions] attribute unsigned long hspace;
3300
+ [CEReactions] attribute DOMString standby;
3301
+ [CEReactions] attribute unsigned long vspace;
3302
+ [CEReactions] attribute DOMString codeBase;
3303
+ [CEReactions] attribute DOMString codeType;
2200
3304
 
2201
- [TreatNullAs=EmptyString] attribute DOMString border;
3305
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
2202
3306
  };
2203
3307
 
2204
3308
  partial interface HTMLOListElement {
2205
- attribute boolean compact;
3309
+ [CEReactions] attribute boolean compact;
2206
3310
  };
2207
3311
 
2208
3312
  partial interface HTMLParagraphElement {
2209
- attribute DOMString align;
3313
+ [CEReactions] attribute DOMString align;
2210
3314
  };
2211
3315
 
2212
3316
  partial interface HTMLParamElement {
2213
- attribute DOMString type;
2214
- attribute DOMString valueType;
3317
+ [CEReactions] attribute DOMString type;
3318
+ [CEReactions] attribute DOMString valueType;
2215
3319
  };
2216
3320
 
2217
3321
  partial interface HTMLPreElement {
2218
- attribute long width;
3322
+ [CEReactions] attribute long width;
2219
3323
  };
2220
3324
 
2221
3325
  partial interface HTMLScriptElement {
2222
- attribute DOMString event;
2223
- attribute DOMString htmlFor;
3326
+ [CEReactions] attribute DOMString event;
3327
+ [CEReactions] attribute DOMString htmlFor;
2224
3328
  };
2225
3329
 
2226
3330
  partial interface HTMLTableElement {
2227
- attribute DOMString align;
2228
- attribute DOMString border;
2229
- attribute DOMString frame;
2230
- attribute DOMString rules;
2231
- attribute DOMString summary;
2232
- attribute DOMString width;
3331
+ [CEReactions] attribute DOMString align;
3332
+ [CEReactions] attribute DOMString border;
3333
+ [CEReactions] attribute DOMString frame;
3334
+ [CEReactions] attribute DOMString rules;
3335
+ [CEReactions] attribute DOMString summary;
3336
+ [CEReactions] attribute DOMString width;
2233
3337
 
2234
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
2235
- [TreatNullAs=EmptyString] attribute DOMString cellPadding;
2236
- [TreatNullAs=EmptyString] attribute DOMString cellSpacing;
3338
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3339
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding;
3340
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
2237
3341
  };
2238
3342
 
2239
3343
  partial interface HTMLTableSectionElement {
2240
- attribute DOMString align;
2241
- attribute DOMString ch;
2242
- attribute DOMString chOff;
2243
- attribute DOMString vAlign;
3344
+ [CEReactions] attribute DOMString align;
3345
+ [CEReactions] attribute DOMString ch;
3346
+ [CEReactions] attribute DOMString chOff;
3347
+ [CEReactions] attribute DOMString vAlign;
2244
3348
  };
2245
3349
 
2246
3350
  partial interface HTMLTableCellElement {
2247
- attribute DOMString align;
2248
- attribute DOMString axis;
2249
- attribute DOMString height;
2250
- attribute DOMString width;
3351
+ [CEReactions] attribute DOMString align;
3352
+ [CEReactions] attribute DOMString axis;
3353
+ [CEReactions] attribute DOMString height;
3354
+ [CEReactions] attribute DOMString width;
2251
3355
 
2252
- attribute DOMString ch;
2253
- attribute DOMString chOff;
2254
- attribute boolean noWrap;
2255
- attribute DOMString vAlign;
3356
+ [CEReactions] attribute DOMString ch;
3357
+ [CEReactions] attribute DOMString chOff;
3358
+ [CEReactions] attribute boolean noWrap;
3359
+ [CEReactions] attribute DOMString vAlign;
2256
3360
 
2257
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
2258
- };
2259
-
2260
- partial interface HTMLTableDataCellElement {
2261
- attribute DOMString abbr;
3361
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
2262
3362
  };
2263
3363
 
2264
3364
  partial interface HTMLTableRowElement {
2265
- attribute DOMString align;
2266
- attribute DOMString ch;
2267
- attribute DOMString chOff;
2268
- attribute DOMString vAlign;
3365
+ [CEReactions] attribute DOMString align;
3366
+ [CEReactions] attribute DOMString ch;
3367
+ [CEReactions] attribute DOMString chOff;
3368
+ [CEReactions] attribute DOMString vAlign;
2269
3369
 
2270
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3370
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
2271
3371
  };
2272
3372
 
2273
3373
  partial interface HTMLUListElement {
2274
- attribute boolean compact;
2275
- attribute DOMString type;
3374
+ [CEReactions] attribute boolean compact;
3375
+ [CEReactions] attribute DOMString type;
2276
3376
  };
2277
3377
 
2278
3378
  partial interface Document {
2279
- [TreatNullAs=EmptyString] attribute DOMString fgColor;
2280
- [TreatNullAs=EmptyString] attribute DOMString linkColor;
2281
- [TreatNullAs=EmptyString] attribute DOMString vlinkColor;
2282
- [TreatNullAs=EmptyString] attribute DOMString alinkColor;
2283
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3379
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor;
3380
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor;
3381
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor;
3382
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor;
3383
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
2284
3384
 
2285
- readonly attribute HTMLCollection anchors;
2286
- readonly attribute HTMLCollection applets;
3385
+ [SameObject] readonly attribute HTMLCollection anchors;
3386
+ [SameObject] readonly attribute HTMLCollection applets;
2287
3387
 
2288
3388
  void clear();
2289
3389
  void captureEvents();
2290
3390
  void releaseEvents();
2291
3391
 
2292
- readonly attribute HTMLAllCollection all;
3392
+ [SameObject] readonly attribute HTMLAllCollection all;
2293
3393
  };
2294
3394
 
2295
3395
  partial interface Window {
2296
3396
  void captureEvents();
2297
3397
  void releaseEvents();
3398
+
3399
+ [Replaceable, SameObject] readonly attribute External external;
3400
+ };
3401
+
3402
+ [NoInterfaceObject]
3403
+ interface External {
3404
+ void AddSearchProvider();
3405
+ void IsSearchProviderInstalled();
3406
+ };
3407
+
3408
+ Navigator implements NavigatorPlugins;
3409
+
3410
+ [NoInterfaceObject]
3411
+ interface NavigatorPlugins {
3412
+ [SameObject] readonly attribute PluginArray plugins;
3413
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
3414
+ boolean javaEnabled();
3415
+ };
3416
+
3417
+ interface PluginArray {
3418
+ void refresh(optional boolean reload = false);
3419
+ readonly attribute unsigned long length;
3420
+ getter Plugin? item(unsigned long index);
3421
+ getter Plugin? namedItem(DOMString name);
3422
+ };
3423
+
3424
+ interface MimeTypeArray {
3425
+ readonly attribute unsigned long length;
3426
+ getter MimeType? item(unsigned long index);
3427
+ getter MimeType? namedItem(DOMString name);
3428
+ };
3429
+
3430
+ interface Plugin {
3431
+ readonly attribute DOMString name;
3432
+ readonly attribute DOMString description;
3433
+ readonly attribute DOMString filename;
3434
+ readonly attribute unsigned long length;
3435
+ getter MimeType? item(unsigned long index);
3436
+ getter MimeType? namedItem(DOMString name);
2298
3437
  };
3438
+
3439
+ interface MimeType {
3440
+ readonly attribute DOMString type;
3441
+ readonly attribute DOMString description;
3442
+ readonly attribute DOMString suffixes; // comma-separated
3443
+ readonly attribute Plugin enabledPlugin;
3444
+ };
3445
+