webidl 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
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
+