webidl 0.1.7 → 0.1.8

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
2
  SHA1:
3
- metadata.gz: 142902bff409ee76e33c35f7259aa5a9ab22a1f6
4
- data.tar.gz: 05258c4d9be4aa0b1a5fd9d73ec98c0b982f64b6
3
+ metadata.gz: f14ae8f706ecedd826e99ad6714b987cb3b15370
4
+ data.tar.gz: fc61dac4ccd45fc210cc4bc5d5148a1210c54f40
5
5
  SHA512:
6
- metadata.gz: e432757b5cb73096b113b2e3cf1cb868c3632c85fc113e15ca2c0016998379c18cca390efbb9f5bb453457d02a68e7abe40724b9ce33d167b436fa80835f3244
7
- data.tar.gz: b807888599c3318830b0da27d88c195d0aa70ea747862be0d6973fff33391be5c0ff6401d130bb1f4692e2d5ce6e1b27ef261d3450136e8da3ff3168c9e45b27
6
+ metadata.gz: c57a418abd44297d88c45b029ff010ebea9f94dcae657a04baa52d79262a083ddc529ce317e8849ae84382d86f76188b8b3b416996450c8a90a4578c584f1eb1
7
+ data.tar.gz: 94f9fcec25a2b4c314ee0c06db001904fe7ead3111da6a6a45e42517d364836c7982360275633d764a1874f6c25fbc01fa9a0c7cb6b6a1f1e6687a5a5c1aea38
data/Rakefile CHANGED
@@ -24,7 +24,7 @@ end
24
24
 
25
25
  namespace :webidl do
26
26
  WEBIDL_URL = "http://dev.w3.org/2006/webapi/WebIDL/"
27
- HTML5_URL = "http://www.whatwg.org/specs/web-apps/current-work/"
27
+ HTML5_URL = "https://www.whatwg.org/specs/web-apps/current-work/"
28
28
 
29
29
  desc "Download the webidl spec to support/"
30
30
  task :download do
@@ -53,6 +53,7 @@ require "webidl/ast/exception"
53
53
  require "webidl/ast/attribute"
54
54
  require "webidl/ast/field"
55
55
  require "webidl/ast/implements_statement"
56
+ require "webidl/ast/promise_type"
56
57
 
57
58
  require "webidl/parser/debug_helper"
58
59
  require "webidl/parser/idl"
@@ -0,0 +1,13 @@
1
+ module WebIDL
2
+ module Ast
3
+ class PromiseType < Node
4
+
5
+ attr_reader :return_type
6
+
7
+ def initialize(return_type)
8
+ @return_type = return_type
9
+ end
10
+
11
+ end # PromiseType
12
+ end # Ast
13
+ end # WebIDL
@@ -37,5 +37,11 @@ module WebIDL
37
37
  end
38
38
  end
39
39
 
40
+ class ExtendedAttributeIdentList < Treetop::Runtime::SyntaxNode
41
+ def build(parent)
42
+ [key.text_value, list.text_value.split(",").map(&:strip)]
43
+ end
44
+ end
45
+
40
46
  end # ParseTree
41
47
  end # WebIDL
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module WebIDL
2
3
  module Parser
3
4
 
@@ -18,11 +19,11 @@ module WebIDL
18
19
  / TypeDef
19
20
  / ImplementsStatement
20
21
  end
21
-
22
+
22
23
  rule CallbackOrInterface
23
- "callback" ws obj:CallbackRestOrInterface { def build(parent) obj.build(parent) end }
24
+ "callback" ws obj:CallbackRestOrInterface { def build(parent) obj.build(parent) end }
24
25
  end
25
-
26
+
26
27
  rule CallbackRestOrInterface
27
28
  CallbackRest / Interface
28
29
  end
@@ -93,7 +94,7 @@ module WebIDL
93
94
  rule ExceptionMembers
94
95
  (eal:ExtendedAttributeList ws member:ExceptionMember ws members:ExceptionMembers ws <ParseTree::InterfaceMembers>)?
95
96
  end
96
-
97
+
97
98
  rule CallbackRest
98
99
  name:identifier ws "=" ws return_type:ReturnType ws "(" ws args:ArgumentList ")" ws ";" <ParseTree::Callback>
99
100
  end
@@ -291,6 +292,7 @@ module WebIDL
291
292
  / ExtendedAttributeIdent
292
293
  / ExtendedAttributeScopedName
293
294
  / ExtendedAttributeArgList
295
+ / ExtendedAttributeIdentList
294
296
  / ExtendedAttributeNoArg
295
297
  end
296
298
 
@@ -318,6 +320,20 @@ module WebIDL
318
320
  key:identifier "=" value:(name:identifier "(" ws args:ArgumentList ws ")" <ParseTree::ExtendedAttributeArgList>) <ParseTree::ExtendedAttributeNamedArgList>
319
321
  end
320
322
 
323
+ rule ExtendedAttributeIdentList
324
+ key:identifier "=" "(" list:IdentifierList ")" <ParseTree::ExtendedAttributeIdentList>
325
+ end
326
+
327
+ rule IdentifierList
328
+ identifier Identifiers
329
+ end
330
+
331
+ rule Identifiers
332
+ ("," IdentifierList)?
333
+ end
334
+
335
+
336
+
321
337
 
322
338
  # rule ExtendedAttribute
323
339
  # "(" ws ExtendedAttributeInner ws ")" ws ExtendedAttributeRest
@@ -417,6 +433,7 @@ module WebIDL
417
433
  rule NonAnyType
418
434
  type:PrimitiveType suffix:TypeSuffix <ParseTree::Type>
419
435
  # added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other identifiers would break parsing
436
+ / type:PromiseType Null { def build(parent); type.build(parent); end }
420
437
  / type:"DOMString" suffix:TypeSuffix !NonSpace <ParseTree::Type>
421
438
  / "sequence" ws "<" ws type:Type ws ">" null:Null <ParseTree::SequenceType>
422
439
  / type:"object" suffix:TypeSuffix <ParseTree::Type>
@@ -424,6 +441,14 @@ module WebIDL
424
441
  / type:identifier suffix:TypeSuffix <ParseTree::Type>
425
442
  end
426
443
 
444
+ rule PromiseType
445
+ "Promise" "<" return_type:ReturnType ">" {
446
+ def build(parent)
447
+ Ast::PromiseType.new(return_type.text_value)
448
+ end
449
+ }
450
+ end
451
+
427
452
  rule ConstType
428
453
  PrimitiveType Null
429
454
  / identifier Null
@@ -1,3 +1,3 @@
1
1
  module WebIDL
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -21,23 +21,23 @@ interface HTMLFormControlsCollection : HTMLCollection {
21
21
  };
22
22
 
23
23
  interface RadioNodeList : NodeList {
24
- attribute DOMString value;
24
+ attribute DOMString value;
25
25
  };
26
26
 
27
27
  interface HTMLOptionsCollection : HTMLCollection {
28
28
  // inherits item()
29
- attribute unsigned long length; // shadows inherited length
29
+ attribute unsigned long length; // shadows inherited length
30
30
  legacycaller HTMLOptionElement? (DOMString name);
31
31
  setter creator void (unsigned long index, HTMLOptionElement? option);
32
32
  void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
33
33
  void remove(long index);
34
- attribute long selectedIndex;
34
+ attribute long selectedIndex;
35
35
  };
36
36
 
37
37
  interface HTMLPropertiesCollection : HTMLCollection {
38
38
  // inherits length and item()
39
39
  getter PropertyNodeList? namedItem(DOMString name); // shadows inherited namedItem()
40
- readonly attribute DOMString[] names;
40
+ [SameObject] readonly attribute DOMString[] names;
41
41
  };
42
42
 
43
43
  typedef sequence<any> PropertyValueArray;
@@ -46,7 +46,7 @@ interface PropertyNodeList : NodeList {
46
46
  PropertyValueArray getValues();
47
47
  };
48
48
 
49
- [OverrideBuiltins, Exposed=Window,Worker]
49
+ [OverrideBuiltins, Exposed=(Window,Worker)]
50
50
  interface DOMStringMap {
51
51
  getter DOMString (DOMString name);
52
52
  setter creator void (DOMString name, DOMString value);
@@ -69,27 +69,27 @@ enum DocumentReadyState { "loading", "interactive", "complete" };
69
69
  partial /*sealed*/ interface Document {
70
70
  // resource metadata management
71
71
  [PutForwards=href, Unforgeable] readonly attribute Location? location;
72
- attribute DOMString domain;
72
+ attribute DOMString domain;
73
73
  readonly attribute DOMString referrer;
74
- attribute DOMString cookie;
74
+ attribute DOMString cookie;
75
75
  readonly attribute DOMString lastModified;
76
76
  readonly attribute DocumentReadyState readyState;
77
77
 
78
78
  // DOM tree accessors
79
79
  getter object (DOMString name);
80
- attribute DOMString title;
81
- attribute DOMString dir;
82
- attribute HTMLElement? body;
80
+ attribute DOMString title;
81
+ attribute DOMString dir;
82
+ attribute HTMLElement? body;
83
83
  readonly attribute HTMLHeadElement? head;
84
- readonly attribute HTMLCollection images;
85
- readonly attribute HTMLCollection embeds;
86
- readonly attribute HTMLCollection plugins;
87
- readonly attribute HTMLCollection links;
88
- readonly attribute HTMLCollection forms;
89
- readonly attribute HTMLCollection scripts;
84
+ [SameObject] readonly attribute HTMLCollection images;
85
+ [SameObject] readonly attribute HTMLCollection embeds;
86
+ [SameObject] readonly attribute HTMLCollection plugins;
87
+ [SameObject] readonly attribute HTMLCollection links;
88
+ [SameObject] readonly attribute HTMLCollection forms;
89
+ [SameObject] readonly attribute HTMLCollection scripts;
90
90
  NodeList getElementsByName(DOMString elementName);
91
91
  NodeList getItems(optional DOMString typeNames = ""); // microdata
92
- readonly attribute DOMElementMap cssElementMap;
92
+ [SameObject] readonly attribute DOMElementMap cssElementMap;
93
93
  readonly attribute HTMLScriptElement? currentScript;
94
94
 
95
95
  // dynamic markup insertion
@@ -103,7 +103,7 @@ partial /*sealed*/ interface Document {
103
103
  readonly attribute WindowProxy? defaultView;
104
104
  readonly attribute Element? activeElement;
105
105
  boolean hasFocus();
106
- attribute DOMString designMode;
106
+ attribute DOMString designMode;
107
107
  boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
108
108
  boolean queryCommandEnabled(DOMString commandId);
109
109
  boolean queryCommandIndeterm(DOMString commandId);
@@ -125,35 +125,33 @@ partial interface XMLDocument {
125
125
 
126
126
  interface HTMLElement : Element {
127
127
  // metadata attributes
128
- attribute DOMString title;
129
- attribute DOMString lang;
130
- attribute boolean translate;
131
- attribute DOMString dir;
132
- readonly attribute DOMStringMap dataset;
128
+ attribute DOMString title;
129
+ attribute DOMString lang;
130
+ attribute boolean translate;
131
+ attribute DOMString dir;
132
+ [SameObject] readonly attribute DOMStringMap dataset;
133
133
 
134
134
  // microdata
135
- attribute boolean itemScope;
135
+ attribute boolean itemScope;
136
136
  [PutForwards=value] readonly attribute DOMSettableTokenList itemType;
137
- attribute DOMString itemId;
137
+ attribute DOMString itemId;
138
138
  [PutForwards=value] readonly attribute DOMSettableTokenList itemRef;
139
139
  [PutForwards=value] readonly attribute DOMSettableTokenList itemProp;
140
140
  readonly attribute HTMLPropertiesCollection properties;
141
- attribute any itemValue; // acts as DOMString on setting
141
+ attribute any itemValue; // acts as DOMString on setting
142
142
 
143
143
  // user interaction
144
- attribute boolean hidden;
144
+ attribute boolean hidden;
145
145
  void click();
146
- attribute long tabIndex;
146
+ attribute long tabIndex;
147
147
  void focus();
148
148
  void blur();
149
- attribute DOMString accessKey;
149
+ attribute DOMString accessKey;
150
150
  readonly attribute DOMString accessKeyLabel;
151
- attribute boolean draggable;
151
+ attribute boolean draggable;
152
152
  [PutForwards=value] readonly attribute DOMSettableTokenList dropzone;
153
- attribute DOMString contentEditable;
154
- readonly attribute boolean isContentEditable;
155
- attribute HTMLMenuElement? contextMenu;
156
- attribute boolean spellcheck;
153
+ attribute HTMLMenuElement? contextMenu;
154
+ attribute boolean spellcheck;
157
155
  void forceSpellCheck();
158
156
 
159
157
  // command API
@@ -165,6 +163,7 @@ interface HTMLElement : Element {
165
163
  readonly attribute boolean? commandChecked;
166
164
  };
167
165
  HTMLElement implements GlobalEventHandlers;
166
+ HTMLElement implements ElementContentEditable;
168
167
 
169
168
  interface HTMLUnknownElement : HTMLElement { };
170
169
 
@@ -175,22 +174,22 @@ interface HTMLHtmlElement : HTMLElement {
175
174
  interface HTMLHeadElement : HTMLElement {};
176
175
 
177
176
  interface HTMLTitleElement : HTMLElement {
178
- attribute DOMString text;
177
+ attribute DOMString text;
179
178
  };
180
179
 
181
180
  interface HTMLBaseElement : HTMLElement {
182
- attribute DOMString href;
183
- attribute DOMString target;
181
+ attribute DOMString href;
182
+ attribute DOMString target;
184
183
  };
185
184
 
186
185
  interface HTMLLinkElement : HTMLElement {
187
- attribute DOMString href;
188
- attribute DOMString crossOrigin;
189
- attribute DOMString rel;
186
+ attribute DOMString href;
187
+ attribute DOMString? crossOrigin;
188
+ attribute DOMString rel;
190
189
  readonly attribute DOMTokenList relList;
191
- attribute DOMString media;
192
- attribute DOMString hreflang;
193
- attribute DOMString type;
190
+ attribute DOMString media;
191
+ attribute DOMString hreflang;
192
+ attribute DOMString type;
194
193
  [PutForwards=value] readonly attribute DOMSettableTokenList sizes;
195
194
 
196
195
  // also has obsolete members
@@ -198,17 +197,17 @@ interface HTMLLinkElement : HTMLElement {
198
197
  HTMLLinkElement implements LinkStyle;
199
198
 
200
199
  interface HTMLMetaElement : HTMLElement {
201
- attribute DOMString name;
202
- attribute DOMString httpEquiv;
203
- attribute DOMString content;
200
+ attribute DOMString name;
201
+ attribute DOMString httpEquiv;
202
+ attribute DOMString content;
204
203
 
205
204
  // also has obsolete members
206
205
  };
207
206
 
208
207
  interface HTMLStyleElement : HTMLElement {
209
- attribute DOMString media;
210
- attribute DOMString type;
211
- attribute boolean scoped;
208
+ attribute DOMString media;
209
+ attribute DOMString type;
210
+ attribute boolean scoped;
212
211
  };
213
212
  HTMLStyleElement implements LinkStyle;
214
213
 
@@ -235,13 +234,13 @@ interface HTMLPreElement : HTMLElement {
235
234
  };
236
235
 
237
236
  interface HTMLQuoteElement : HTMLElement {
238
- attribute DOMString cite;
237
+ attribute DOMString cite;
239
238
  };
240
239
 
241
240
  interface HTMLOListElement : HTMLElement {
242
- attribute boolean reversed;
243
- attribute long start;
244
- attribute DOMString type;
241
+ attribute boolean reversed;
242
+ attribute long start;
243
+ attribute DOMString type;
245
244
 
246
245
  // also has obsolete members
247
246
  };
@@ -251,7 +250,7 @@ interface HTMLUListElement : HTMLElement {
251
250
  };
252
251
 
253
252
  interface HTMLLIElement : HTMLElement {
254
- attribute long value;
253
+ attribute long value;
255
254
 
256
255
  // also has obsolete members
257
256
  };
@@ -265,26 +264,26 @@ interface HTMLDivElement : HTMLElement {
265
264
  };
266
265
 
267
266
  interface HTMLAnchorElement : HTMLElement {
268
- attribute DOMString target;
269
- attribute DOMString download;
267
+ attribute DOMString target;
268
+ attribute DOMString download;
270
269
  [PutForwards=value] attribute DOMSettableTokenList ping;
271
- attribute DOMString rel;
270
+ attribute DOMString rel;
272
271
  readonly attribute DOMTokenList relList;
273
- attribute DOMString hreflang;
274
- attribute DOMString type;
272
+ attribute DOMString hreflang;
273
+ attribute DOMString type;
275
274
 
276
- attribute DOMString text;
275
+ attribute DOMString text;
277
276
 
278
277
  // also has obsolete members
279
278
  };
280
279
  HTMLAnchorElement implements URLUtils;
281
280
 
282
281
  interface HTMLDataElement : HTMLElement {
283
- attribute DOMString value;
282
+ attribute DOMString value;
284
283
  };
285
284
 
286
285
  interface HTMLTimeElement : HTMLElement {
287
- attribute DOMString dateTime;
286
+ attribute DOMString dateTime;
288
287
  };
289
288
 
290
289
  interface HTMLSpanElement : HTMLElement {};
@@ -294,8 +293,16 @@ interface HTMLBRElement : HTMLElement {
294
293
  };
295
294
 
296
295
  interface HTMLModElement : HTMLElement {
297
- attribute DOMString cite;
298
- attribute DOMString dateTime;
296
+ attribute DOMString cite;
297
+ attribute DOMString dateTime;
298
+ };
299
+
300
+ interface HTMLPictureElement : HTMLElement {};
301
+
302
+ partial interface HTMLSourceElement {
303
+ attribute DOMString srcset;
304
+ attribute DOMString sizes;
305
+ attribute DOMString media;
299
306
  };
300
307
 
301
308
  [NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
@@ -303,7 +310,8 @@ interface HTMLImageElement : HTMLElement {
303
310
  attribute DOMString alt;
304
311
  attribute DOMString src;
305
312
  attribute DOMString srcset;
306
- attribute DOMString crossOrigin;
313
+ attribute DOMString sizes;
314
+ attribute DOMString? crossOrigin;
307
315
  attribute DOMString useMap;
308
316
  attribute boolean isMap;
309
317
  attribute unsigned long width;
@@ -311,46 +319,50 @@ interface HTMLImageElement : HTMLElement {
311
319
  readonly attribute unsigned long naturalWidth;
312
320
  readonly attribute unsigned long naturalHeight;
313
321
  readonly attribute boolean complete;
322
+ readonly attribute DOMString currentSrc;
314
323
 
315
324
  // also has obsolete members
316
325
  };
317
326
 
318
327
  interface HTMLIFrameElement : HTMLElement {
319
- attribute DOMString src;
320
- attribute DOMString srcdoc;
321
- attribute DOMString name;
328
+ attribute DOMString src;
329
+ attribute DOMString srcdoc;
330
+ attribute DOMString name;
322
331
  [PutForwards=value] readonly attribute DOMSettableTokenList sandbox;
323
- attribute boolean seamless;
324
- attribute boolean allowFullscreen;
325
- attribute DOMString width;
326
- attribute DOMString height;
332
+ attribute boolean seamless;
333
+ attribute boolean allowFullscreen;
334
+ attribute DOMString width;
335
+ attribute DOMString height;
327
336
  readonly attribute Document? contentDocument;
328
337
  readonly attribute WindowProxy? contentWindow;
338
+ Document? getSVGDocument();
329
339
 
330
340
  // also has obsolete members
331
341
  };
332
342
 
333
343
  interface HTMLEmbedElement : HTMLElement {
334
- attribute DOMString src;
335
- attribute DOMString type;
336
- attribute DOMString width;
337
- attribute DOMString height;
344
+ attribute DOMString src;
345
+ attribute DOMString type;
346
+ attribute DOMString width;
347
+ attribute DOMString height;
348
+ Document? getSVGDocument();
338
349
  legacycaller any (any... arguments);
339
350
 
340
351
  // also has obsolete members
341
352
  };
342
353
 
343
354
  interface HTMLObjectElement : HTMLElement {
344
- attribute DOMString data;
345
- attribute DOMString type;
346
- attribute boolean typeMustMatch;
347
- attribute DOMString name;
348
- attribute DOMString useMap;
355
+ attribute DOMString data;
356
+ attribute DOMString type;
357
+ attribute boolean typeMustMatch;
358
+ attribute DOMString name;
359
+ attribute DOMString useMap;
349
360
  readonly attribute HTMLFormElement? form;
350
- attribute DOMString width;
351
- attribute DOMString height;
361
+ attribute DOMString width;
362
+ attribute DOMString height;
352
363
  readonly attribute Document? contentDocument;
353
364
  readonly attribute WindowProxy? contentWindow;
365
+ Document? getSVGDocument();
354
366
 
355
367
  readonly attribute boolean willValidate;
356
368
  readonly attribute ValidityState validity;
@@ -365,34 +377,36 @@ interface HTMLObjectElement : HTMLElement {
365
377
  };
366
378
 
367
379
  interface HTMLParamElement : HTMLElement {
368
- attribute DOMString name;
369
- attribute DOMString value;
380
+ attribute DOMString name;
381
+ attribute DOMString value;
370
382
 
371
383
  // also has obsolete members
372
384
  };
373
385
 
374
386
  interface HTMLVideoElement : HTMLMediaElement {
375
- attribute unsigned long width;
376
- attribute unsigned long height;
387
+ attribute unsigned long width;
388
+ attribute unsigned long height;
377
389
  readonly attribute unsigned long videoWidth;
378
390
  readonly attribute unsigned long videoHeight;
379
- attribute DOMString poster;
391
+ attribute DOMString poster;
380
392
  };
381
393
 
382
394
  [NamedConstructor=Audio(optional DOMString src)]
383
395
  interface HTMLAudioElement : HTMLMediaElement {};
384
396
 
385
397
  interface HTMLSourceElement : HTMLElement {
386
- attribute DOMString src;
387
- attribute DOMString type;
398
+ attribute DOMString src;
399
+ attribute DOMString type;
400
+
401
+ // also has obsolete members
388
402
  };
389
403
 
390
404
  interface HTMLTrackElement : HTMLElement {
391
- attribute DOMString kind;
392
- attribute DOMString src;
393
- attribute DOMString srclang;
394
- attribute DOMString label;
395
- attribute boolean default;
405
+ attribute DOMString kind;
406
+ attribute DOMString src;
407
+ attribute DOMString srclang;
408
+ attribute DOMString label;
409
+ attribute boolean default;
396
410
 
397
411
  const unsigned short NONE = 0;
398
412
  const unsigned short LOADING = 1;
@@ -404,21 +418,23 @@ interface HTMLTrackElement : HTMLElement {
404
418
  };
405
419
 
406
420
  enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" };
421
+ typedef (MediaStream or MediaSource or Blob) MediaProvider;
407
422
  interface HTMLMediaElement : HTMLElement {
408
423
 
409
424
  // error state
410
425
  readonly attribute MediaError? error;
411
426
 
412
427
  // network state
413
- attribute DOMString src;
428
+ attribute DOMString src;
429
+ attribute MediaProvider? srcObject;
414
430
  readonly attribute DOMString currentSrc;
415
- attribute DOMString crossOrigin;
431
+ attribute DOMString? crossOrigin;
416
432
  const unsigned short NETWORK_EMPTY = 0;
417
433
  const unsigned short NETWORK_IDLE = 1;
418
434
  const unsigned short NETWORK_LOADING = 2;
419
435
  const unsigned short NETWORK_NO_SOURCE = 3;
420
436
  readonly attribute unsigned short networkState;
421
- attribute DOMString preload;
437
+ attribute DOMString preload;
422
438
  readonly attribute TimeRanges buffered;
423
439
  void load();
424
440
  CanPlayTypeResult canPlayType(DOMString type);
@@ -433,35 +449,35 @@ interface HTMLMediaElement : HTMLElement {
433
449
  readonly attribute boolean seeking;
434
450
 
435
451
  // playback state
436
- attribute double currentTime;
452
+ attribute double currentTime;
437
453
  void fastSeek(double time);
438
454
  readonly attribute unrestricted double duration;
439
455
  Date getStartDate();
440
456
  readonly attribute boolean paused;
441
- attribute double defaultPlaybackRate;
442
- attribute double playbackRate;
457
+ attribute double defaultPlaybackRate;
458
+ attribute double playbackRate;
443
459
  readonly attribute TimeRanges played;
444
460
  readonly attribute TimeRanges seekable;
445
461
  readonly attribute boolean ended;
446
- attribute boolean autoplay;
447
- attribute boolean loop;
462
+ attribute boolean autoplay;
463
+ attribute boolean loop;
448
464
  void play();
449
465
  void pause();
450
466
 
451
467
  // media controller
452
- attribute DOMString mediaGroup;
453
- attribute MediaController? controller;
468
+ attribute DOMString mediaGroup;
469
+ attribute MediaController? controller;
454
470
 
455
471
  // controls
456
- attribute boolean controls;
457
- attribute double volume;
458
- attribute boolean muted;
459
- attribute boolean defaultMuted;
472
+ attribute boolean controls;
473
+ attribute double volume;
474
+ attribute boolean muted;
475
+ attribute boolean defaultMuted;
460
476
 
461
477
  // tracks
462
- readonly attribute AudioTrackList audioTracks;
463
- readonly attribute VideoTrackList videoTracks;
464
- readonly attribute TextTrackList textTracks;
478
+ [SameObject] readonly attribute AudioTrackList audioTracks;
479
+ [SameObject] readonly attribute VideoTrackList videoTracks;
480
+ [SameObject] readonly attribute TextTrackList textTracks;
465
481
  TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
466
482
  };
467
483
 
@@ -478,9 +494,9 @@ interface AudioTrackList : EventTarget {
478
494
  getter AudioTrack (unsigned long index);
479
495
  AudioTrack? getTrackById(DOMString id);
480
496
 
481
- attribute EventHandler onchange;
482
- attribute EventHandler onaddtrack;
483
- attribute EventHandler onremovetrack;
497
+ attribute EventHandler onchange;
498
+ attribute EventHandler onaddtrack;
499
+ attribute EventHandler onremovetrack;
484
500
  };
485
501
 
486
502
  interface AudioTrack {
@@ -488,7 +504,7 @@ interface AudioTrack {
488
504
  readonly attribute DOMString kind;
489
505
  readonly attribute DOMString label;
490
506
  readonly attribute DOMString language;
491
- attribute boolean enabled;
507
+ attribute boolean enabled;
492
508
  };
493
509
 
494
510
  interface VideoTrackList : EventTarget {
@@ -497,9 +513,9 @@ interface VideoTrackList : EventTarget {
497
513
  VideoTrack? getTrackById(DOMString id);
498
514
  readonly attribute long selectedIndex;
499
515
 
500
- attribute EventHandler onchange;
501
- attribute EventHandler onaddtrack;
502
- attribute EventHandler onremovetrack;
516
+ attribute EventHandler onchange;
517
+ attribute EventHandler onaddtrack;
518
+ attribute EventHandler onremovetrack;
503
519
  };
504
520
 
505
521
  interface VideoTrack {
@@ -507,7 +523,7 @@ interface VideoTrack {
507
523
  readonly attribute DOMString kind;
508
524
  readonly attribute DOMString label;
509
525
  readonly attribute DOMString language;
510
- attribute boolean selected;
526
+ attribute boolean selected;
511
527
  };
512
528
 
513
529
  enum MediaControllerPlaybackState { "waiting", "playing", "ended" };
@@ -518,7 +534,7 @@ interface MediaController : EventTarget {
518
534
  readonly attribute TimeRanges buffered;
519
535
  readonly attribute TimeRanges seekable;
520
536
  readonly attribute unrestricted double duration;
521
- attribute double currentTime;
537
+ attribute double currentTime;
522
538
 
523
539
  readonly attribute boolean paused;
524
540
  readonly attribute MediaControllerPlaybackState playbackState;
@@ -527,27 +543,27 @@ interface MediaController : EventTarget {
527
543
  void unpause();
528
544
  void play(); // calls play() on all media elements as well
529
545
 
530
- attribute double defaultPlaybackRate;
531
- attribute double playbackRate;
546
+ attribute double defaultPlaybackRate;
547
+ attribute double playbackRate;
532
548
 
533
- attribute double volume;
534
- attribute boolean muted;
549
+ attribute double volume;
550
+ attribute boolean muted;
535
551
 
536
- attribute EventHandler onemptied;
537
- attribute EventHandler onloadedmetadata;
538
- attribute EventHandler onloadeddata;
539
- attribute EventHandler oncanplay;
540
- attribute EventHandler oncanplaythrough;
541
- attribute EventHandler onplaying;
542
- attribute EventHandler onended;
543
- attribute EventHandler onwaiting;
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;
544
560
 
545
- attribute EventHandler ondurationchange;
546
- attribute EventHandler ontimeupdate;
547
- attribute EventHandler onplay;
548
- attribute EventHandler onpause;
549
- attribute EventHandler onratechange;
550
- attribute EventHandler onvolumechange;
561
+ attribute EventHandler ondurationchange;
562
+ attribute EventHandler ontimeupdate;
563
+ attribute EventHandler onplay;
564
+ attribute EventHandler onpause;
565
+ attribute EventHandler onratechange;
566
+ attribute EventHandler onvolumechange;
551
567
  };
552
568
 
553
569
  interface TextTrackList : EventTarget {
@@ -555,9 +571,9 @@ interface TextTrackList : EventTarget {
555
571
  getter TextTrack (unsigned long index);
556
572
  TextTrack? getTrackById(DOMString id);
557
573
 
558
- attribute EventHandler onchange;
559
- attribute EventHandler onaddtrack;
560
- attribute EventHandler onremovetrack;
574
+ attribute EventHandler onchange;
575
+ attribute EventHandler onaddtrack;
576
+ attribute EventHandler onremovetrack;
561
577
  };
562
578
 
563
579
  enum TextTrackMode { "disabled", "hidden", "showing" };
@@ -570,7 +586,7 @@ interface TextTrack : EventTarget {
570
586
  readonly attribute DOMString id;
571
587
  readonly attribute DOMString inBandMetadataTrackDispatchType;
572
588
 
573
- attribute TextTrackMode mode;
589
+ attribute TextTrackMode mode;
574
590
 
575
591
  readonly attribute TextTrackCueList? cues;
576
592
  readonly attribute TextTrackCueList? activeCues;
@@ -578,7 +594,7 @@ interface TextTrack : EventTarget {
578
594
  void addCue(TextTrackCue cue);
579
595
  void removeCue(TextTrackCue cue);
580
596
 
581
- attribute EventHandler oncuechange;
597
+ attribute EventHandler oncuechange;
582
598
  };
583
599
 
584
600
  interface TextTrackCueList {
@@ -590,13 +606,13 @@ interface TextTrackCueList {
590
606
  interface TextTrackCue : EventTarget {
591
607
  readonly attribute TextTrack? track;
592
608
 
593
- attribute DOMString id;
594
- attribute double startTime;
595
- attribute double endTime;
596
- attribute boolean pauseOnExit;
609
+ attribute DOMString id;
610
+ attribute double startTime;
611
+ attribute double endTime;
612
+ attribute boolean pauseOnExit;
597
613
 
598
- attribute EventHandler onenter;
599
- attribute EventHandler onexit;
614
+ attribute EventHandler onenter;
615
+ attribute EventHandler onexit;
600
616
  };
601
617
 
602
618
  interface TimeRanges {
@@ -607,43 +623,43 @@ interface TimeRanges {
607
623
 
608
624
  [Constructor(DOMString type, optional TrackEventInit eventInitDict)]
609
625
  interface TrackEvent : Event {
610
- readonly attribute (VideoTrack or AudioTrack or TextTrack) track;
626
+ readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
611
627
  };
612
628
 
613
629
  dictionary TrackEventInit : EventInit {
614
- (VideoTrack or AudioTrack or TextTrack) track;
630
+ (VideoTrack or AudioTrack or TextTrack)? track;
615
631
  };
616
632
 
617
633
  interface HTMLMapElement : HTMLElement {
618
- attribute DOMString name;
634
+ attribute DOMString name;
619
635
  readonly attribute HTMLCollection areas;
620
636
  readonly attribute HTMLCollection images;
621
637
  };
622
638
 
623
639
  interface HTMLAreaElement : HTMLElement {
624
- attribute DOMString alt;
625
- attribute DOMString coords;
626
- attribute DOMString shape;
627
- attribute DOMString target;
628
- attribute DOMString download;
640
+ attribute DOMString alt;
641
+ attribute DOMString coords;
642
+ attribute DOMString shape;
643
+ attribute DOMString target;
644
+ attribute DOMString download;
629
645
  [PutForwards=value] attribute DOMSettableTokenList ping;
630
- attribute DOMString rel;
646
+ attribute DOMString rel;
631
647
  readonly attribute DOMTokenList relList;
632
- attribute DOMString hreflang;
633
- attribute DOMString type;
648
+ attribute DOMString hreflang;
649
+ attribute DOMString type;
634
650
 
635
651
  // also has obsolete members
636
652
  };
637
653
  HTMLAreaElement implements URLUtils;
638
654
 
639
655
  interface HTMLTableElement : HTMLElement {
640
- attribute HTMLTableCaptionElement? caption;
656
+ attribute HTMLTableCaptionElement? caption;
641
657
  HTMLElement createCaption();
642
658
  void deleteCaption();
643
- attribute HTMLTableSectionElement? tHead;
659
+ attribute HTMLTableSectionElement? tHead;
644
660
  HTMLElement createTHead();
645
661
  void deleteTHead();
646
- attribute HTMLTableSectionElement? tFoot;
662
+ attribute HTMLTableSectionElement? tFoot;
647
663
  HTMLElement createTFoot();
648
664
  void deleteTFoot();
649
665
  readonly attribute HTMLCollection tBodies;
@@ -651,7 +667,7 @@ interface HTMLTableElement : HTMLElement {
651
667
  readonly attribute HTMLCollection rows;
652
668
  HTMLElement insertRow(optional long index = -1);
653
669
  void deleteRow(long index);
654
- attribute boolean sortable;
670
+ attribute boolean sortable;
655
671
  void stopSorting();
656
672
 
657
673
  // also has obsolete members
@@ -662,7 +678,7 @@ interface HTMLTableCaptionElement : HTMLElement {
662
678
  };
663
679
 
664
680
  interface HTMLTableColElement : HTMLElement {
665
- attribute unsigned long span;
681
+ attribute unsigned long span;
666
682
 
667
683
  // also has obsolete members
668
684
  };
@@ -690,15 +706,15 @@ interface HTMLTableDataCellElement : HTMLTableCellElement {
690
706
  };
691
707
 
692
708
  interface HTMLTableHeaderCellElement : HTMLTableCellElement {
693
- attribute DOMString scope;
694
- attribute DOMString abbr;
695
- attribute DOMString sorted;
709
+ attribute DOMString scope;
710
+ attribute DOMString abbr;
711
+ attribute DOMString sorted;
696
712
  void sort();
697
713
  };
698
714
 
699
715
  interface HTMLTableCellElement : HTMLElement {
700
- attribute unsigned long colSpan;
701
- attribute unsigned long rowSpan;
716
+ attribute unsigned long colSpan;
717
+ attribute unsigned long rowSpan;
702
718
  [PutForwards=value] readonly attribute DOMSettableTokenList headers;
703
719
  readonly attribute long cellIndex;
704
720
 
@@ -707,15 +723,15 @@ interface HTMLTableCellElement : HTMLElement {
707
723
 
708
724
  [OverrideBuiltins]
709
725
  interface HTMLFormElement : HTMLElement {
710
- attribute DOMString acceptCharset;
711
- attribute DOMString action;
712
- attribute DOMString autocomplete;
713
- attribute DOMString enctype;
714
- attribute DOMString encoding;
715
- attribute DOMString method;
716
- attribute DOMString name;
717
- attribute boolean noValidate;
718
- attribute DOMString target;
726
+ attribute DOMString acceptCharset;
727
+ attribute DOMString action;
728
+ attribute DOMString autocomplete;
729
+ attribute DOMString enctype;
730
+ attribute DOMString encoding;
731
+ attribute DOMString method;
732
+ attribute DOMString name;
733
+ attribute boolean noValidate;
734
+ attribute DOMString target;
719
735
 
720
736
  readonly attribute HTMLFormControlsCollection elements;
721
737
  readonly attribute long length;
@@ -732,51 +748,51 @@ interface HTMLFormElement : HTMLElement {
732
748
 
733
749
  interface HTMLLabelElement : HTMLElement {
734
750
  readonly attribute HTMLFormElement? form;
735
- attribute DOMString htmlFor;
751
+ attribute DOMString htmlFor;
736
752
  readonly attribute HTMLElement? control;
737
753
  };
738
754
 
739
755
  interface HTMLInputElement : HTMLElement {
740
- attribute DOMString accept;
741
- attribute DOMString alt;
742
- attribute DOMString autocomplete;
743
- attribute boolean autofocus;
744
- attribute boolean defaultChecked;
745
- attribute boolean checked;
746
- attribute DOMString dirName;
747
- attribute boolean disabled;
756
+ attribute DOMString accept;
757
+ attribute DOMString alt;
758
+ attribute DOMString autocomplete;
759
+ attribute boolean autofocus;
760
+ attribute boolean defaultChecked;
761
+ attribute boolean checked;
762
+ attribute DOMString dirName;
763
+ attribute boolean disabled;
748
764
  readonly attribute HTMLFormElement? form;
749
765
  readonly attribute FileList? files;
750
- attribute DOMString formAction;
751
- attribute DOMString formEnctype;
752
- attribute DOMString formMethod;
753
- attribute boolean formNoValidate;
754
- attribute DOMString formTarget;
755
- attribute unsigned long height;
756
- attribute boolean indeterminate;
757
- attribute DOMString inputMode;
766
+ attribute DOMString formAction;
767
+ attribute DOMString formEnctype;
768
+ attribute DOMString formMethod;
769
+ attribute boolean formNoValidate;
770
+ attribute DOMString formTarget;
771
+ attribute unsigned long height;
772
+ attribute boolean indeterminate;
773
+ attribute DOMString inputMode;
758
774
  readonly attribute HTMLElement? list;
759
- attribute DOMString max;
760
- attribute long maxLength;
761
- attribute DOMString min;
762
- attribute long minLength;
763
- attribute boolean multiple;
764
- attribute DOMString name;
765
- attribute DOMString pattern;
766
- attribute DOMString placeholder;
767
- attribute boolean readOnly;
768
- attribute boolean required;
769
- attribute unsigned long size;
770
- attribute DOMString src;
771
- attribute DOMString step;
772
- attribute DOMString type;
773
- attribute DOMString defaultValue;
775
+ attribute DOMString max;
776
+ attribute long maxLength;
777
+ attribute DOMString min;
778
+ attribute long minLength;
779
+ attribute boolean multiple;
780
+ attribute DOMString name;
781
+ attribute DOMString pattern;
782
+ attribute DOMString placeholder;
783
+ attribute boolean readOnly;
784
+ attribute boolean required;
785
+ attribute unsigned long size;
786
+ attribute DOMString src;
787
+ attribute DOMString step;
788
+ attribute DOMString type;
789
+ attribute DOMString defaultValue;
774
790
  [TreatNullAs=EmptyString] attribute DOMString value;
775
- attribute Date? valueAsDate;
776
- attribute unrestricted double valueAsNumber;
777
- attribute double valueLow;
778
- attribute double valueHigh;
779
- attribute unsigned long width;
791
+ attribute Date? valueAsDate;
792
+ attribute unrestricted double valueAsNumber;
793
+ attribute double valueLow;
794
+ attribute double valueHigh;
795
+ attribute unsigned long width;
780
796
 
781
797
  void stepUp(optional long n = 1);
782
798
  void stepDown(optional long n = 1);
@@ -791,9 +807,9 @@ interface HTMLInputElement : HTMLElement {
791
807
  readonly attribute NodeList labels;
792
808
 
793
809
  void select();
794
- attribute unsigned long selectionStart;
795
- attribute unsigned long selectionEnd;
796
- attribute DOMString selectionDirection;
810
+ attribute unsigned long selectionStart;
811
+ attribute unsigned long selectionEnd;
812
+ attribute DOMString selectionDirection;
797
813
  void setRangeText(DOMString replacement);
798
814
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
799
815
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
@@ -802,18 +818,18 @@ interface HTMLInputElement : HTMLElement {
802
818
  };
803
819
 
804
820
  interface HTMLButtonElement : HTMLElement {
805
- attribute boolean autofocus;
806
- attribute boolean disabled;
821
+ attribute boolean autofocus;
822
+ attribute boolean disabled;
807
823
  readonly attribute HTMLFormElement? form;
808
- attribute DOMString formAction;
809
- attribute DOMString formEnctype;
810
- attribute DOMString formMethod;
811
- attribute boolean formNoValidate;
812
- attribute DOMString formTarget;
813
- attribute DOMString name;
814
- attribute DOMString type;
815
- attribute DOMString value;
816
- attribute HTMLMenuElement? menu;
824
+ attribute DOMString formAction;
825
+ attribute DOMString formEnctype;
826
+ attribute DOMString formMethod;
827
+ attribute boolean formNoValidate;
828
+ attribute DOMString formTarget;
829
+ attribute DOMString name;
830
+ attribute DOMString type;
831
+ attribute DOMString value;
832
+ attribute HTMLMenuElement? menu;
817
833
 
818
834
  readonly attribute boolean willValidate;
819
835
  readonly attribute ValidityState validity;
@@ -826,19 +842,19 @@ interface HTMLButtonElement : HTMLElement {
826
842
  };
827
843
 
828
844
  interface HTMLSelectElement : HTMLElement {
829
- attribute DOMString autocomplete;
830
- attribute boolean autofocus;
831
- attribute boolean disabled;
845
+ attribute DOMString autocomplete;
846
+ attribute boolean autofocus;
847
+ attribute boolean disabled;
832
848
  readonly attribute HTMLFormElement? form;
833
- attribute boolean multiple;
834
- attribute DOMString name;
835
- attribute boolean required;
836
- attribute unsigned long size;
849
+ attribute boolean multiple;
850
+ attribute DOMString name;
851
+ attribute boolean required;
852
+ attribute unsigned long size;
837
853
 
838
854
  readonly attribute DOMString type;
839
855
 
840
856
  readonly attribute HTMLOptionsCollection options;
841
- attribute unsigned long length;
857
+ attribute unsigned long length;
842
858
  getter Element? item(unsigned long index);
843
859
  HTMLOptionElement? namedItem(DOMString name);
844
860
  void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
@@ -847,8 +863,8 @@ interface HTMLSelectElement : HTMLElement {
847
863
  setter creator void (unsigned long index, HTMLOptionElement? option);
848
864
 
849
865
  readonly attribute HTMLCollection selectedOptions;
850
- attribute long selectedIndex;
851
- attribute DOMString value;
866
+ attribute long selectedIndex;
867
+ attribute DOMString value;
852
868
 
853
869
  readonly attribute boolean willValidate;
854
870
  readonly attribute ValidityState validity;
@@ -865,42 +881,42 @@ interface HTMLDataListElement : HTMLElement {
865
881
  };
866
882
 
867
883
  interface HTMLOptGroupElement : HTMLElement {
868
- attribute boolean disabled;
869
- attribute DOMString label;
884
+ attribute boolean disabled;
885
+ attribute DOMString label;
870
886
  };
871
887
 
872
888
  [NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
873
889
  interface HTMLOptionElement : HTMLElement {
874
- attribute boolean disabled;
890
+ attribute boolean disabled;
875
891
  readonly attribute HTMLFormElement? form;
876
- attribute DOMString label;
877
- attribute boolean defaultSelected;
878
- attribute boolean selected;
879
- attribute DOMString value;
892
+ attribute DOMString label;
893
+ attribute boolean defaultSelected;
894
+ attribute boolean selected;
895
+ attribute DOMString value;
880
896
 
881
- attribute DOMString text;
897
+ attribute DOMString text;
882
898
  readonly attribute long index;
883
899
  };
884
900
 
885
901
  interface HTMLTextAreaElement : HTMLElement {
886
- attribute DOMString autocomplete;
887
- attribute boolean autofocus;
888
- attribute unsigned long cols;
889
- attribute DOMString dirName;
890
- attribute boolean disabled;
902
+ attribute DOMString autocomplete;
903
+ attribute boolean autofocus;
904
+ attribute unsigned long cols;
905
+ attribute DOMString dirName;
906
+ attribute boolean disabled;
891
907
  readonly attribute HTMLFormElement? form;
892
- attribute DOMString inputMode;
893
- attribute long maxLength;
894
- attribute long minLength;
895
- attribute DOMString name;
896
- attribute DOMString placeholder;
897
- attribute boolean readOnly;
898
- attribute boolean required;
899
- attribute unsigned long rows;
900
- attribute DOMString wrap;
908
+ attribute DOMString inputMode;
909
+ attribute long maxLength;
910
+ attribute long minLength;
911
+ attribute DOMString name;
912
+ attribute DOMString placeholder;
913
+ attribute boolean readOnly;
914
+ attribute boolean required;
915
+ attribute unsigned long rows;
916
+ attribute DOMString wrap;
901
917
 
902
918
  readonly attribute DOMString type;
903
- attribute DOMString defaultValue;
919
+ attribute DOMString defaultValue;
904
920
  [TreatNullAs=EmptyString] attribute DOMString value;
905
921
  readonly attribute unsigned long textLength;
906
922
 
@@ -914,21 +930,21 @@ interface HTMLTextAreaElement : HTMLElement {
914
930
  readonly attribute NodeList labels;
915
931
 
916
932
  void select();
917
- attribute unsigned long selectionStart;
918
- attribute unsigned long selectionEnd;
919
- attribute DOMString selectionDirection;
933
+ attribute unsigned long selectionStart;
934
+ attribute unsigned long selectionEnd;
935
+ attribute DOMString selectionDirection;
920
936
  void setRangeText(DOMString replacement);
921
937
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
922
938
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
923
939
  };
924
940
 
925
941
  interface HTMLKeygenElement : HTMLElement {
926
- attribute boolean autofocus;
927
- attribute DOMString challenge;
928
- attribute boolean disabled;
942
+ attribute boolean autofocus;
943
+ attribute DOMString challenge;
944
+ attribute boolean disabled;
929
945
  readonly attribute HTMLFormElement? form;
930
- attribute DOMString keytype;
931
- attribute DOMString name;
946
+ attribute DOMString keytype;
947
+ attribute DOMString name;
932
948
 
933
949
  readonly attribute DOMString type;
934
950
 
@@ -945,11 +961,11 @@ interface HTMLKeygenElement : HTMLElement {
945
961
  interface HTMLOutputElement : HTMLElement {
946
962
  [PutForwards=value] readonly attribute DOMSettableTokenList htmlFor;
947
963
  readonly attribute HTMLFormElement? form;
948
- attribute DOMString name;
964
+ attribute DOMString name;
949
965
 
950
966
  readonly attribute DOMString type;
951
- attribute DOMString defaultValue;
952
- attribute DOMString value;
967
+ attribute DOMString defaultValue;
968
+ attribute DOMString value;
953
969
 
954
970
  readonly attribute boolean willValidate;
955
971
  readonly attribute ValidityState validity;
@@ -962,33 +978,33 @@ interface HTMLOutputElement : HTMLElement {
962
978
  };
963
979
 
964
980
  interface HTMLProgressElement : HTMLElement {
965
- attribute double value;
966
- attribute double max;
981
+ attribute double value;
982
+ attribute double max;
967
983
  readonly attribute double position;
968
984
  readonly attribute NodeList labels;
969
985
  };
970
986
 
971
987
  interface HTMLMeterElement : HTMLElement {
972
- attribute double value;
973
- attribute double min;
974
- attribute double max;
975
- attribute double low;
976
- attribute double high;
977
- attribute double optimum;
988
+ attribute double value;
989
+ attribute double min;
990
+ attribute double max;
991
+ attribute double low;
992
+ attribute double high;
993
+ attribute double optimum;
978
994
  readonly attribute NodeList labels;
979
995
  };
980
996
 
981
997
  interface HTMLFieldSetElement : HTMLElement {
982
- attribute boolean disabled;
998
+ attribute boolean disabled;
983
999
  readonly attribute HTMLFormElement? form;
984
- attribute DOMString name;
1000
+ attribute DOMString name;
985
1001
 
986
1002
  readonly attribute DOMString type;
987
1003
 
988
1004
  readonly attribute HTMLFormControlsCollection elements;
989
1005
 
990
1006
  readonly attribute boolean willValidate;
991
- readonly attribute ValidityState validity;
1007
+ [SameObject] readonly attribute ValidityState validity;
992
1008
  readonly attribute DOMString validationMessage;
993
1009
  boolean checkValidity();
994
1010
  boolean reportValidity();
@@ -1012,6 +1028,7 @@ dictionary AutocompleteErrorEventInit : EventInit {
1012
1028
  AutocompleteErrorReason reason;
1013
1029
  };
1014
1030
 
1031
+
1015
1032
  enum SelectionMode {
1016
1033
  "select",
1017
1034
  "start",
@@ -1034,24 +1051,24 @@ interface ValidityState {
1034
1051
  };
1035
1052
 
1036
1053
  interface HTMLDetailsElement : HTMLElement {
1037
- attribute boolean open;
1054
+ attribute boolean open;
1038
1055
  };
1039
1056
 
1040
1057
  interface HTMLMenuElement : HTMLElement {
1041
- attribute DOMString type;
1042
- attribute DOMString label;
1058
+ attribute DOMString type;
1059
+ attribute DOMString label;
1043
1060
 
1044
1061
  // also has obsolete members
1045
1062
  };
1046
1063
 
1047
1064
  interface HTMLMenuItemElement : HTMLElement {
1048
- attribute DOMString type;
1049
- attribute DOMString label;
1050
- attribute DOMString icon;
1051
- attribute boolean disabled;
1052
- attribute boolean checked;
1053
- attribute DOMString radiogroup;
1054
- attribute boolean default;
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;
1055
1072
  readonly attribute HTMLElement? command;
1056
1073
  };
1057
1074
 
@@ -1065,21 +1082,21 @@ dictionary RelatedEventInit : EventInit {
1065
1082
  };
1066
1083
 
1067
1084
  interface HTMLDialogElement : HTMLElement {
1068
- attribute boolean open;
1069
- attribute DOMString returnValue;
1085
+ attribute boolean open;
1086
+ attribute DOMString returnValue;
1070
1087
  void show(optional (MouseEvent or Element) anchor);
1071
1088
  void showModal(optional (MouseEvent or Element) anchor);
1072
1089
  void close(optional DOMString returnValue);
1073
1090
  };
1074
1091
 
1075
1092
  interface HTMLScriptElement : HTMLElement {
1076
- attribute DOMString src;
1077
- attribute DOMString type;
1078
- attribute DOMString charset;
1079
- attribute boolean async;
1080
- attribute boolean defer;
1081
- attribute DOMString crossOrigin;
1082
- attribute DOMString text;
1093
+ attribute DOMString src;
1094
+ attribute DOMString type;
1095
+ attribute DOMString charset;
1096
+ attribute boolean async;
1097
+ attribute boolean defer;
1098
+ attribute DOMString? crossOrigin;
1099
+ attribute DOMString text;
1083
1100
 
1084
1101
  // also has obsolete members
1085
1102
  };
@@ -1091,8 +1108,8 @@ interface HTMLTemplateElement : HTMLElement {
1091
1108
  typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
1092
1109
 
1093
1110
  interface HTMLCanvasElement : HTMLElement {
1094
- attribute unsigned long width;
1095
- attribute unsigned long height;
1111
+ attribute unsigned long width;
1112
+ attribute unsigned long height;
1096
1113
 
1097
1114
  RenderingContext? getContext(DOMString contextId, any... arguments);
1098
1115
  boolean probablySupportsContext(DOMString contextId, any... arguments);
@@ -1104,7 +1121,7 @@ interface HTMLCanvasElement : HTMLElement {
1104
1121
  void toBlob(FileCallback? _callback, optional DOMString type, any... arguments);
1105
1122
  };
1106
1123
 
1107
- [Exposed=Window,Worker]
1124
+ [Exposed=(Window,Worker)]
1108
1125
  interface CanvasProxy {
1109
1126
  void setContext(RenderingContext context);
1110
1127
  };
@@ -1118,15 +1135,18 @@ typedef (HTMLImageElement or
1118
1135
 
1119
1136
  enum CanvasFillRule { "nonzero", "evenodd" };
1120
1137
 
1121
- [Constructor(optional unsigned long width, unsigned long height), Exposed=Window,Worker]
1138
+
1139
+ [Constructor(),
1140
+ Constructor(unsigned long width, unsigned long height),
1141
+ Exposed=(Window,Worker)]
1122
1142
  interface CanvasRenderingContext2D {
1123
1143
 
1124
1144
  // back-reference to the canvas
1125
1145
  readonly attribute HTMLCanvasElement canvas;
1126
1146
 
1127
1147
  // canvas dimensions
1128
- attribute unsigned long width;
1129
- attribute unsigned long height;
1148
+ attribute unsigned long width;
1149
+ attribute unsigned long height;
1130
1150
 
1131
1151
  // for contexts that aren't directly fixed to a specific canvas
1132
1152
  void commit(); // push the image to the output bitmap
@@ -1136,7 +1156,7 @@ interface CanvasRenderingContext2D {
1136
1156
  void restore(); // pop state stack and restore state
1137
1157
 
1138
1158
  // transformations (default transform is the identity matrix)
1139
- attribute SVGMatrix currentTransform;
1159
+ attribute SVGMatrix currentTransform;
1140
1160
  void scale(unrestricted double x, unrestricted double y);
1141
1161
  void rotate(unrestricted double angle);
1142
1162
  void translate(unrestricted double x, unrestricted double y);
@@ -1145,24 +1165,24 @@ interface CanvasRenderingContext2D {
1145
1165
  void resetTransform();
1146
1166
 
1147
1167
  // compositing
1148
- attribute unrestricted double globalAlpha; // (default 1.0)
1149
- attribute DOMString globalCompositeOperation; // (default source-over)
1168
+ attribute unrestricted double globalAlpha; // (default 1.0)
1169
+ attribute DOMString globalCompositeOperation; // (default source-over)
1150
1170
 
1151
1171
  // image smoothing
1152
- attribute boolean imageSmoothingEnabled; // (default true)
1172
+ attribute boolean imageSmoothingEnabled; // (default true)
1153
1173
 
1154
- // colors and styles (see also the CanvasDrawingStyles interface)
1155
- attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
1156
- attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
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)
1157
1177
  CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
1158
1178
  CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
1159
1179
  CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
1160
1180
 
1161
1181
  // shadows
1162
- attribute unrestricted double shadowOffsetX; // (default 0)
1163
- attribute unrestricted double shadowOffsetY; // (default 0)
1164
- attribute unrestricted double shadowBlur; // (default 0)
1165
- attribute DOMString shadowColor; // (default transparent black)
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)
1166
1186
 
1167
1187
  // rects
1168
1188
  void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
@@ -1175,10 +1195,8 @@ interface CanvasRenderingContext2D {
1175
1195
  void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
1176
1196
  void stroke();
1177
1197
  void stroke(Path2D path);
1178
- void drawSystemFocusRing(Element element);
1179
- void drawSystemFocusRing(Path2D path, Element element);
1180
- boolean drawCustomFocusRing(Element element);
1181
- boolean drawCustomFocusRing(Path2D path, Element element);
1198
+ void drawFocusIfNeeded(Element element);
1199
+ void drawFocusIfNeeded(Path2D path, Element element);
1182
1200
  void scrollPathIntoView();
1183
1201
  void scrollPathIntoView(Path2D path);
1184
1202
  void clip(optional CanvasFillRule fillRule = "nonzero");
@@ -1202,6 +1220,7 @@ interface CanvasRenderingContext2D {
1202
1220
  // hit regions
1203
1221
  void addHitRegion(optional HitRegionOptions options);
1204
1222
  void removeHitRegion(DOMString id);
1223
+ void clearHitRegions();
1205
1224
 
1206
1225
  // pixel manipulation
1207
1226
  ImageData createImageData(double sw, double sh);
@@ -1213,27 +1232,27 @@ interface CanvasRenderingContext2D {
1213
1232
  CanvasRenderingContext2D implements CanvasDrawingStyles;
1214
1233
  CanvasRenderingContext2D implements CanvasPathMethods;
1215
1234
 
1216
- [NoInterfaceObject, Exposed=Window,Worker]
1235
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1217
1236
  interface CanvasDrawingStyles {
1218
1237
  // line caps/joins
1219
- attribute unrestricted double lineWidth; // (default 1)
1220
- attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
1221
- attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
1222
- attribute unrestricted double miterLimit; // (default 10)
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)
1223
1242
 
1224
1243
  // dashed lines
1225
1244
  void setLineDash(sequence<unrestricted double> segments); // default empty
1226
1245
  sequence<unrestricted double> getLineDash();
1227
- attribute unrestricted double lineDashOffset;
1246
+ attribute unrestricted double lineDashOffset;
1228
1247
 
1229
1248
  // text
1230
- attribute DOMString font; // (default 10px sans-serif)
1231
- attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
1232
- attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
1233
- attribute DOMString direction; // "ltr", "rtl", "inherit" (default: "inherit")
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")
1234
1253
  };
1235
1254
 
1236
- [NoInterfaceObject, Exposed=Window,Worker]
1255
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1237
1256
  interface CanvasPathMethods {
1238
1257
  // shared path API methods
1239
1258
  void closePath();
@@ -1241,26 +1260,26 @@ interface CanvasPathMethods {
1241
1260
  void lineTo(unrestricted double x, unrestricted double y);
1242
1261
  void quadraticCurveTo(unrestricted double cpx, unrestricted double cpy, unrestricted double x, unrestricted double y);
1243
1262
  void bezierCurveTo(unrestricted double cp1x, unrestricted double cp1y, unrestricted double cp2x, unrestricted double cp2y, unrestricted double x, unrestricted double y);
1244
- void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius);
1245
- void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation);
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);
1246
1265
  void rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1247
- void arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1248
- 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);
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);
1249
1268
  };
1250
1269
 
1251
- [Exposed=Window,Worker]
1270
+ [Exposed=(Window,Worker)]
1252
1271
  interface CanvasGradient {
1253
1272
  // opaque object
1254
1273
  void addColorStop(double offset, DOMString color);
1255
1274
  };
1256
1275
 
1257
- [Exposed=Window,Worker]
1276
+ [Exposed=(Window,Worker)]
1258
1277
  interface CanvasPattern {
1259
1278
  // opaque object
1260
1279
  void setTransform(SVGMatrix transform);
1261
1280
  };
1262
1281
 
1263
- [Exposed=Window,Worker]
1282
+ [Exposed=(Window,Worker)]
1264
1283
  interface TextMetrics {
1265
1284
  // x-direction
1266
1285
  readonly attribute double width; // advance width
@@ -1282,7 +1301,7 @@ interface TextMetrics {
1282
1301
  dictionary HitRegionOptions {
1283
1302
  Path2D? path = null;
1284
1303
  CanvasFillRule fillRule = "nonzero";
1285
- DOMString id = "";
1304
+ DOMString id = "";
1286
1305
  DOMString? parentID = null;
1287
1306
  DOMString cursor = "inherit";
1288
1307
  // for control-backed regions:
@@ -1294,21 +1313,21 @@ dictionary HitRegionOptions {
1294
1313
 
1295
1314
  [Constructor(unsigned long sw, unsigned long sh),
1296
1315
  Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh),
1297
- Exposed=Window,Worker]
1316
+ Exposed=(Window,Worker)]
1298
1317
  interface ImageData {
1299
1318
  readonly attribute unsigned long width;
1300
1319
  readonly attribute unsigned long height;
1301
1320
  readonly attribute Uint8ClampedArray data;
1302
1321
  };
1303
1322
 
1304
- [Constructor(optional Element scope), Exposed=Window,Worker]
1323
+ [Constructor(optional Element scope), Exposed=(Window,Worker)]
1305
1324
  interface DrawingStyle { };
1306
1325
  DrawingStyle implements CanvasDrawingStyles;
1307
1326
 
1308
1327
  [Constructor,
1309
1328
  Constructor(Path2D path),
1310
1329
  Constructor(Path2D[] paths, optional CanvasFillRule fillRule = "nonzero"),
1311
- Constructor(DOMString d), Exposed=Window,Worker]
1330
+ Constructor(DOMString d), Exposed=(Window,Worker)]
1312
1331
  interface Path2D {
1313
1332
  void addPath(Path2D path, optional SVGMatrix? transformation = null);
1314
1333
  void addPathByStrokingPath(Path2D path, CanvasDrawingStyles styles, optional SVGMatrix? transformation = null);
@@ -1331,20 +1350,26 @@ partial interface Touch {
1331
1350
  readonly attribute DOMString? region;
1332
1351
  };
1333
1352
 
1353
+ [NoInterfaceObject]
1354
+ interface ElementContentEditable {
1355
+ attribute DOMString contentEditable;
1356
+ readonly attribute boolean isContentEditable;
1357
+ };
1358
+
1334
1359
  interface DataTransfer {
1335
- attribute DOMString dropEffect;
1336
- attribute DOMString effectAllowed;
1360
+ attribute DOMString dropEffect;
1361
+ attribute DOMString effectAllowed;
1337
1362
 
1338
- readonly attribute DataTransferItemList items;
1363
+ [SameObject] readonly attribute DataTransferItemList items;
1339
1364
 
1340
1365
  void setDragImage(Element image, long x, long y);
1341
1366
 
1342
1367
  /* old interface */
1343
- readonly attribute DOMString[] types;
1368
+ [SameObject] readonly attribute DOMString[] types;
1344
1369
  DOMString getData(DOMString format);
1345
1370
  void setData(DOMString format, DOMString data);
1346
1371
  void clearData(optional DOMString format);
1347
- readonly attribute FileList files;
1372
+ [SameObject] readonly attribute FileList files;
1348
1373
  };
1349
1374
 
1350
1375
  interface DataTransferItemList {
@@ -1374,13 +1399,13 @@ dictionary DragEventInit : MouseEventInit {
1374
1399
  DataTransfer? dataTransfer;
1375
1400
  };
1376
1401
 
1377
- [PrimaryGlobal]
1402
+ [PrimaryGlobal]
1378
1403
  /*sealed*/ interface Window : EventTarget {
1379
1404
  // the current browsing context
1380
1405
  [Unforgeable] readonly attribute WindowProxy window;
1381
1406
  [Replaceable] readonly attribute WindowProxy self;
1382
1407
  [Unforgeable] readonly attribute Document document;
1383
- attribute DOMString name;
1408
+ attribute DOMString name;
1384
1409
  [PutForwards=href, Unforgeable] readonly attribute Location location;
1385
1410
  readonly attribute History history;
1386
1411
  [Replaceable] readonly attribute BarProp locationbar;
@@ -1389,7 +1414,7 @@ dictionary DragEventInit : MouseEventInit {
1389
1414
  [Replaceable] readonly attribute BarProp scrollbars;
1390
1415
  [Replaceable] readonly attribute BarProp statusbar;
1391
1416
  [Replaceable] readonly attribute BarProp toolbar;
1392
- attribute DOMString status;
1417
+ attribute DOMString status;
1393
1418
  void close();
1394
1419
  readonly attribute boolean closed;
1395
1420
  void stop();
@@ -1400,16 +1425,16 @@ dictionary DragEventInit : MouseEventInit {
1400
1425
  [Replaceable] readonly attribute WindowProxy frames;
1401
1426
  [Replaceable] readonly attribute unsigned long length;
1402
1427
  [Unforgeable] readonly attribute WindowProxy top;
1403
- attribute any opener;
1404
- readonly attribute WindowProxy parent;
1428
+ attribute any opener;
1429
+ [Replaceable] readonly attribute WindowProxy parent;
1405
1430
  readonly attribute Element? frameElement;
1406
- WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", optional DOMString features = "", optional boolean replace = false);
1431
+ WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
1407
1432
  getter WindowProxy (unsigned long index);
1408
1433
  getter object (DOMString name);
1409
1434
 
1410
1435
  // the user agent
1411
- readonly attribute Navigator navigator;
1412
- [Replaceable] readonly attribute External external;
1436
+ readonly attribute Navigator navigator;
1437
+ [Replaceable, SameObject] readonly attribute External external;
1413
1438
  readonly attribute ApplicationCache applicationCache;
1414
1439
 
1415
1440
  // user prompts
@@ -1418,7 +1443,10 @@ dictionary DragEventInit : MouseEventInit {
1418
1443
  boolean confirm(optional DOMString message = "");
1419
1444
  DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
1420
1445
  void print();
1421
- any showModalDialog(DOMString url, optional any argument);
1446
+ any showModalDialog(DOMString url, optional any argument); // deprecated
1447
+
1448
+ long requestAnimationFrame(FrameRequestCallback callback);
1449
+ void cancelAnimationFrame(long handle);
1422
1450
 
1423
1451
  void postMessage(any message, DOMString targetOrigin, optional sequence<Transferable> transfer);
1424
1452
 
@@ -1428,7 +1456,7 @@ Window implements GlobalEventHandlers;
1428
1456
  Window implements WindowEventHandlers;
1429
1457
 
1430
1458
  interface BarProp {
1431
- attribute boolean visible;
1459
+ attribute boolean visible;
1432
1460
  };
1433
1461
 
1434
1462
  interface History {
@@ -1448,7 +1476,7 @@ interface History {
1448
1476
  };
1449
1477
  Location implements URLUtils;
1450
1478
 
1451
- [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=Window,Worker]
1479
+ [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
1452
1480
  interface PopStateEvent : Event {
1453
1481
  readonly attribute any state;
1454
1482
  };
@@ -1457,7 +1485,7 @@ dictionary PopStateEventInit : EventInit {
1457
1485
  any state;
1458
1486
  };
1459
1487
 
1460
- [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=Window,Worker]
1488
+ [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
1461
1489
  interface HashChangeEvent : Event {
1462
1490
  readonly attribute DOMString oldURL;
1463
1491
  readonly attribute DOMString newURL;
@@ -1468,7 +1496,7 @@ dictionary HashChangeEventInit : EventInit {
1468
1496
  DOMString newURL;
1469
1497
  };
1470
1498
 
1471
- [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=Window,Worker]
1499
+ [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
1472
1500
  interface PageTransitionEvent : Event {
1473
1501
  readonly attribute boolean persisted;
1474
1502
  };
@@ -1478,10 +1506,10 @@ dictionary PageTransitionEventInit : EventInit {
1478
1506
  };
1479
1507
 
1480
1508
  interface BeforeUnloadEvent : Event {
1481
- attribute DOMString returnValue;
1509
+ attribute DOMString returnValue;
1482
1510
  };
1483
1511
 
1484
- [Exposed=Window,SharedWorker]
1512
+ [Exposed=(Window,SharedWorker)]
1485
1513
  interface ApplicationCache : EventTarget {
1486
1514
 
1487
1515
  // update status
@@ -1499,22 +1527,22 @@ interface ApplicationCache : EventTarget {
1499
1527
  void swapCache();
1500
1528
 
1501
1529
  // events
1502
- attribute EventHandler onchecking;
1503
- attribute EventHandler onerror;
1504
- attribute EventHandler onnoupdate;
1505
- attribute EventHandler ondownloading;
1506
- attribute EventHandler onprogress;
1507
- attribute EventHandler onupdateready;
1508
- attribute EventHandler oncached;
1509
- attribute EventHandler onobsolete;
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;
1510
1538
  };
1511
1539
 
1512
- [NoInterfaceObject, Exposed=Window,Worker]
1540
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1513
1541
  interface NavigatorOnLine {
1514
1542
  readonly attribute boolean onLine;
1515
1543
  };
1516
1544
 
1517
- [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=Window,Worker]
1545
+ [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
1518
1546
  interface ErrorEvent : Event {
1519
1547
  readonly attribute DOMString message;
1520
1548
  readonly attribute DOMString filename;
@@ -1545,96 +1573,96 @@ typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
1545
1573
 
1546
1574
  [NoInterfaceObject]
1547
1575
  interface GlobalEventHandlers {
1548
- attribute EventHandler onabort;
1549
- attribute EventHandler onautocomplete;
1550
- attribute EventHandler onautocompleteerror;
1551
- attribute EventHandler onblur;
1552
- attribute EventHandler oncancel;
1553
- attribute EventHandler oncanplay;
1554
- attribute EventHandler oncanplaythrough;
1555
- attribute EventHandler onchange;
1556
- attribute EventHandler onclick;
1557
- attribute EventHandler onclose;
1558
- attribute EventHandler oncontextmenu;
1559
- attribute EventHandler oncuechange;
1560
- attribute EventHandler ondblclick;
1561
- attribute EventHandler ondrag;
1562
- attribute EventHandler ondragend;
1563
- attribute EventHandler ondragenter;
1564
- attribute EventHandler ondragexit;
1565
- attribute EventHandler ondragleave;
1566
- attribute EventHandler ondragover;
1567
- attribute EventHandler ondragstart;
1568
- attribute EventHandler ondrop;
1569
- attribute EventHandler ondurationchange;
1570
- attribute EventHandler onemptied;
1571
- attribute EventHandler onended;
1572
- attribute OnErrorEventHandler onerror;
1573
- attribute EventHandler onfocus;
1574
- attribute EventHandler oninput;
1575
- attribute EventHandler oninvalid;
1576
- attribute EventHandler onkeydown;
1577
- attribute EventHandler onkeypress;
1578
- attribute EventHandler onkeyup;
1579
- attribute EventHandler onload;
1580
- attribute EventHandler onloadeddata;
1581
- attribute EventHandler onloadedmetadata;
1582
- attribute EventHandler onloadstart;
1583
- attribute EventHandler onmousedown;
1576
+ attribute EventHandler onabort;
1577
+ attribute EventHandler onautocomplete;
1578
+ attribute EventHandler onautocompleteerror;
1579
+ attribute EventHandler onblur;
1580
+ attribute EventHandler oncancel;
1581
+ attribute EventHandler oncanplay;
1582
+ attribute EventHandler oncanplaythrough;
1583
+ attribute EventHandler onchange;
1584
+ attribute EventHandler onclick;
1585
+ attribute EventHandler onclose;
1586
+ attribute EventHandler oncontextmenu;
1587
+ attribute EventHandler oncuechange;
1588
+ attribute EventHandler ondblclick;
1589
+ attribute EventHandler ondrag;
1590
+ attribute EventHandler ondragend;
1591
+ attribute EventHandler ondragenter;
1592
+ attribute EventHandler ondragexit;
1593
+ attribute EventHandler ondragleave;
1594
+ attribute EventHandler ondragover;
1595
+ attribute EventHandler ondragstart;
1596
+ attribute EventHandler ondrop;
1597
+ attribute EventHandler ondurationchange;
1598
+ attribute EventHandler onemptied;
1599
+ attribute EventHandler onended;
1600
+ attribute OnErrorEventHandler onerror;
1601
+ attribute EventHandler onfocus;
1602
+ attribute EventHandler oninput;
1603
+ attribute EventHandler oninvalid;
1604
+ attribute EventHandler onkeydown;
1605
+ attribute EventHandler onkeypress;
1606
+ attribute EventHandler onkeyup;
1607
+ attribute EventHandler onload;
1608
+ attribute EventHandler onloadeddata;
1609
+ attribute EventHandler onloadedmetadata;
1610
+ attribute EventHandler onloadstart;
1611
+ attribute EventHandler onmousedown;
1584
1612
  [LenientThis] attribute EventHandler onmouseenter;
1585
1613
  [LenientThis] attribute EventHandler onmouseleave;
1586
- attribute EventHandler onmousemove;
1587
- attribute EventHandler onmouseout;
1588
- attribute EventHandler onmouseover;
1589
- attribute EventHandler onmouseup;
1590
- attribute EventHandler onmousewheel;
1591
- attribute EventHandler onpause;
1592
- attribute EventHandler onplay;
1593
- attribute EventHandler onplaying;
1594
- attribute EventHandler onprogress;
1595
- attribute EventHandler onratechange;
1596
- attribute EventHandler onreset;
1597
- attribute EventHandler onresize;
1598
- attribute EventHandler onscroll;
1599
- attribute EventHandler onseeked;
1600
- attribute EventHandler onseeking;
1601
- attribute EventHandler onselect;
1602
- attribute EventHandler onshow;
1603
- attribute EventHandler onsort;
1604
- attribute EventHandler onstalled;
1605
- attribute EventHandler onsubmit;
1606
- attribute EventHandler onsuspend;
1607
- attribute EventHandler ontimeupdate;
1608
- attribute EventHandler ontoggle;
1609
- attribute EventHandler onvolumechange;
1610
- attribute EventHandler onwaiting;
1614
+ attribute EventHandler onmousemove;
1615
+ attribute EventHandler onmouseout;
1616
+ attribute EventHandler onmouseover;
1617
+ attribute EventHandler onmouseup;
1618
+ attribute EventHandler onmousewheel;
1619
+ attribute EventHandler onpause;
1620
+ attribute EventHandler onplay;
1621
+ attribute EventHandler onplaying;
1622
+ attribute EventHandler onprogress;
1623
+ attribute EventHandler onratechange;
1624
+ attribute EventHandler onreset;
1625
+ attribute EventHandler onresize;
1626
+ attribute EventHandler onscroll;
1627
+ attribute EventHandler onseeked;
1628
+ attribute EventHandler onseeking;
1629
+ attribute EventHandler onselect;
1630
+ attribute EventHandler onshow;
1631
+ attribute EventHandler onsort;
1632
+ attribute EventHandler onstalled;
1633
+ attribute EventHandler onsubmit;
1634
+ attribute EventHandler onsuspend;
1635
+ attribute EventHandler ontimeupdate;
1636
+ attribute EventHandler ontoggle;
1637
+ attribute EventHandler onvolumechange;
1638
+ attribute EventHandler onwaiting;
1611
1639
  };
1612
1640
 
1613
1641
  [NoInterfaceObject]
1614
1642
  interface WindowEventHandlers {
1615
- attribute EventHandler onafterprint;
1616
- attribute EventHandler onbeforeprint;
1617
- attribute OnBeforeUnloadEventHandler onbeforeunload;
1618
- attribute EventHandler onhashchange;
1619
- attribute EventHandler onlanguagechange;
1620
- attribute EventHandler onmessage;
1621
- attribute EventHandler onoffline;
1622
- attribute EventHandler ononline;
1623
- attribute EventHandler onpagehide;
1624
- attribute EventHandler onpageshow;
1625
- attribute EventHandler onpopstate;
1626
- attribute EventHandler onstorage;
1627
- attribute EventHandler onunload;
1628
- };
1629
-
1630
- [NoInterfaceObject, Exposed=Window,Worker]
1643
+ attribute EventHandler onafterprint;
1644
+ attribute EventHandler onbeforeprint;
1645
+ attribute OnBeforeUnloadEventHandler onbeforeunload;
1646
+ attribute EventHandler onhashchange;
1647
+ attribute EventHandler onlanguagechange;
1648
+ attribute EventHandler onmessage;
1649
+ attribute EventHandler onoffline;
1650
+ attribute EventHandler ononline;
1651
+ attribute EventHandler onpagehide;
1652
+ attribute EventHandler onpageshow;
1653
+ attribute EventHandler onpopstate;
1654
+ attribute EventHandler onstorage;
1655
+ attribute EventHandler onunload;
1656
+ };
1657
+
1658
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1631
1659
  interface WindowBase64 {
1632
1660
  DOMString btoa(DOMString btoa);
1633
1661
  DOMString atob(DOMString atob);
1634
1662
  };
1635
1663
  Window implements WindowBase64;
1636
1664
 
1637
- [NoInterfaceObject, Exposed=Window,Worker]
1665
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1638
1666
  interface WindowTimers {
1639
1667
  long setTimeout(Function handler, optional long timeout = 0, any... arguments);
1640
1668
  long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
@@ -1648,7 +1676,7 @@ Window implements WindowTimers;
1648
1676
  [NoInterfaceObject]
1649
1677
  interface WindowModal {
1650
1678
  readonly attribute any dialogArguments;
1651
- attribute any returnValue;
1679
+ attribute any returnValue;
1652
1680
  };
1653
1681
 
1654
1682
  interface Navigator {
@@ -1661,7 +1689,7 @@ Navigator implements NavigatorContentUtils;
1661
1689
  Navigator implements NavigatorStorageUtils;
1662
1690
  Navigator implements NavigatorPlugins;
1663
1691
 
1664
- [NoInterfaceObject, Exposed=Window,Worker]
1692
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1665
1693
  interface NavigatorID {
1666
1694
  readonly attribute DOMString appCodeName; // constant "Mozilla"
1667
1695
  readonly attribute DOMString appName;
@@ -1672,7 +1700,7 @@ interface NavigatorID {
1672
1700
  readonly attribute DOMString userAgent;
1673
1701
  };
1674
1702
 
1675
- [NoInterfaceObject, Exposed=Window,Worker]
1703
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1676
1704
  interface NavigatorLanguage {
1677
1705
  readonly attribute DOMString? language;
1678
1706
  readonly attribute DOMString[] languages;
@@ -1697,8 +1725,8 @@ interface NavigatorStorageUtils {
1697
1725
 
1698
1726
  [NoInterfaceObject]
1699
1727
  interface NavigatorPlugins {
1700
- readonly attribute PluginArray plugins;
1701
- readonly attribute MimeTypeArray mimeTypes;
1728
+ [SameObject] readonly attribute PluginArray plugins;
1729
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
1702
1730
  readonly attribute boolean javaEnabled;
1703
1731
  };
1704
1732
 
@@ -1736,7 +1764,7 @@ interface External {
1736
1764
  unsigned long IsSearchProviderInstalled(DOMString engineURL);
1737
1765
  };
1738
1766
 
1739
- [Exposed=Window,Worker]
1767
+ [Exposed=(Window,Worker)]
1740
1768
  interface ImageBitmap {
1741
1769
  readonly attribute unsigned long width;
1742
1770
  readonly attribute unsigned long height;
@@ -1750,32 +1778,34 @@ typedef (HTMLImageElement or
1750
1778
  CanvasRenderingContext2D or
1751
1779
  ImageBitmap) ImageBitmapSource;
1752
1780
 
1753
- [NoInterfaceObject, Exposed=Window,Worker]
1781
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1754
1782
  interface ImageBitmapFactories {
1755
- Promise createImageBitmap(ImageBitmapSource image, optional long sx, long sy, long sw, long sh);
1783
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
1784
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1756
1785
  };
1757
1786
  Window implements ImageBitmapFactories;
1758
1787
  WorkerGlobalScope implements ImageBitmapFactories;
1759
1788
 
1760
- [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=Window,Worker]
1789
+ [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker)]
1761
1790
  interface MessageEvent : Event {
1762
1791
  readonly attribute any data;
1763
1792
  readonly attribute DOMString origin;
1764
1793
  readonly attribute DOMString lastEventId;
1765
1794
  readonly attribute (WindowProxy or MessagePort)? source;
1766
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);
1767
1798
  };
1768
1799
 
1769
1800
  dictionary MessageEventInit : EventInit {
1770
1801
  any data;
1771
1802
  DOMString origin;
1772
1803
  DOMString lastEventId;
1773
- DOMString channel;
1774
1804
  (WindowProxy or MessagePort)? source;
1775
1805
  sequence<MessagePort> ports;
1776
1806
  };
1777
1807
 
1778
- [Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=Window,Worker]
1808
+ [Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=(Window,Worker)]
1779
1809
  interface EventSource : EventTarget {
1780
1810
  readonly attribute DOMString url;
1781
1811
  readonly attribute boolean withCredentials;
@@ -1787,9 +1817,9 @@ interface EventSource : EventTarget {
1787
1817
  readonly attribute unsigned short readyState;
1788
1818
 
1789
1819
  // networking
1790
- attribute EventHandler onopen;
1791
- attribute EventHandler onmessage;
1792
- attribute EventHandler onerror;
1820
+ attribute EventHandler onopen;
1821
+ attribute EventHandler onmessage;
1822
+ attribute EventHandler onerror;
1793
1823
  void close();
1794
1824
  };
1795
1825
 
@@ -1798,7 +1828,7 @@ dictionary EventSourceInit {
1798
1828
  };
1799
1829
 
1800
1830
  enum BinaryType { "blob", "arraybuffer" };
1801
- [Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=Window,Worker]
1831
+ [Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=(Window,Worker)]
1802
1832
  interface WebSocket : EventTarget {
1803
1833
  readonly attribute DOMString url;
1804
1834
 
@@ -1811,23 +1841,23 @@ interface WebSocket : EventTarget {
1811
1841
  readonly attribute unsigned long bufferedAmount;
1812
1842
 
1813
1843
  // networking
1814
- attribute EventHandler onopen;
1815
- attribute EventHandler onerror;
1816
- attribute EventHandler onclose;
1844
+ attribute EventHandler onopen;
1845
+ attribute EventHandler onerror;
1846
+ attribute EventHandler onclose;
1817
1847
  readonly attribute DOMString extensions;
1818
1848
  readonly attribute DOMString protocol;
1819
- void close([Clamp] optional unsigned short code, optional DOMString reason);
1849
+ void close([Clamp] optional unsigned short code, optional USVString reason);
1820
1850
 
1821
1851
  // messaging
1822
- attribute EventHandler onmessage;
1823
- attribute BinaryType binaryType;
1824
- void send(DOMString data);
1852
+ attribute EventHandler onmessage;
1853
+ attribute BinaryType binaryType;
1854
+ void send(USVString data);
1825
1855
  void send(Blob data);
1826
1856
  void send(ArrayBuffer data);
1827
1857
  void send(ArrayBufferView data);
1828
1858
  };
1829
1859
 
1830
- [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=Window,Worker]
1860
+ [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)]
1831
1861
  interface CloseEvent : Event {
1832
1862
  readonly attribute boolean wasClean;
1833
1863
  readonly attribute unsigned short code;
@@ -1840,24 +1870,24 @@ dictionary CloseEventInit : EventInit {
1840
1870
  DOMString reason;
1841
1871
  };
1842
1872
 
1843
- [Constructor, Exposed=Window,Worker]
1873
+ [Constructor, Exposed=(Window,Worker)]
1844
1874
  interface MessageChannel {
1845
1875
  readonly attribute MessagePort port1;
1846
1876
  readonly attribute MessagePort port2;
1847
1877
  };
1848
1878
 
1849
- [Exposed=Window,Worker]
1879
+ [Exposed=(Window,Worker)]
1850
1880
  interface MessagePort : EventTarget {
1851
1881
  void postMessage(any message, optional sequence<Transferable> transfer);
1852
1882
  void start();
1853
1883
  void close();
1854
1884
 
1855
1885
  // event handlers
1856
- attribute EventHandler onmessage;
1886
+ attribute EventHandler onmessage;
1857
1887
  };
1858
1888
  // MessagePort implements Transferable;
1859
1889
 
1860
- [Constructor, Exposed=Window,Worker]
1890
+ [Constructor, Exposed=(Window,Worker)]
1861
1891
  interface PortCollection {
1862
1892
  void add(MessagePort port);
1863
1893
  void remove(MessagePort port);
@@ -1867,63 +1897,63 @@ interface PortCollection {
1867
1897
 
1868
1898
  callback PortCollectionCallback = void (MessagePort port);
1869
1899
 
1870
- [Constructor(DOMString channel), Exposed=Window,Worker]
1900
+ [Constructor(DOMString channel), Exposed=(Window,Worker)]
1871
1901
  interface BroadcastChannel : EventTarget {
1872
1902
  readonly attribute DOMString name;
1873
1903
  void postMessage(any message);
1874
1904
  void close();
1875
- attribute EventHandler onmessage;
1905
+ attribute EventHandler onmessage;
1876
1906
  };
1877
1907
 
1878
- [Exposed=Worker]
1908
+ [Exposed=Worker]
1879
1909
  interface WorkerGlobalScope : EventTarget {
1880
1910
  readonly attribute WorkerGlobalScope self;
1881
1911
  readonly attribute WorkerLocation location;
1882
1912
 
1883
1913
  void close();
1884
- attribute OnErrorEventHandler onerror;
1885
- attribute EventHandler onlanguagechange;
1886
- attribute EventHandler onoffline;
1887
- attribute EventHandler ononline;
1914
+ attribute OnErrorEventHandler onerror;
1915
+ attribute EventHandler onlanguagechange;
1916
+ attribute EventHandler onoffline;
1917
+ attribute EventHandler ononline;
1888
1918
 
1889
1919
  // also has additional members in a partial interface
1890
1920
  };
1891
1921
 
1892
- [Global=Worker,DedicatedWorker]
1922
+ [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
1893
1923
  /*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
1894
1924
  void postMessage(any message, optional sequence<Transferable> transfer);
1895
- attribute EventHandler onmessage;
1925
+ attribute EventHandler onmessage;
1896
1926
  };
1897
1927
 
1898
- [Global=Worker,SharedWorker]
1928
+ [Global=(Worker,SharedWorker),Exposed=SharedWorker]
1899
1929
  /*sealed*/ interface SharedWorkerGlobalScope : WorkerGlobalScope {
1900
1930
  readonly attribute DOMString name;
1901
1931
  readonly attribute ApplicationCache applicationCache;
1902
- attribute EventHandler onconnect;
1932
+ attribute EventHandler onconnect;
1903
1933
  };
1904
1934
 
1905
- [NoInterfaceObject, Exposed=Window,Worker]
1935
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1906
1936
  interface AbstractWorker {
1907
- attribute EventHandler onerror;
1937
+ attribute EventHandler onerror;
1908
1938
  };
1909
1939
 
1910
- [Constructor(DOMString scriptURL), Exposed=Window,Worker]
1940
+ [Constructor(DOMString scriptURL), Exposed=(Window,Worker)]
1911
1941
  interface Worker : EventTarget {
1912
1942
  void terminate();
1913
1943
 
1914
1944
  void postMessage(any message, optional sequence<Transferable> transfer);
1915
- attribute EventHandler onmessage;
1945
+ attribute EventHandler onmessage;
1916
1946
  };
1917
1947
  Worker implements AbstractWorker;
1918
1948
 
1919
- [Constructor(DOMString scriptURL, optional DOMString name), Exposed=Window,Worker]
1949
+ [Constructor(DOMString scriptURL, optional DOMString name), Exposed=(Window,Worker)]
1920
1950
  interface SharedWorker : EventTarget {
1921
1951
  readonly attribute MessagePort port;
1922
1952
  };
1923
1953
  SharedWorker implements AbstractWorker;
1924
1954
 
1925
1955
  [Exposed=Worker]
1926
- partial interface WorkerGlobalScope {
1956
+ partial interface WorkerGlobalScope { // not obsolete
1927
1957
  void importScripts(DOMString... urls);
1928
1958
  readonly attribute WorkerNavigator navigator;
1929
1959
  };
@@ -1979,53 +2009,53 @@ dictionary StorageEventInit : EventInit {
1979
2009
  };
1980
2010
 
1981
2011
  interface HTMLAppletElement : HTMLElement {
1982
- attribute DOMString align;
1983
- attribute DOMString alt;
1984
- attribute DOMString archive;
1985
- attribute DOMString code;
1986
- attribute DOMString codeBase;
1987
- attribute DOMString height;
1988
- attribute unsigned long hspace;
1989
- attribute DOMString name;
1990
- attribute DOMString _object; // the underscore is not part of the identifier
1991
- attribute unsigned long vspace;
1992
- attribute DOMString width;
2012
+ attribute DOMString align;
2013
+ attribute DOMString alt;
2014
+ attribute DOMString archive;
2015
+ attribute DOMString code;
2016
+ attribute DOMString codeBase;
2017
+ attribute DOMString height;
2018
+ attribute unsigned long hspace;
2019
+ attribute DOMString name;
2020
+ attribute DOMString _object; // the underscore is not part of the identifier
2021
+ attribute unsigned long vspace;
2022
+ attribute DOMString width;
1993
2023
  };
1994
2024
 
1995
2025
  interface HTMLMarqueeElement : HTMLElement {
1996
- attribute DOMString behavior;
1997
- attribute DOMString bgColor;
1998
- attribute DOMString direction;
1999
- attribute DOMString height;
2000
- attribute unsigned long hspace;
2001
- attribute long loop;
2002
- attribute unsigned long scrollAmount;
2003
- attribute unsigned long scrollDelay;
2004
- attribute boolean trueSpeed;
2005
- attribute unsigned long vspace;
2006
- attribute DOMString width;
2007
-
2008
- attribute EventHandler onbounce;
2009
- attribute EventHandler onfinish;
2010
- attribute EventHandler onstart;
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;
2037
+
2038
+ attribute EventHandler onbounce;
2039
+ attribute EventHandler onfinish;
2040
+ attribute EventHandler onstart;
2011
2041
 
2012
2042
  void start();
2013
2043
  void stop();
2014
2044
  };
2015
2045
 
2016
2046
  interface HTMLFrameSetElement : HTMLElement {
2017
- attribute DOMString cols;
2018
- attribute DOMString rows;
2047
+ attribute DOMString cols;
2048
+ attribute DOMString rows;
2019
2049
  };
2020
2050
  HTMLFrameSetElement implements WindowEventHandlers;
2021
2051
 
2022
2052
  interface HTMLFrameElement : HTMLElement {
2023
- attribute DOMString name;
2024
- attribute DOMString scrolling;
2025
- attribute DOMString src;
2026
- attribute DOMString frameBorder;
2027
- attribute DOMString longDesc;
2028
- attribute boolean noResize;
2053
+ attribute DOMString name;
2054
+ attribute DOMString scrolling;
2055
+ attribute DOMString src;
2056
+ attribute DOMString frameBorder;
2057
+ attribute DOMString longDesc;
2058
+ attribute boolean noResize;
2029
2059
  readonly attribute Document? contentDocument;
2030
2060
  readonly attribute WindowProxy? contentWindow;
2031
2061
 
@@ -2034,15 +2064,15 @@ interface HTMLFrameElement : HTMLElement {
2034
2064
  };
2035
2065
 
2036
2066
  partial interface HTMLAnchorElement {
2037
- attribute DOMString coords;
2038
- attribute DOMString charset;
2039
- attribute DOMString name;
2040
- attribute DOMString rev;
2041
- attribute DOMString shape;
2067
+ attribute DOMString coords;
2068
+ attribute DOMString charset;
2069
+ attribute DOMString name;
2070
+ attribute DOMString rev;
2071
+ attribute DOMString shape;
2042
2072
  };
2043
2073
 
2044
2074
  partial interface HTMLAreaElement {
2045
- attribute boolean noHref;
2075
+ attribute boolean noHref;
2046
2076
  };
2047
2077
 
2048
2078
  partial interface HTMLBodyElement {
@@ -2051,155 +2081,155 @@ partial interface HTMLBodyElement {
2051
2081
  [TreatNullAs=EmptyString] attribute DOMString vLink;
2052
2082
  [TreatNullAs=EmptyString] attribute DOMString aLink;
2053
2083
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2054
- attribute DOMString background;
2084
+ attribute DOMString background;
2055
2085
  };
2056
2086
 
2057
2087
  partial interface HTMLBRElement {
2058
- attribute DOMString clear;
2088
+ attribute DOMString clear;
2059
2089
  };
2060
2090
 
2061
2091
  partial interface HTMLTableCaptionElement {
2062
- attribute DOMString align;
2092
+ attribute DOMString align;
2063
2093
  };
2064
2094
 
2065
2095
  partial interface HTMLTableColElement {
2066
- attribute DOMString align;
2067
- attribute DOMString ch;
2068
- attribute DOMString chOff;
2069
- attribute DOMString vAlign;
2070
- attribute DOMString width;
2096
+ attribute DOMString align;
2097
+ attribute DOMString ch;
2098
+ attribute DOMString chOff;
2099
+ attribute DOMString vAlign;
2100
+ attribute DOMString width;
2071
2101
  };
2072
2102
 
2073
2103
  interface HTMLDirectoryElement : HTMLElement {
2074
- attribute boolean compact;
2104
+ attribute boolean compact;
2075
2105
  };
2076
2106
 
2077
2107
  partial interface HTMLDivElement {
2078
- attribute DOMString align;
2108
+ attribute DOMString align;
2079
2109
  };
2080
2110
 
2081
2111
  partial interface HTMLDListElement {
2082
- attribute boolean compact;
2112
+ attribute boolean compact;
2083
2113
  };
2084
2114
 
2085
2115
  partial interface HTMLEmbedElement {
2086
- attribute DOMString align;
2087
- attribute DOMString name;
2116
+ attribute DOMString align;
2117
+ attribute DOMString name;
2088
2118
  };
2089
2119
 
2090
2120
  interface HTMLFontElement : HTMLElement {
2091
2121
  [TreatNullAs=EmptyString] attribute DOMString color;
2092
- attribute DOMString face;
2093
- attribute DOMString size;
2122
+ attribute DOMString face;
2123
+ attribute DOMString size;
2094
2124
  };
2095
2125
 
2096
2126
  partial interface HTMLHeadingElement {
2097
- attribute DOMString align;
2127
+ attribute DOMString align;
2098
2128
  };
2099
2129
 
2100
2130
  partial interface HTMLHRElement {
2101
- attribute DOMString align;
2102
- attribute DOMString color;
2103
- attribute boolean noShade;
2104
- attribute DOMString size;
2105
- attribute DOMString width;
2131
+ attribute DOMString align;
2132
+ attribute DOMString color;
2133
+ attribute boolean noShade;
2134
+ attribute DOMString size;
2135
+ attribute DOMString width;
2106
2136
  };
2107
2137
 
2108
2138
  partial interface HTMLHtmlElement {
2109
- attribute DOMString version;
2139
+ attribute DOMString version;
2110
2140
  };
2111
2141
 
2112
2142
  partial interface HTMLIFrameElement {
2113
- attribute DOMString align;
2114
- attribute DOMString scrolling;
2115
- attribute DOMString frameBorder;
2116
- attribute DOMString longDesc;
2143
+ attribute DOMString align;
2144
+ attribute DOMString scrolling;
2145
+ attribute DOMString frameBorder;
2146
+ attribute DOMString longDesc;
2117
2147
 
2118
2148
  [TreatNullAs=EmptyString] attribute DOMString marginHeight;
2119
2149
  [TreatNullAs=EmptyString] attribute DOMString marginWidth;
2120
2150
  };
2121
2151
 
2122
2152
  partial interface HTMLImageElement {
2123
- attribute DOMString name;
2124
- attribute DOMString lowsrc;
2125
- attribute DOMString align;
2126
- attribute unsigned long hspace;
2127
- attribute unsigned long vspace;
2128
- attribute DOMString longDesc;
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;
2129
2159
 
2130
2160
  [TreatNullAs=EmptyString] attribute DOMString border;
2131
2161
  };
2132
2162
 
2133
2163
  partial interface HTMLInputElement {
2134
- attribute DOMString align;
2135
- attribute DOMString useMap;
2164
+ attribute DOMString align;
2165
+ attribute DOMString useMap;
2136
2166
  };
2137
2167
 
2138
2168
  partial interface HTMLLegendElement {
2139
- attribute DOMString align;
2169
+ attribute DOMString align;
2140
2170
  };
2141
2171
 
2142
2172
  partial interface HTMLLIElement {
2143
- attribute DOMString type;
2173
+ attribute DOMString type;
2144
2174
  };
2145
2175
 
2146
2176
  partial interface HTMLLinkElement {
2147
- attribute DOMString charset;
2148
- attribute DOMString rev;
2149
- attribute DOMString target;
2177
+ attribute DOMString charset;
2178
+ attribute DOMString rev;
2179
+ attribute DOMString target;
2150
2180
  };
2151
2181
 
2152
2182
  partial interface HTMLMenuElement {
2153
- attribute boolean compact;
2183
+ attribute boolean compact;
2154
2184
  };
2155
2185
 
2156
2186
  partial interface HTMLMetaElement {
2157
- attribute DOMString scheme;
2187
+ attribute DOMString scheme;
2158
2188
  };
2159
2189
 
2160
2190
  partial interface HTMLObjectElement {
2161
- attribute DOMString align;
2162
- attribute DOMString archive;
2163
- attribute DOMString code;
2164
- attribute boolean declare;
2165
- attribute unsigned long hspace;
2166
- attribute DOMString standby;
2167
- attribute unsigned long vspace;
2168
- attribute DOMString codeBase;
2169
- attribute DOMString codeType;
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;
2170
2200
 
2171
2201
  [TreatNullAs=EmptyString] attribute DOMString border;
2172
2202
  };
2173
2203
 
2174
2204
  partial interface HTMLOListElement {
2175
- attribute boolean compact;
2205
+ attribute boolean compact;
2176
2206
  };
2177
2207
 
2178
2208
  partial interface HTMLParagraphElement {
2179
- attribute DOMString align;
2209
+ attribute DOMString align;
2180
2210
  };
2181
2211
 
2182
2212
  partial interface HTMLParamElement {
2183
- attribute DOMString type;
2184
- attribute DOMString valueType;
2213
+ attribute DOMString type;
2214
+ attribute DOMString valueType;
2185
2215
  };
2186
2216
 
2187
2217
  partial interface HTMLPreElement {
2188
- attribute long width;
2218
+ attribute long width;
2189
2219
  };
2190
2220
 
2191
2221
  partial interface HTMLScriptElement {
2192
- attribute DOMString event;
2193
- attribute DOMString htmlFor;
2222
+ attribute DOMString event;
2223
+ attribute DOMString htmlFor;
2194
2224
  };
2195
2225
 
2196
2226
  partial interface HTMLTableElement {
2197
- attribute DOMString align;
2198
- attribute DOMString border;
2199
- attribute DOMString frame;
2200
- attribute DOMString rules;
2201
- attribute DOMString summary;
2202
- attribute DOMString width;
2227
+ attribute DOMString align;
2228
+ attribute DOMString border;
2229
+ attribute DOMString frame;
2230
+ attribute DOMString rules;
2231
+ attribute DOMString summary;
2232
+ attribute DOMString width;
2203
2233
 
2204
2234
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2205
2235
  [TreatNullAs=EmptyString] attribute DOMString cellPadding;
@@ -2207,42 +2237,42 @@ partial interface HTMLTableElement {
2207
2237
  };
2208
2238
 
2209
2239
  partial interface HTMLTableSectionElement {
2210
- attribute DOMString align;
2211
- attribute DOMString ch;
2212
- attribute DOMString chOff;
2213
- attribute DOMString vAlign;
2240
+ attribute DOMString align;
2241
+ attribute DOMString ch;
2242
+ attribute DOMString chOff;
2243
+ attribute DOMString vAlign;
2214
2244
  };
2215
2245
 
2216
2246
  partial interface HTMLTableCellElement {
2217
- attribute DOMString align;
2218
- attribute DOMString axis;
2219
- attribute DOMString height;
2220
- attribute DOMString width;
2247
+ attribute DOMString align;
2248
+ attribute DOMString axis;
2249
+ attribute DOMString height;
2250
+ attribute DOMString width;
2221
2251
 
2222
- attribute DOMString ch;
2223
- attribute DOMString chOff;
2224
- attribute boolean noWrap;
2225
- attribute DOMString vAlign;
2252
+ attribute DOMString ch;
2253
+ attribute DOMString chOff;
2254
+ attribute boolean noWrap;
2255
+ attribute DOMString vAlign;
2226
2256
 
2227
2257
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2228
2258
  };
2229
2259
 
2230
2260
  partial interface HTMLTableDataCellElement {
2231
- attribute DOMString abbr;
2261
+ attribute DOMString abbr;
2232
2262
  };
2233
2263
 
2234
2264
  partial interface HTMLTableRowElement {
2235
- attribute DOMString align;
2236
- attribute DOMString ch;
2237
- attribute DOMString chOff;
2238
- attribute DOMString vAlign;
2265
+ attribute DOMString align;
2266
+ attribute DOMString ch;
2267
+ attribute DOMString chOff;
2268
+ attribute DOMString vAlign;
2239
2269
 
2240
2270
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2241
2271
  };
2242
2272
 
2243
2273
  partial interface HTMLUListElement {
2244
- attribute boolean compact;
2245
- attribute DOMString type;
2274
+ attribute boolean compact;
2275
+ attribute DOMString type;
2246
2276
  };
2247
2277
 
2248
2278
  partial interface Document {