webidl 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5f799c8120517ec9f44c1183b68c00f5ae80ff52
4
- data.tar.gz: 80fb9d94418a6b0a741a0af2025b156d40d618d2
2
+ SHA256:
3
+ metadata.gz: 7fc8b248a58a39af6580219d8736ef9eea86e41a48ff594b3e80c7642754b504
4
+ data.tar.gz: 88934e26417099fddd0b548d0bff429236fbaae7858389abadfb2c21b792dd93
5
5
  SHA512:
6
- metadata.gz: 6ad239d8a7d7cc677ac2a1c8137845155ee95a073694d6a002742fcb895acf890d2002c1dc3b18dfcfc521b4ace885a428febe19ac0ed86f820e8358b1edf733
7
- data.tar.gz: d408b239d5b786389f02dab80eed151961afa125cc4ce1c4f0776d7c8936cd9c99428c2503fcb27aefe333f69bb867dd1e64c8dd64f105b826acd9e2d55f66ce
6
+ metadata.gz: 1d83b966bb94134324d358dbb3365d96a81a445f0e093ddd4615f8c3693ed52ba63771cb0db0e436f23ba6f9f0f3f1ed310a1caa55adb7df3582a1d171a2e1a8
7
+ data.tar.gz: 165ad20dec46e26eca29928ac35336c7dac2c2701223fac8e9f4a9deee7f2c1e4101be7b4673bad433ada8b2f6267ff7bde941f9718cc29ecd6cca1e28c830f7
@@ -3,16 +3,17 @@ module WebIDL
3
3
  class Operation < Node
4
4
 
5
5
  attr_reader :type, :name, :args, :specials, :raises
6
- attr_accessor :stringifier
6
+ attr_accessor :extended_attributes, :stringifier
7
7
 
8
8
  def initialize(parent, type, opts = {})
9
- @parent = parent
10
- @type = type
11
- @name = opts[:name] || ''
12
- @static = opts[:static]
13
- @specials = opts[:specials] || []
14
- @args = opts[:args] || []
15
- @raises = opts[:raises] || []
9
+ @parent = parent
10
+ @type = type
11
+ @name = opts[:name] || ''
12
+ @static = opts[:static]
13
+ @specials = opts[:specials] || []
14
+ @args = opts[:args] || []
15
+ @raises = opts[:raises] || []
16
+ @extended_attributes = opts[:extended_attributes] || []
16
17
  end
17
18
 
18
19
  def stringifier?
@@ -1,3 +1,3 @@
1
1
  module WebIDL
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -28,36 +28,30 @@ interface HTMLOptionsCollection : HTMLCollection {
28
28
  };
29
29
 
30
30
 
31
- [OverrideBuiltins]
32
- interface DOMStringMap {
33
- getter DOMString (DOMString name);
34
- setter void (DOMString name, DOMString value);
35
- deleter void (DOMString name);
36
- };
37
-
38
-
39
- interface DOMElementMap {
40
- getter Element (DOMString name);
41
- setter creator void (DOMString name, Element value);
42
- deleter void (DOMString name);
31
+ interface DOMStringList {
32
+ readonly attribute unsigned long length;
33
+ getter DOMString? item(unsigned long index);
34
+ boolean contains(DOMString string);
43
35
  };
44
36
 
45
37
 
46
38
  enum DocumentReadyState { "loading", "interactive", "complete" };
47
39
 
40
+ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
41
+
48
42
  [OverrideBuiltins]
49
- partial /*sealed*/ interface Document {
43
+ partial interface Document {
50
44
  // resource metadata management
51
45
  [PutForwards=href, Unforgeable] readonly attribute Location? location;
52
- attribute DOMString domain;
53
- readonly attribute DOMString referrer;
54
- attribute DOMString cookie;
46
+ attribute USVString domain;
47
+ readonly attribute USVString referrer;
48
+ attribute USVString cookie;
55
49
  readonly attribute DOMString lastModified;
56
50
  readonly attribute DocumentReadyState readyState;
57
51
 
58
52
  // DOM tree accessors
59
53
  getter object (DOMString name);
60
- attribute DOMString title;
54
+ [CEReactions] attribute DOMString title;
61
55
  attribute DOMString dir;
62
56
  attribute HTMLElement? body;
63
57
  readonly attribute HTMLHeadElement? head;
@@ -68,21 +62,21 @@ partial /*sealed*/ interface Document {
68
62
  [SameObject] readonly attribute HTMLCollection forms;
69
63
  [SameObject] readonly attribute HTMLCollection scripts;
70
64
  NodeList getElementsByName(DOMString elementName);
71
- readonly attribute HTMLScriptElement? currentScript;
65
+ readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
72
66
 
73
67
  // dynamic markup insertion
74
68
  Document open(optional DOMString type = "text/html", optional DOMString replace = "");
75
69
  WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false);
76
- void close();
77
- void write(DOMString... text);
78
- void writeln(DOMString... text);
70
+ [CEReactions] void close();
71
+ [CEReactions] void write(DOMString... text);
72
+ [CEReactions] void writeln(DOMString... text);
79
73
 
80
74
  // user interaction
81
75
  readonly attribute WindowProxy? defaultView;
82
76
  readonly attribute Element? activeElement;
83
77
  boolean hasFocus();
84
- attribute DOMString designMode;
85
- boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
78
+ [CEReactions] attribute DOMString designMode;
79
+ [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
86
80
  boolean queryCommandEnabled(DOMString commandId);
87
81
  boolean queryCommandIndeterm(DOMString commandId);
88
82
  boolean queryCommandState(DOMString commandId);
@@ -96,40 +90,43 @@ Document implements GlobalEventHandlers;
96
90
  Document implements DocumentAndElementEventHandlers;
97
91
 
98
92
 
99
- partial interface XMLDocument {
100
- boolean load(DOMString url);
101
- };
102
-
103
-
93
+ [HTMLConstructor]
104
94
  interface HTMLElement : Element {
105
95
  // metadata attributes
106
- attribute DOMString title;
107
- attribute DOMString lang;
108
- attribute boolean translate;
109
- attribute DOMString dir;
96
+ [CEReactions] attribute DOMString title;
97
+ [CEReactions] attribute DOMString lang;
98
+ [CEReactions] attribute boolean translate;
99
+ [CEReactions] attribute DOMString dir;
110
100
  [SameObject] readonly attribute DOMStringMap dataset;
111
101
 
112
102
  // user interaction
113
- attribute boolean hidden;
103
+ [CEReactions] attribute boolean hidden;
114
104
  void click();
115
- attribute long tabIndex;
105
+ [CEReactions] attribute long tabIndex;
116
106
  void focus();
117
107
  void blur();
118
- attribute DOMString accessKey;
119
- attribute boolean draggable;
120
- [PutForwards=value] readonly attribute DOMTokenList dropzone;
121
- attribute HTMLMenuElement? contextMenu;
122
- attribute boolean spellcheck;
108
+ [CEReactions] attribute DOMString accessKey;
109
+ [CEReactions] attribute boolean draggable;
110
+ [CEReactions] attribute boolean spellcheck;
123
111
  void forceSpellCheck();
112
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText;
124
113
  };
125
114
  HTMLElement implements GlobalEventHandlers;
126
115
  HTMLElement implements DocumentAndElementEventHandlers;
127
116
  HTMLElement implements ElementContentEditable;
128
117
 
129
-
118
+ // Note: intentionally not [HTMLConstructor]
130
119
  interface HTMLUnknownElement : HTMLElement { };
131
120
 
132
121
 
122
+ [OverrideBuiltins]
123
+ interface DOMStringMap {
124
+ getter DOMString (DOMString name);
125
+ [CEReactions] setter void (DOMString name, DOMString value);
126
+ [CEReactions] deleter void (DOMString name);
127
+ };
128
+
129
+
133
130
  interface HTMLHtmlElement : HTMLElement {};
134
131
 
135
132
 
@@ -148,17 +145,19 @@ interface HTMLBaseElement : HTMLElement {
148
145
 
149
146
 
150
147
  interface HTMLLinkElement : HTMLElement {
151
- attribute DOMString href;
152
- attribute DOMString? crossOrigin;
153
- attribute DOMString rel;
154
- attribute DOMString rev;
155
- [SameObject, PutForwards=value]readonly attribute DOMTokenList relList;
156
- attribute DOMString media;
157
- attribute DOMString hreflang;
158
- attribute DOMString type;
159
- [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
148
+ [CEReactions] attribute USVString href;
149
+ [CEReactions] attribute DOMString? crossOrigin;
150
+ [CEReactions] attribute DOMString rel;
151
+ [CEReactions] attribute DOMString rev;
152
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
153
+ [CEReactions] attribute DOMString media;
154
+ [CEReactions] attribute DOMString nonce;
155
+ [CEReactions] attribute DOMString hreflang;
156
+ [CEReactions] attribute DOMString type;
157
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
158
+ [CEReactions] attribute DOMString referrerPolicy;
160
159
  };
161
- HTMLLinkElement implements LinkStyle;
160
+ HTMLLinkElement implements LinkStyle;
162
161
 
163
162
 
164
163
  interface HTMLMetaElement : HTMLElement {
@@ -228,6 +227,7 @@ interface HTMLAnchorElement : HTMLElement {
228
227
  attribute DOMString hreflang;
229
228
  attribute DOMString type;
230
229
  attribute DOMString text;
230
+ attribute DOMString referrerPolicy;
231
231
  };
232
232
  HTMLAnchorElement implements HTMLHyperlinkElementUtils;
233
233
 
@@ -257,7 +257,9 @@ interface HTMLModElement : HTMLElement {
257
257
  interface HTMLPictureElement : HTMLElement {};
258
258
 
259
259
 
260
- partial interface HTMLSourceElement {
260
+ interface HTMLSourceElement : HTMLElement {
261
+ attribute DOMString src;
262
+ attribute DOMString type;
261
263
  attribute DOMString srcset;
262
264
  attribute DOMString sizes;
263
265
  attribute DOMString media;
@@ -272,6 +274,7 @@ interface HTMLImageElement : HTMLElement {
272
274
  attribute DOMString sizes;
273
275
  attribute DOMString? crossOrigin;
274
276
  attribute DOMString useMap;
277
+ attribute DOMString longDesc;
275
278
  attribute boolean isMap;
276
279
  attribute unsigned long width;
277
280
  attribute unsigned long height;
@@ -279,6 +282,7 @@ interface HTMLImageElement : HTMLElement {
279
282
  readonly attribute unsigned long naturalHeight;
280
283
  readonly attribute boolean complete;
281
284
  readonly attribute DOMString currentSrc;
285
+ attribute DOMString referrerPolicy;
282
286
  };
283
287
 
284
288
 
@@ -286,10 +290,12 @@ interface HTMLIFrameElement : HTMLElement {
286
290
  attribute DOMString src;
287
291
  attribute DOMString srcdoc;
288
292
  attribute DOMString name;
289
- [PutForwards=value] readonly attribute DOMTokenList sandbox;
293
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
290
294
  attribute boolean allowFullscreen;
295
+ attribute boolean allowPaymentRequest;
291
296
  attribute DOMString width;
292
297
  attribute DOMString height;
298
+ attribute DOMString referrerPolicy;
293
299
  readonly attribute Document? contentDocument;
294
300
  readonly attribute WindowProxy? contentWindow;
295
301
  };
@@ -345,12 +351,6 @@ interface HTMLVideoElement : HTMLMediaElement {
345
351
  interface HTMLAudioElement : HTMLMediaElement {};
346
352
 
347
353
 
348
- interface HTMLSourceElement : HTMLElement {
349
- attribute DOMString src;
350
- attribute DOMString type;
351
- };
352
-
353
-
354
354
  interface HTMLTrackElement : HTMLElement {
355
355
  attribute DOMString kind;
356
356
  attribute DOMString src;
@@ -557,7 +557,7 @@ interface TrackEvent : Event {
557
557
  };
558
558
 
559
559
  dictionary TrackEventInit : EventInit {
560
- (VideoTrack or AudioTrack or TextTrack)? track;
560
+ (VideoTrack or AudioTrack or TextTrack)? track = null;
561
561
  };
562
562
 
563
563
 
@@ -575,9 +575,10 @@ interface HTMLAreaElement : HTMLElement {
575
575
  attribute DOMString target;
576
576
  attribute DOMString download;
577
577
  attribute DOMString rel;
578
- readonly attribute DOMTokenList relList;
578
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
579
579
  attribute DOMString hreflang;
580
580
  attribute DOMString type;
581
+ attribute DOMString referrerPolicy;
581
582
  };
582
583
  HTMLAreaElement implements HTMLHyperlinkElementUtils;
583
584
 
@@ -652,7 +653,7 @@ interface HTMLTableHeaderCellElement : HTMLTableCellElement {
652
653
  interface HTMLTableCellElement : HTMLElement {
653
654
  attribute unsigned long colSpan;
654
655
  attribute unsigned long rowSpan;
655
- [PutForwards=value] readonly attribute DOMTokenList headers;
656
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList headers;
656
657
  readonly attribute long cellIndex;
657
658
  };
658
659
 
@@ -706,7 +707,6 @@ interface HTMLInputElement : HTMLElement {
706
707
  attribute DOMString formTarget;
707
708
  attribute unsigned long height;
708
709
  attribute boolean indeterminate;
709
- attribute DOMString inputMode;
710
710
  readonly attribute HTMLElement? list;
711
711
  attribute DOMString max;
712
712
  attribute long maxLength;
@@ -717,7 +717,7 @@ interface HTMLInputElement : HTMLElement {
717
717
  attribute DOMString pattern;
718
718
  attribute DOMString placeholder;
719
719
  attribute boolean readOnly;
720
- attribute boolean required;
720
+ attribute boolean _required;
721
721
  attribute unsigned long size;
722
722
  attribute DOMString src;
723
723
  attribute DOMString step;
@@ -741,9 +741,9 @@ interface HTMLInputElement : HTMLElement {
741
741
  [SameObject] readonly attribute NodeList labels;
742
742
 
743
743
  void select();
744
- attribute unsigned long selectionStart;
745
- attribute unsigned long selectionEnd;
746
- attribute DOMString selectionDirection;
744
+ attribute unsigned long? selectionStart;
745
+ attribute unsigned long? selectionEnd;
746
+ attribute DOMString? selectionDirection;
747
747
  void setRangeText(DOMString replacement);
748
748
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
749
749
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
@@ -762,7 +762,6 @@ interface HTMLButtonElement : HTMLElement {
762
762
  attribute DOMString name;
763
763
  attribute DOMString type;
764
764
  attribute DOMString value;
765
- attribute HTMLMenuElement? menu;
766
765
 
767
766
  readonly attribute boolean willValidate;
768
767
  readonly attribute ValidityState validity;
@@ -782,7 +781,7 @@ interface HTMLSelectElement : HTMLElement {
782
781
  readonly attribute HTMLFormElement? form;
783
782
  attribute boolean multiple;
784
783
  attribute DOMString name;
785
- attribute boolean required;
784
+ attribute boolean _required;
786
785
  attribute unsigned long size;
787
786
 
788
787
  readonly attribute DOMString type;
@@ -843,13 +842,12 @@ interface HTMLTextAreaElement : HTMLElement {
843
842
  attribute DOMString dirName;
844
843
  attribute boolean disabled;
845
844
  readonly attribute HTMLFormElement? form;
846
- attribute DOMString inputMode;
847
845
  attribute long maxLength;
848
846
  attribute long minLength;
849
847
  attribute DOMString name;
850
848
  attribute DOMString placeholder;
851
849
  attribute boolean readOnly;
852
- attribute boolean required;
850
+ attribute boolean _required;
853
851
  attribute unsigned long rows;
854
852
  attribute DOMString wrap;
855
853
 
@@ -868,36 +866,15 @@ interface HTMLTextAreaElement : HTMLElement {
868
866
  [SameObject] readonly attribute NodeList labels;
869
867
 
870
868
  void select();
871
- attribute unsigned long selectionStart;
872
- attribute unsigned long selectionEnd;
873
- attribute DOMString selectionDirection;
869
+ attribute unsigned long? selectionStart;
870
+ attribute unsigned long? selectionEnd;
871
+ attribute DOMString? selectionDirection;
874
872
  void setRangeText(DOMString replacement);
875
873
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
876
874
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
877
875
  };
878
876
 
879
877
 
880
- interface HTMLKeygenElement : HTMLElement {
881
- attribute boolean autofocus;
882
- attribute DOMString challenge;
883
- attribute boolean disabled;
884
- readonly attribute HTMLFormElement? form;
885
- attribute DOMString keytype;
886
- attribute DOMString name;
887
-
888
- readonly attribute DOMString type;
889
-
890
- readonly attribute boolean willValidate;
891
- readonly attribute ValidityState validity;
892
- readonly attribute DOMString validationMessage;
893
- boolean checkValidity();
894
- boolean reportValidity();
895
- void setCustomValidity(DOMString error);
896
-
897
- [SameObject] readonly attribute NodeList labels;
898
- };
899
-
900
-
901
878
  interface HTMLOutputElement : HTMLElement {
902
879
  [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
903
880
  readonly attribute HTMLFormElement? form;
@@ -988,30 +965,12 @@ interface HTMLDetailsElement : HTMLElement {
988
965
  };
989
966
 
990
967
 
991
- interface HTMLMenuElement : HTMLElement {
992
- attribute DOMString type;
993
- attribute DOMString label;
994
- };
995
-
996
-
997
- interface HTMLMenuItemElement : HTMLElement {
998
- attribute DOMString type;
999
- attribute DOMString label;
1000
- attribute DOMString icon;
1001
- attribute boolean disabled;
1002
- attribute boolean checked;
1003
- attribute DOMString radiogroup;
1004
- attribute boolean default;
1005
- };
1006
-
1007
-
1008
- [Constructor(DOMString type, optional RelatedEventInit eventInitDict)]
1009
- interface RelatedEvent : Event {
1010
- readonly attribute EventTarget? relatedTarget;
1011
- };
1012
-
1013
- dictionary RelatedEventInit : EventInit {
1014
- EventTarget? relatedTarget;
968
+ interface HTMLDialogElement : HTMLElement {
969
+ attribute boolean open;
970
+ attribute DOMString returnValue;
971
+ void show(optional (MouseEvent or Element) anchor);
972
+ void showModal(optional (MouseEvent or Element) anchor);
973
+ void close(optional DOMString returnValue);
1015
974
  };
1016
975
 
1017
976
 
@@ -1027,6 +986,8 @@ interface HTMLScriptElement : HTMLElement {
1027
986
  };
1028
987
 
1029
988
 
989
+ [Exposed=Window,
990
+ HTMLConstructor]
1030
991
  interface HTMLTemplateElement : HTMLElement {
1031
992
  readonly attribute DocumentFragment content;
1032
993
  };
@@ -1134,6 +1095,9 @@ readonly attribute Element? frameElement;
1134
1095
  WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
1135
1096
  getter WindowProxy (unsigned long index);
1136
1097
  getter object (DOMString name);
1098
+ // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic
1099
+ // object on the prototype chain. Indeed, this does not make the global object an exotic object.
1100
+ // Indexed access is taken care of by the WindowProxy exotic object.
1137
1101
 
1138
1102
  // the user agent
1139
1103
  readonly attribute Navigator navigator;
@@ -1144,7 +1108,6 @@ void alert(DOMString message);
1144
1108
  boolean confirm(optional DOMString message = "");
1145
1109
  DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
1146
1110
  void print();
1147
- any showModalDialog(DOMString url, optional any argument); // deprecated
1148
1111
 
1149
1112
  unsigned long requestAnimationFrame(FrameRequestCallback callback);
1150
1113
  void cancelAnimationFrame(unsigned long handle);
@@ -1175,23 +1138,22 @@ interface History {
1175
1138
  };
1176
1139
 
1177
1140
 
1178
- [Unforgeable]
1179
1141
  interface Location {
1180
- stringifier attribute USVString href;
1181
- readonly attribute USVString origin;
1182
- attribute USVString protocol;
1183
- attribute USVString host;
1184
- attribute USVString hostname;
1185
- attribute USVString port;
1186
- attribute USVString pathname;
1187
- attribute USVString search;
1188
- attribute USVString hash;
1142
+ [Unforgeable] stringifier attribute USVString href;
1143
+ [Unforgeable] readonly attribute USVString origin;
1144
+ [Unforgeable] attribute USVString protocol;
1145
+ [Unforgeable] attribute USVString host;
1146
+ [Unforgeable] attribute USVString hostname;
1147
+ [Unforgeable] attribute USVString port;
1148
+ [Unforgeable] attribute USVString pathname;
1149
+ [Unforgeable] attribute USVString search;
1150
+ [Unforgeable] attribute USVString hash;
1189
1151
 
1190
- void assign(USVString url);
1191
- void replace(USVString url);
1192
- void reload();
1152
+ [Unforgeable] void assign(USVString url);
1153
+ [Unforgeable] void replace(USVString url);
1154
+ [Unforgeable] void reload();
1193
1155
 
1194
- [SameObject] readonly attribute USVString[] ancestorOrigins;
1156
+ [Unforgeable, SameObject] readonly attribute USVString[] ancestorOrigins;
1195
1157
  };
1196
1158
 
1197
1159
 
@@ -1202,20 +1164,20 @@ interface PopStateEvent : Event {
1202
1164
 
1203
1165
 
1204
1166
  dictionary PopStateEventInit : EventInit {
1205
- any state;
1167
+ any state = null;
1206
1168
  };
1207
1169
 
1208
1170
 
1209
1171
  [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
1210
1172
  interface HashChangeEvent : Event {
1211
- readonly attribute DOMString oldURL;
1212
- readonly attribute DOMString newURL;
1173
+ readonly attribute USVString oldURL;
1174
+ readonly attribute USVString newURL;
1213
1175
  };
1214
1176
 
1215
1177
 
1216
1178
  dictionary HashChangeEventInit : EventInit {
1217
- DOMString oldURL;
1218
- DOMString newURL;
1179
+ USVString oldURL = "";
1180
+ USVString newURL = "";
1219
1181
  };
1220
1182
 
1221
1183
 
@@ -1226,7 +1188,7 @@ interface PageTransitionEvent : Event {
1226
1188
 
1227
1189
 
1228
1190
  dictionary PageTransitionEventInit : EventInit {
1229
- boolean persisted;
1191
+ boolean persisted = false;
1230
1192
  };
1231
1193
 
1232
1194
 
@@ -1298,7 +1260,6 @@ interface GlobalEventHandlers {
1298
1260
  attribute EventHandler onchange;
1299
1261
  attribute EventHandler onclick;
1300
1262
  attribute EventHandler onclose;
1301
- attribute EventHandler oncontextmenu;
1302
1263
  attribute EventHandler oncuechange;
1303
1264
  attribute EventHandler ondblclick;
1304
1265
  attribute EventHandler ondrag;
@@ -1381,31 +1342,28 @@ interface DocumentAndElementEventHandlers {
1381
1342
  };
1382
1343
 
1383
1344
 
1345
+ typedef (DOMString or Function) TimerHandler;
1346
+
1384
1347
  [NoInterfaceObject, Exposed=(Window, Worker)]
1385
- interface WindowBase64 {
1348
+ interface WindowOrWorkerGlobalScope {
1349
+ [Replaceable] readonly attribute USVString origin;
1350
+
1351
+ // Base64 utility methods (WindowBase64)
1386
1352
  DOMString btoa(DOMString btoa);
1387
1353
  DOMString atob(DOMString atob);
1388
- };
1389
- Window implements WindowBase64;
1390
- WorkerGlobalScope implements WindowBase64;
1391
-
1392
1354
 
1393
- [NoInterfaceObject, Exposed=(Window,Worker)]
1394
- interface WindowTimers {
1355
+ // Timers (WindowTimers)
1395
1356
  long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments);
1396
1357
  void clearTimeout(optional long handle = 0);
1397
1358
  long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments);
1398
1359
  void clearInterval(optional long handle = 0);
1399
- };
1400
- Window implements WindowTimers;
1401
- WorkerGlobalScope implements WindowTimers;
1402
-
1403
1360
 
1404
- [NoInterfaceObject]
1405
- interface WindowModal {
1406
- readonly attribute any dialogArguments;
1407
- attribute any returnValue;
1361
+ // ImageBitmap, Images (ImageBitmapFactories)
1362
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
1363
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1408
1364
  };
1365
+ Window implements WindowOrWorkerGlobalScope;
1366
+ WorkerGlobalScope implements WindowOrWorkerGlobalScope;
1409
1367
 
1410
1368
 
1411
1369
  interface Navigator {
@@ -1416,7 +1374,6 @@ Navigator implements NavigatorLanguage;
1416
1374
  Navigator implements NavigatorOnLine;
1417
1375
  Navigator implements NavigatorContentUtils;
1418
1376
  Navigator implements NavigatorCookies;
1419
- Navigator implements NavigatorPlugins;
1420
1377
 
1421
1378
 
1422
1379
  [NoInterfaceObject, Exposed=(Window, Worker)]
@@ -1441,7 +1398,11 @@ interface NavigatorLanguage {
1441
1398
  interface NavigatorContentUtils {
1442
1399
  // content handler registration
1443
1400
  void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
1401
+ void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
1402
+ DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
1403
+ DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
1444
1404
  void unregisterProtocolHandler(DOMString scheme, DOMString url);
1405
+ void unregisterContentHandler(DOMString mimeType, DOMString url);
1445
1406
  };
1446
1407
 
1447
1408
 
@@ -1451,48 +1412,7 @@ interface NavigatorCookies {
1451
1412
  };
1452
1413
 
1453
1414
 
1454
- [NoInterfaceObject]
1455
- interface NavigatorPlugins {
1456
- [SameObject] readonly attribute PluginArray plugins;
1457
- [SameObject] readonly attribute MimeTypeArray mimeTypes;
1458
- boolean javaEnabled();
1459
- };
1460
-
1461
-
1462
- interface PluginArray {
1463
- void refresh(optional boolean reload = false);
1464
- readonly attribute unsigned long length;
1465
- getter Plugin? item(unsigned long index);
1466
- getter Plugin? namedItem(DOMString name);
1467
- };
1468
-
1469
-
1470
- interface MimeTypeArray {
1471
- readonly attribute unsigned long length;
1472
- getter MimeType? item(unsigned long index);
1473
- getter MimeType? namedItem(DOMString name);
1474
- };
1475
-
1476
-
1477
- interface Plugin {
1478
- readonly attribute DOMString name;
1479
- readonly attribute DOMString description;
1480
- readonly attribute DOMString filename;
1481
- readonly attribute unsigned long length;
1482
- getter MimeType? item(unsigned long index);
1483
- getter MimeType? namedItem(DOMString name);
1484
- };
1485
-
1486
-
1487
- interface MimeType {
1488
- readonly attribute DOMString type;
1489
- readonly attribute DOMString description;
1490
- readonly attribute DOMString suffixes; // comma-separated
1491
- readonly attribute Plugin enabledPlugin;
1492
- };
1493
-
1494
-
1495
- [Exposed=(Window, Worker)]
1415
+ [Exposed=(Window, Worker), Serializable, Transferable]
1496
1416
  interface ImageBitmap {
1497
1417
  readonly attribute unsigned long width;
1498
1418
  readonly attribute unsigned long height;
@@ -1507,42 +1427,35 @@ typedef (HTMLImageElement or
1507
1427
  ImageBitmap) ImageBitmapSource;
1508
1428
 
1509
1429
 
1510
- [NoInterfaceObject, Exposed=(Window, Worker)]
1511
- interface ImageBitmapFactories {
1512
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
1513
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1514
- };
1515
- Window implements ImageBitmapFactories;
1516
- WorkerGlobalScope implements ImageBitmapFactories;
1517
-
1518
-
1430
+ // Note: intentionally not [HTMLConstructor]
1519
1431
  interface HTMLAppletElement : HTMLElement {
1520
1432
  attribute DOMString align;
1521
1433
  attribute DOMString alt;
1522
1434
  attribute DOMString archive;
1523
1435
  attribute DOMString code;
1524
- attribute DOMString codeBase;
1436
+ attribute USVString codeBase;
1525
1437
  attribute DOMString height;
1526
1438
  attribute unsigned long hspace;
1527
1439
  attribute DOMString name;
1528
- attribute DOMString _object; // the underscore is not part of the identifier
1440
+ attribute USVString _object; // the underscore is not part of the identifier
1529
1441
  attribute unsigned long vspace;
1530
1442
  attribute DOMString width;
1531
1443
  };
1532
1444
 
1533
1445
 
1446
+ [HTMLConstructor]
1534
1447
  interface HTMLMarqueeElement : HTMLElement {
1535
- attribute DOMString behavior;
1536
- attribute DOMString bgColor;
1537
- attribute DOMString direction;
1538
- attribute DOMString height;
1539
- attribute unsigned long hspace;
1540
- attribute long loop;
1541
- attribute unsigned long scrollAmount;
1542
- attribute unsigned long scrollDelay;
1543
- attribute boolean trueSpeed;
1544
- attribute unsigned long vspace;
1545
- attribute DOMString width;
1448
+ [CEReactions] attribute DOMString behavior;
1449
+ [CEReactions] attribute DOMString bgColor;
1450
+ [CEReactions] attribute DOMString direction;
1451
+ [CEReactions] attribute DOMString height;
1452
+ [CEReactions] attribute unsigned long hspace;
1453
+ [CEReactions] attribute long loop;
1454
+ [CEReactions] attribute unsigned long scrollAmount;
1455
+ [CEReactions] attribute unsigned long scrollDelay;
1456
+ [CEReactions] attribute boolean trueSpeed;
1457
+ [CEReactions] attribute unsigned long vspace;
1458
+ [CEReactions] attribute DOMString width;
1546
1459
 
1547
1460
  attribute EventHandler onbounce;
1548
1461
  attribute EventHandler onfinish;
@@ -1553,304 +1466,275 @@ interface HTMLMarqueeElement : HTMLElement {
1553
1466
  };
1554
1467
 
1555
1468
 
1469
+ [HTMLConstructor]
1556
1470
  interface HTMLFrameSetElement : HTMLElement {
1557
- attribute DOMString cols;
1558
- attribute DOMString rows;
1471
+ [CEReactions] attribute DOMString cols;
1472
+ [CEReactions] attribute DOMString rows;
1559
1473
  };
1560
1474
  HTMLFrameSetElement implements WindowEventHandlers;
1561
1475
 
1562
1476
 
1477
+ [HTMLConstructor]
1563
1478
  interface HTMLFrameElement : HTMLElement {
1564
- attribute DOMString name;
1565
- attribute DOMString scrolling;
1566
- attribute DOMString src;
1567
- attribute DOMString frameBorder;
1568
- attribute boolean noResize;
1479
+ [CEReactions] attribute DOMString name;
1480
+ [CEReactions] attribute DOMString scrolling;
1481
+ [CEReactions] attribute USVString src;
1482
+ [CEReactions] attribute DOMString frameBorder;
1483
+ [CEReactions] attribute USVString longDesc;
1484
+ [CEReactions] attribute boolean noResize;
1569
1485
  readonly attribute Document? contentDocument;
1570
1486
  readonly attribute WindowProxy? contentWindow;
1571
1487
 
1572
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
1573
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
1574
- };
1575
-
1576
-
1577
- [Exposed=(Window, SharedWorker)]
1578
- interface ApplicationCache : EventTarget {
1579
- // update status
1580
- const unsigned short UNCACHED = 0;
1581
- const unsigned short IDLE = 1;
1582
- const unsigned short CHECKING = 2;
1583
- const unsigned short DOWNLOADING = 3;
1584
- const unsigned short UPDATEREADY = 4;
1585
- const unsigned short OBSOLETE = 5;
1586
- readonly attribute unsigned short status;
1587
-
1588
- // updates
1589
- void update();
1590
- void abort();
1591
- void swapCache();
1592
-
1593
- // events
1594
- attribute EventHandler onchecking;
1595
- attribute EventHandler onerror;
1596
- attribute EventHandler onnoupdate;
1597
- attribute EventHandler ondownloading;
1598
- attribute EventHandler onprogress;
1599
- attribute EventHandler onupdateready;
1600
- attribute EventHandler oncached;
1601
- attribute EventHandler onobsolete;
1488
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
1489
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
1602
1490
  };
1603
1491
 
1604
1492
 
1605
1493
  partial interface HTMLAnchorElement {
1606
- attribute DOMString coords;
1607
- attribute DOMString charset;
1608
- attribute DOMString name;
1609
- attribute DOMString shape;
1494
+ [CEReactions] attribute DOMString coords;
1495
+ [CEReactions] attribute DOMString charset;
1496
+ [CEReactions] attribute DOMString name;
1497
+ [CEReactions] attribute DOMString shape;
1610
1498
  };
1611
1499
 
1612
1500
 
1613
1501
  partial interface HTMLAreaElement {
1614
- attribute boolean noHref;
1502
+ [CEReactions] attribute boolean noHref;
1615
1503
  };
1616
1504
 
1617
1505
 
1618
1506
  partial interface HTMLBodyElement {
1619
- [TreatNullAs=EmptyString] attribute DOMString text;
1620
- [TreatNullAs=EmptyString] attribute DOMString link;
1621
- [TreatNullAs=EmptyString] attribute DOMString vLink;
1622
- [TreatNullAs=EmptyString] attribute DOMString aLink;
1623
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
1507
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString text;
1508
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString link;
1509
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink;
1510
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink;
1511
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1624
1512
  attribute DOMString background;
1625
1513
  };
1626
1514
 
1627
1515
 
1628
1516
  partial interface HTMLBRElement {
1629
- attribute DOMString clear;
1517
+ [CEReactions] attribute DOMString clear;
1630
1518
  };
1631
1519
 
1632
1520
 
1633
1521
  partial interface HTMLTableCaptionElement {
1634
- attribute DOMString align;
1522
+ [CEReactions] attribute DOMString align;
1635
1523
  };
1636
1524
 
1637
1525
 
1638
1526
  partial interface HTMLTableColElement {
1639
- attribute DOMString align;
1640
- attribute DOMString ch;
1641
- attribute DOMString chOff;
1642
- attribute DOMString vAlign;
1643
- attribute DOMString width;
1527
+ [CEReactions] attribute DOMString align;
1528
+ [CEReactions] attribute DOMString ch;
1529
+ [CEReactions] attribute DOMString chOff;
1530
+ [CEReactions] attribute DOMString vAlign;
1531
+ [CEReactions] attribute DOMString width;
1644
1532
  };
1645
1533
 
1646
1534
 
1535
+ [HTMLConstructor]
1647
1536
  interface HTMLDirectoryElement : HTMLElement {
1648
- attribute boolean compact;
1537
+ [CEReactions] attribute boolean compact;
1649
1538
  };
1650
1539
 
1651
1540
 
1652
1541
  partial interface HTMLDivElement {
1653
- attribute DOMString align;
1542
+ [CEReactions] attribute DOMString align;
1654
1543
  };
1655
1544
 
1656
1545
 
1657
1546
  partial interface HTMLDListElement {
1658
- attribute boolean compact;
1547
+ [CEReactions] attribute boolean compact;
1659
1548
  };
1660
1549
 
1661
1550
 
1662
1551
  partial interface HTMLEmbedElement {
1663
- attribute DOMString align;
1664
- attribute DOMString name;
1552
+ [CEReactions] attribute DOMString align;
1553
+ [CEReactions] attribute DOMString name;
1665
1554
  };
1666
1555
 
1667
1556
 
1557
+ [HTMLConstructor]
1668
1558
  interface HTMLFontElement : HTMLElement {
1669
- [TreatNullAs=EmptyString] attribute DOMString color;
1670
- attribute DOMString face;
1671
- attribute DOMString size;
1559
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString color;
1560
+ [CEReactions] attribute DOMString face;
1561
+ [CEReactions] attribute DOMString size;
1672
1562
  };
1673
1563
 
1674
1564
 
1675
1565
  partial interface HTMLHeadingElement {
1676
- attribute DOMString align;
1566
+ [CEReactions] attribute DOMString align;
1677
1567
  };
1678
1568
 
1679
1569
 
1680
1570
  partial interface HTMLHRElement {
1681
- attribute DOMString align;
1682
- attribute DOMString color;
1683
- attribute boolean noShade;
1684
- attribute DOMString size;
1685
- attribute DOMString width;
1571
+ [CEReactions] attribute DOMString align;
1572
+ [CEReactions] attribute DOMString color;
1573
+ [CEReactions] attribute boolean noShade;
1574
+ [CEReactions] attribute DOMString size;
1575
+ [CEReactions] attribute DOMString width;
1686
1576
  };
1687
1577
 
1688
1578
 
1689
1579
  partial interface HTMLHtmlElement {
1690
- attribute DOMString version;
1580
+ [CEReactions] attribute DOMString version;
1691
1581
  };
1692
1582
 
1693
1583
 
1694
1584
  partial interface HTMLIFrameElement {
1695
- attribute DOMString align;
1696
- attribute DOMString scrolling;
1697
- attribute DOMString frameBorder;
1698
-
1699
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
1700
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
1585
+ [CEReactions] attribute DOMString align;
1586
+ [CEReactions] attribute DOMString scrolling;
1587
+ [CEReactions] attribute DOMString frameBorder;
1588
+ [CEReactions] attribute USVString longDesc;
1589
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
1590
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
1701
1591
  };
1702
1592
 
1703
1593
 
1704
1594
  partial interface HTMLImageElement {
1705
- attribute DOMString name;
1706
- attribute DOMString lowsrc;
1707
- attribute DOMString align;
1708
- attribute unsigned long hspace;
1709
- attribute unsigned long vspace;
1595
+ [CEReactions] attribute DOMString name;
1596
+ [CEReactions] attribute USVString lowsrc;
1597
+ [CEReactions] attribute DOMString align;
1598
+ [CEReactions] attribute unsigned long hspace;
1599
+ [CEReactions] attribute unsigned long vspace;
1710
1600
 
1711
- [TreatNullAs=EmptyString] attribute DOMString border;
1601
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
1712
1602
  };
1713
1603
 
1714
1604
 
1715
1605
  partial interface HTMLInputElement {
1716
- attribute DOMString align;
1717
- attribute DOMString useMap;
1606
+ [CEReactions] attribute DOMString align;
1607
+ [CEReactions] attribute DOMString useMap;
1718
1608
  };
1719
1609
 
1720
1610
 
1721
1611
  partial interface HTMLLegendElement {
1722
- attribute DOMString align;
1612
+ [CEReactions] attribute DOMString align;
1723
1613
  };
1724
1614
 
1725
1615
 
1726
1616
  partial interface HTMLLIElement {
1727
- attribute DOMString type;
1617
+ [CEReactions] attribute DOMString type;
1728
1618
  };
1729
1619
 
1730
1620
 
1731
1621
  partial interface HTMLLinkElement {
1732
- attribute DOMString charset;
1733
- attribute DOMString target;
1622
+ [CEReactions] attribute DOMString charset;
1623
+ [CEReactions] attribute DOMString target;
1734
1624
  };
1735
1625
 
1736
1626
 
1737
1627
  partial interface HTMLMenuElement {
1738
- attribute boolean compact;
1628
+ [CEReactions] attribute boolean compact;
1739
1629
  };
1740
1630
 
1741
1631
 
1742
1632
  partial interface HTMLMetaElement {
1743
- attribute DOMString scheme;
1633
+ [CEReactions] attribute DOMString scheme;
1744
1634
  };
1745
1635
 
1746
1636
 
1747
1637
  partial interface HTMLObjectElement {
1748
- attribute DOMString align;
1749
- attribute DOMString archive;
1750
- attribute DOMString code;
1751
- attribute boolean declare;
1752
- attribute unsigned long hspace;
1753
- attribute DOMString standby;
1754
- attribute unsigned long vspace;
1755
- attribute DOMString codeBase;
1756
- attribute DOMString codeType;
1757
- attribute DOMString useMap;
1638
+ [CEReactions] attribute DOMString align;
1639
+ [CEReactions] attribute DOMString archive;
1640
+ [CEReactions] attribute DOMString code;
1641
+ [CEReactions] attribute boolean declare;
1642
+ [CEReactions] attribute unsigned long hspace;
1643
+ [CEReactions] attribute DOMString standby;
1644
+ [CEReactions] attribute unsigned long vspace;
1645
+ [CEReactions] attribute DOMString codeBase;
1646
+ [CEReactions] attribute DOMString codeType;
1758
1647
 
1759
- [TreatNullAs=EmptyString] attribute DOMString border;
1648
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
1760
1649
  };
1761
1650
 
1762
1651
 
1763
1652
  partial interface HTMLOListElement {
1764
- attribute boolean compact;
1653
+ [CEReactions] attribute boolean compact;
1765
1654
  };
1766
1655
 
1767
1656
 
1768
1657
  partial interface HTMLParagraphElement {
1769
- attribute DOMString align;
1658
+ [CEReactions] attribute DOMString align;
1770
1659
  };
1771
1660
 
1772
1661
 
1773
1662
  partial interface HTMLParamElement {
1774
- attribute DOMString type;
1775
- attribute DOMString valueType;
1663
+ [CEReactions] attribute DOMString type;
1664
+ [CEReactions] attribute DOMString valueType;
1776
1665
  };
1777
1666
 
1778
1667
 
1779
1668
  partial interface HTMLPreElement {
1780
- attribute long width;
1669
+ [CEReactions] attribute long width;
1781
1670
  };
1782
1671
 
1783
1672
 
1784
1673
  partial interface HTMLScriptElement {
1785
- attribute DOMString event;
1786
- attribute DOMString htmlFor;
1674
+ [CEReactions] attribute DOMString event;
1675
+ [CEReactions] attribute DOMString htmlFor;
1787
1676
  };
1788
1677
 
1789
1678
 
1790
1679
  partial interface HTMLTableElement {
1791
- attribute DOMString align;
1792
- attribute DOMString border;
1793
- attribute DOMString frame;
1794
- attribute DOMString rules;
1795
- attribute DOMString summary;
1796
- attribute DOMString width;
1680
+ [CEReactions] attribute DOMString align;
1681
+ [CEReactions] attribute DOMString border;
1682
+ [CEReactions] attribute DOMString frame;
1683
+ [CEReactions] attribute DOMString rules;
1684
+ [CEReactions] attribute DOMString summary;
1685
+ [CEReactions] attribute DOMString width;
1797
1686
 
1798
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
1799
- [TreatNullAs=EmptyString] attribute DOMString cellPadding;
1800
- [TreatNullAs=EmptyString] attribute DOMString cellSpacing;
1687
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1688
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding;
1689
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
1801
1690
  };
1802
1691
 
1803
1692
 
1804
1693
  partial interface HTMLTableSectionElement {
1805
- attribute DOMString align;
1806
- attribute DOMString ch;
1807
- attribute DOMString chOff;
1808
- attribute DOMString vAlign;
1694
+ [CEReactions] attribute DOMString align;
1695
+ [CEReactions] attribute DOMString ch;
1696
+ [CEReactions] attribute DOMString chOff;
1697
+ [CEReactions] attribute DOMString vAlign;
1809
1698
  };
1810
1699
 
1811
1700
 
1812
1701
  partial interface HTMLTableCellElement {
1813
- attribute DOMString align;
1814
- attribute DOMString axis;
1815
- attribute DOMString height;
1816
- attribute DOMString width;
1817
-
1818
- attribute DOMString ch;
1819
- attribute DOMString chOff;
1820
- attribute boolean noWrap;
1821
- attribute DOMString vAlign;
1822
-
1823
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
1824
- };
1702
+ [CEReactions] attribute DOMString align;
1703
+ [CEReactions] attribute DOMString axis;
1704
+ [CEReactions] attribute DOMString height;
1705
+ [CEReactions] attribute DOMString width;
1825
1706
 
1707
+ [CEReactions] attribute DOMString ch;
1708
+ [CEReactions] attribute DOMString chOff;
1709
+ [CEReactions] attribute boolean noWrap;
1710
+ [CEReactions] attribute DOMString vAlign;
1826
1711
 
1827
- partial interface HTMLTableDataCellElement {
1828
- attribute DOMString abbr;
1712
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1829
1713
  };
1830
1714
 
1831
1715
 
1832
1716
  partial interface HTMLTableRowElement {
1833
- attribute DOMString align;
1834
- attribute DOMString ch;
1835
- attribute DOMString chOff;
1836
- attribute DOMString vAlign;
1717
+ [CEReactions] attribute DOMString align;
1718
+ [CEReactions] attribute DOMString ch;
1719
+ [CEReactions] attribute DOMString chOff;
1720
+ [CEReactions] attribute DOMString vAlign;
1837
1721
 
1838
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
1722
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1839
1723
  };
1840
1724
 
1841
1725
 
1842
1726
  partial interface HTMLUListElement {
1843
- attribute boolean compact;
1844
- attribute DOMString type;
1727
+ [CEReactions] attribute boolean compact;
1728
+ [CEReactions] attribute DOMString type;
1845
1729
  };
1846
1730
 
1847
1731
 
1848
1732
  partial interface Document {
1849
- [TreatNullAs=EmptyString] attribute DOMString fgColor;
1850
- [TreatNullAs=EmptyString] attribute DOMString linkColor;
1851
- [TreatNullAs=EmptyString] attribute DOMString vlinkColor;
1852
- [TreatNullAs=EmptyString] attribute DOMString alinkColor;
1853
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
1733
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor;
1734
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor;
1735
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor;
1736
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor;
1737
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
1854
1738
 
1855
1739
  [SameObject] readonly attribute HTMLCollection anchors;
1856
1740
  [SameObject] readonly attribute HTMLCollection applets;
@@ -1878,6 +1762,49 @@ interface External {
1878
1762
  };
1879
1763
 
1880
1764
 
1765
+ Navigator implements NavigatorPlugins;
1766
+
1767
+ [NoInterfaceObject]
1768
+ interface NavigatorPlugins {
1769
+ [SameObject] readonly attribute PluginArray plugins;
1770
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
1771
+ boolean javaEnabled();
1772
+ };
1773
+
1774
+
1775
+ interface PluginArray {
1776
+ void refresh(optional boolean reload = false);
1777
+ readonly attribute unsigned long length;
1778
+ getter Plugin? item(unsigned long index);
1779
+ getter Plugin? namedItem(DOMString name);
1780
+ };
1781
+
1782
+
1783
+ interface MimeTypeArray {
1784
+ readonly attribute unsigned long length;
1785
+ getter MimeType? item(unsigned long index);
1786
+ getter MimeType? namedItem(DOMString name);
1787
+ };
1788
+
1789
+
1790
+ interface Plugin {
1791
+ readonly attribute DOMString name;
1792
+ readonly attribute DOMString description;
1793
+ readonly attribute DOMString filename;
1794
+ readonly attribute unsigned long length;
1795
+ getter MimeType? item(unsigned long index);
1796
+ getter MimeType? namedItem(DOMString name);
1797
+ };
1798
+
1799
+
1800
+ interface MimeType {
1801
+ readonly attribute DOMString type;
1802
+ readonly attribute DOMString description;
1803
+ readonly attribute DOMString suffixes; // comma-separated
1804
+ readonly attribute Plugin enabledPlugin;
1805
+ };
1806
+
1807
+
1881
1808
  [LegacyUnenumerableNamedProperties]
1882
1809
  interface HTMLAllCollection {
1883
1810
  readonly attribute unsigned long length;
@@ -1904,34 +1831,29 @@ interface HTMLOptionsCollection : HTMLCollection {
1904
1831
  attribute long selectedIndex;
1905
1832
  };
1906
1833
 
1907
- [OverrideBuiltins]
1908
- interface DOMStringMap {
1909
- getter DOMString (DOMString name);
1910
- setter void (DOMString name, DOMString value);
1911
- deleter void (DOMString name);
1912
- };
1913
-
1914
- interface DOMElementMap {
1915
- getter Element (DOMString name);
1916
- setter creator void (DOMString name, Element value);
1917
- deleter void (DOMString name);
1834
+ interface DOMStringList {
1835
+ readonly attribute unsigned long length;
1836
+ getter DOMString? item(unsigned long index);
1837
+ boolean contains(DOMString string);
1918
1838
  };
1919
1839
 
1920
1840
  enum DocumentReadyState { "loading", "interactive", "complete" };
1921
1841
 
1842
+ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
1843
+
1922
1844
  [OverrideBuiltins]
1923
- partial /*sealed*/ interface Document {
1845
+ partial interface Document {
1924
1846
  // resource metadata management
1925
1847
  [PutForwards=href, Unforgeable] readonly attribute Location? location;
1926
- attribute DOMString domain;
1927
- readonly attribute DOMString referrer;
1928
- attribute DOMString cookie;
1848
+ attribute USVString domain;
1849
+ readonly attribute USVString referrer;
1850
+ attribute USVString cookie;
1929
1851
  readonly attribute DOMString lastModified;
1930
1852
  readonly attribute DocumentReadyState readyState;
1931
1853
 
1932
1854
  // DOM tree accessors
1933
1855
  getter object (DOMString name);
1934
- attribute DOMString title;
1856
+ [CEReactions] attribute DOMString title;
1935
1857
  attribute DOMString dir;
1936
1858
  attribute HTMLElement? body;
1937
1859
  readonly attribute HTMLHeadElement? head;
@@ -1942,21 +1864,21 @@ partial /*sealed*/ interface Document {
1942
1864
  [SameObject] readonly attribute HTMLCollection forms;
1943
1865
  [SameObject] readonly attribute HTMLCollection scripts;
1944
1866
  NodeList getElementsByName(DOMString elementName);
1945
- readonly attribute HTMLScriptElement? currentScript;
1867
+ readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
1946
1868
 
1947
1869
  // dynamic markup insertion
1948
1870
  Document open(optional DOMString type = "text/html", optional DOMString replace = "");
1949
1871
  WindowProxy open(DOMString url, DOMString name, DOMString features, optional boolean replace = false);
1950
- void close();
1951
- void write(DOMString... text);
1952
- void writeln(DOMString... text);
1872
+ [CEReactions] void close();
1873
+ [CEReactions] void write(DOMString... text);
1874
+ [CEReactions] void writeln(DOMString... text);
1953
1875
 
1954
1876
  // user interaction
1955
1877
  readonly attribute WindowProxy? defaultView;
1956
1878
  readonly attribute Element? activeElement;
1957
1879
  boolean hasFocus();
1958
- attribute DOMString designMode;
1959
- boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
1880
+ [CEReactions] attribute DOMString designMode;
1881
+ [CEReactions] boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
1960
1882
  boolean queryCommandEnabled(DOMString commandId);
1961
1883
  boolean queryCommandIndeterm(DOMString commandId);
1962
1884
  boolean queryCommandState(DOMString commandId);
@@ -1969,37 +1891,41 @@ partial /*sealed*/ interface Document {
1969
1891
  Document implements GlobalEventHandlers;
1970
1892
  Document implements DocumentAndElementEventHandlers;
1971
1893
 
1972
- partial interface XMLDocument {
1973
- boolean load(DOMString url);
1974
- };
1975
-
1894
+ [HTMLConstructor]
1976
1895
  interface HTMLElement : Element {
1977
1896
  // metadata attributes
1978
- attribute DOMString title;
1979
- attribute DOMString lang;
1980
- attribute boolean translate;
1981
- attribute DOMString dir;
1897
+ [CEReactions] attribute DOMString title;
1898
+ [CEReactions] attribute DOMString lang;
1899
+ [CEReactions] attribute boolean translate;
1900
+ [CEReactions] attribute DOMString dir;
1982
1901
  [SameObject] readonly attribute DOMStringMap dataset;
1983
1902
 
1984
1903
  // user interaction
1985
- attribute boolean hidden;
1904
+ [CEReactions] attribute boolean hidden;
1986
1905
  void click();
1987
- attribute long tabIndex;
1906
+ [CEReactions] attribute long tabIndex;
1988
1907
  void focus();
1989
1908
  void blur();
1990
- attribute DOMString accessKey;
1991
- attribute boolean draggable;
1992
- [PutForwards=value] readonly attribute DOMTokenList dropzone;
1993
- attribute HTMLMenuElement? contextMenu;
1994
- attribute boolean spellcheck;
1909
+ [CEReactions] attribute DOMString accessKey;
1910
+ [CEReactions] attribute boolean draggable;
1911
+ [CEReactions] attribute boolean spellcheck;
1995
1912
  void forceSpellCheck();
1913
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString innerText;
1996
1914
  };
1997
1915
  HTMLElement implements GlobalEventHandlers;
1998
1916
  HTMLElement implements DocumentAndElementEventHandlers;
1999
1917
  HTMLElement implements ElementContentEditable;
2000
1918
 
1919
+ // Note: intentionally not [HTMLConstructor]
2001
1920
  interface HTMLUnknownElement : HTMLElement { };
2002
1921
 
1922
+ [OverrideBuiltins]
1923
+ interface DOMStringMap {
1924
+ getter DOMString (DOMString name);
1925
+ [CEReactions] setter void (DOMString name, DOMString value);
1926
+ [CEReactions] deleter void (DOMString name);
1927
+ };
1928
+
2003
1929
  interface HTMLHtmlElement : HTMLElement {};
2004
1930
 
2005
1931
  interface HTMLHeadElement : HTMLElement {};
@@ -2014,17 +1940,19 @@ interface HTMLBaseElement : HTMLElement {
2014
1940
  };
2015
1941
 
2016
1942
  interface HTMLLinkElement : HTMLElement {
2017
- attribute DOMString href;
2018
- attribute DOMString? crossOrigin;
2019
- attribute DOMString rel;
2020
- attribute DOMString rev;
2021
- [SameObject, PutForwards=value]readonly attribute DOMTokenList relList;
2022
- attribute DOMString media;
2023
- attribute DOMString hreflang;
2024
- attribute DOMString type;
2025
- [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
2026
- };
2027
- HTMLLinkElement implements LinkStyle;
1943
+ [CEReactions] attribute USVString href;
1944
+ [CEReactions] attribute DOMString? crossOrigin;
1945
+ [CEReactions] attribute DOMString rel;
1946
+ [CEReactions] attribute DOMString rev;
1947
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
1948
+ [CEReactions] attribute DOMString media;
1949
+ [CEReactions] attribute DOMString nonce;
1950
+ [CEReactions] attribute DOMString hreflang;
1951
+ [CEReactions] attribute DOMString type;
1952
+ [CEReactions, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
1953
+ [CEReactions] attribute DOMString referrerPolicy;
1954
+ };
1955
+ HTMLLinkElement implements LinkStyle;
2028
1956
 
2029
1957
  interface HTMLMetaElement : HTMLElement {
2030
1958
  attribute DOMString name;
@@ -2080,6 +2008,7 @@ interface HTMLAnchorElement : HTMLElement {
2080
2008
  attribute DOMString hreflang;
2081
2009
  attribute DOMString type;
2082
2010
  attribute DOMString text;
2011
+ attribute DOMString referrerPolicy;
2083
2012
  };
2084
2013
  HTMLAnchorElement implements HTMLHyperlinkElementUtils;
2085
2014
 
@@ -2102,7 +2031,9 @@ interface HTMLModElement : HTMLElement {
2102
2031
 
2103
2032
  interface HTMLPictureElement : HTMLElement {};
2104
2033
 
2105
- partial interface HTMLSourceElement {
2034
+ interface HTMLSourceElement : HTMLElement {
2035
+ attribute DOMString src;
2036
+ attribute DOMString type;
2106
2037
  attribute DOMString srcset;
2107
2038
  attribute DOMString sizes;
2108
2039
  attribute DOMString media;
@@ -2116,6 +2047,7 @@ interface HTMLImageElement : HTMLElement {
2116
2047
  attribute DOMString sizes;
2117
2048
  attribute DOMString? crossOrigin;
2118
2049
  attribute DOMString useMap;
2050
+ attribute DOMString longDesc;
2119
2051
  attribute boolean isMap;
2120
2052
  attribute unsigned long width;
2121
2053
  attribute unsigned long height;
@@ -2123,16 +2055,19 @@ interface HTMLImageElement : HTMLElement {
2123
2055
  readonly attribute unsigned long naturalHeight;
2124
2056
  readonly attribute boolean complete;
2125
2057
  readonly attribute DOMString currentSrc;
2058
+ attribute DOMString referrerPolicy;
2126
2059
  };
2127
2060
 
2128
2061
  interface HTMLIFrameElement : HTMLElement {
2129
2062
  attribute DOMString src;
2130
2063
  attribute DOMString srcdoc;
2131
2064
  attribute DOMString name;
2132
- [PutForwards=value] readonly attribute DOMTokenList sandbox;
2065
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
2133
2066
  attribute boolean allowFullscreen;
2067
+ attribute boolean allowPaymentRequest;
2134
2068
  attribute DOMString width;
2135
2069
  attribute DOMString height;
2070
+ attribute DOMString referrerPolicy;
2136
2071
  readonly attribute Document? contentDocument;
2137
2072
  readonly attribute WindowProxy? contentWindow;
2138
2073
  };
@@ -2182,11 +2117,6 @@ interface HTMLVideoElement : HTMLMediaElement {
2182
2117
  [NamedConstructor=Audio(optional DOMString src)]
2183
2118
  interface HTMLAudioElement : HTMLMediaElement {};
2184
2119
 
2185
- interface HTMLSourceElement : HTMLElement {
2186
- attribute DOMString src;
2187
- attribute DOMString type;
2188
- };
2189
-
2190
2120
  interface HTMLTrackElement : HTMLElement {
2191
2121
  attribute DOMString kind;
2192
2122
  attribute DOMString src;
@@ -2378,7 +2308,7 @@ interface TrackEvent : Event {
2378
2308
  };
2379
2309
 
2380
2310
  dictionary TrackEventInit : EventInit {
2381
- (VideoTrack or AudioTrack or TextTrack)? track;
2311
+ (VideoTrack or AudioTrack or TextTrack)? track = null;
2382
2312
  };
2383
2313
 
2384
2314
  interface HTMLMapElement : HTMLElement {
@@ -2394,9 +2324,10 @@ interface HTMLAreaElement : HTMLElement {
2394
2324
  attribute DOMString target;
2395
2325
  attribute DOMString download;
2396
2326
  attribute DOMString rel;
2397
- readonly attribute DOMTokenList relList;
2327
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
2398
2328
  attribute DOMString hreflang;
2399
2329
  attribute DOMString type;
2330
+ attribute DOMString referrerPolicy;
2400
2331
  };
2401
2332
  HTMLAreaElement implements HTMLHyperlinkElementUtils;
2402
2333
 
@@ -2462,7 +2393,7 @@ interface HTMLTableHeaderCellElement : HTMLTableCellElement {
2462
2393
  interface HTMLTableCellElement : HTMLElement {
2463
2394
  attribute unsigned long colSpan;
2464
2395
  attribute unsigned long rowSpan;
2465
- [PutForwards=value] readonly attribute DOMTokenList headers;
2396
+ [SameObject, PutForwards=value] readonly attribute DOMTokenList headers;
2466
2397
  readonly attribute long cellIndex;
2467
2398
  };
2468
2399
 
@@ -2513,7 +2444,6 @@ interface HTMLInputElement : HTMLElement {
2513
2444
  attribute DOMString formTarget;
2514
2445
  attribute unsigned long height;
2515
2446
  attribute boolean indeterminate;
2516
- attribute DOMString inputMode;
2517
2447
  readonly attribute HTMLElement? list;
2518
2448
  attribute DOMString max;
2519
2449
  attribute long maxLength;
@@ -2524,7 +2454,7 @@ interface HTMLInputElement : HTMLElement {
2524
2454
  attribute DOMString pattern;
2525
2455
  attribute DOMString placeholder;
2526
2456
  attribute boolean readOnly;
2527
- attribute boolean required;
2457
+ attribute boolean _required;
2528
2458
  attribute unsigned long size;
2529
2459
  attribute DOMString src;
2530
2460
  attribute DOMString step;
@@ -2548,9 +2478,9 @@ interface HTMLInputElement : HTMLElement {
2548
2478
  [SameObject] readonly attribute NodeList labels;
2549
2479
 
2550
2480
  void select();
2551
- attribute unsigned long selectionStart;
2552
- attribute unsigned long selectionEnd;
2553
- attribute DOMString selectionDirection;
2481
+ attribute unsigned long? selectionStart;
2482
+ attribute unsigned long? selectionEnd;
2483
+ attribute DOMString? selectionDirection;
2554
2484
  void setRangeText(DOMString replacement);
2555
2485
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
2556
2486
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
@@ -2568,7 +2498,6 @@ interface HTMLButtonElement : HTMLElement {
2568
2498
  attribute DOMString name;
2569
2499
  attribute DOMString type;
2570
2500
  attribute DOMString value;
2571
- attribute HTMLMenuElement? menu;
2572
2501
 
2573
2502
  readonly attribute boolean willValidate;
2574
2503
  readonly attribute ValidityState validity;
@@ -2587,7 +2516,7 @@ interface HTMLSelectElement : HTMLElement {
2587
2516
  readonly attribute HTMLFormElement? form;
2588
2517
  attribute boolean multiple;
2589
2518
  attribute DOMString name;
2590
- attribute boolean required;
2519
+ attribute boolean _required;
2591
2520
  attribute unsigned long size;
2592
2521
 
2593
2522
  readonly attribute DOMString type;
@@ -2644,13 +2573,12 @@ interface HTMLTextAreaElement : HTMLElement {
2644
2573
  attribute DOMString dirName;
2645
2574
  attribute boolean disabled;
2646
2575
  readonly attribute HTMLFormElement? form;
2647
- attribute DOMString inputMode;
2648
2576
  attribute long maxLength;
2649
2577
  attribute long minLength;
2650
2578
  attribute DOMString name;
2651
2579
  attribute DOMString placeholder;
2652
2580
  attribute boolean readOnly;
2653
- attribute boolean required;
2581
+ attribute boolean _required;
2654
2582
  attribute unsigned long rows;
2655
2583
  attribute DOMString wrap;
2656
2584
 
@@ -2669,34 +2597,14 @@ interface HTMLTextAreaElement : HTMLElement {
2669
2597
  [SameObject] readonly attribute NodeList labels;
2670
2598
 
2671
2599
  void select();
2672
- attribute unsigned long selectionStart;
2673
- attribute unsigned long selectionEnd;
2674
- attribute DOMString selectionDirection;
2600
+ attribute unsigned long? selectionStart;
2601
+ attribute unsigned long? selectionEnd;
2602
+ attribute DOMString? selectionDirection;
2675
2603
  void setRangeText(DOMString replacement);
2676
2604
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
2677
2605
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
2678
2606
  };
2679
2607
 
2680
- interface HTMLKeygenElement : HTMLElement {
2681
- attribute boolean autofocus;
2682
- attribute DOMString challenge;
2683
- attribute boolean disabled;
2684
- readonly attribute HTMLFormElement? form;
2685
- attribute DOMString keytype;
2686
- attribute DOMString name;
2687
-
2688
- readonly attribute DOMString type;
2689
-
2690
- readonly attribute boolean willValidate;
2691
- readonly attribute ValidityState validity;
2692
- readonly attribute DOMString validationMessage;
2693
- boolean checkValidity();
2694
- boolean reportValidity();
2695
- void setCustomValidity(DOMString error);
2696
-
2697
- [SameObject] readonly attribute NodeList labels;
2698
- };
2699
-
2700
2608
  interface HTMLOutputElement : HTMLElement {
2701
2609
  [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
2702
2610
  readonly attribute HTMLFormElement? form;
@@ -2779,28 +2687,12 @@ interface HTMLDetailsElement : HTMLElement {
2779
2687
  attribute boolean open;
2780
2688
  };
2781
2689
 
2782
- interface HTMLMenuElement : HTMLElement {
2783
- attribute DOMString type;
2784
- attribute DOMString label;
2785
- };
2786
-
2787
- interface HTMLMenuItemElement : HTMLElement {
2788
- attribute DOMString type;
2789
- attribute DOMString label;
2790
- attribute DOMString icon;
2791
- attribute boolean disabled;
2792
- attribute boolean checked;
2793
- attribute DOMString radiogroup;
2794
- attribute boolean default;
2795
- };
2796
-
2797
- [Constructor(DOMString type, optional RelatedEventInit eventInitDict)]
2798
- interface RelatedEvent : Event {
2799
- readonly attribute EventTarget? relatedTarget;
2800
- };
2801
-
2802
- dictionary RelatedEventInit : EventInit {
2803
- EventTarget? relatedTarget;
2690
+ interface HTMLDialogElement : HTMLElement {
2691
+ attribute boolean open;
2692
+ attribute DOMString returnValue;
2693
+ void show(optional (MouseEvent or Element) anchor);
2694
+ void showModal(optional (MouseEvent or Element) anchor);
2695
+ void close(optional DOMString returnValue);
2804
2696
  };
2805
2697
 
2806
2698
  interface HTMLScriptElement : HTMLElement {
@@ -2814,6 +2706,8 @@ interface HTMLScriptElement : HTMLElement {
2814
2706
  attribute DOMString nonce;
2815
2707
  };
2816
2708
 
2709
+ [Exposed=Window,
2710
+ HTMLConstructor]
2817
2711
  interface HTMLTemplateElement : HTMLElement {
2818
2712
  readonly attribute DocumentFragment content;
2819
2713
  };
@@ -2914,6 +2808,9 @@ readonly attribute Element? frameElement;
2914
2808
  WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
2915
2809
  getter WindowProxy (unsigned long index);
2916
2810
  getter object (DOMString name);
2811
+ // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic
2812
+ // object on the prototype chain. Indeed, this does not make the global object an exotic object.
2813
+ // Indexed access is taken care of by the WindowProxy exotic object.
2917
2814
 
2918
2815
  // the user agent
2919
2816
  readonly attribute Navigator navigator;
@@ -2924,7 +2821,6 @@ void alert(DOMString message);
2924
2821
  boolean confirm(optional DOMString message = "");
2925
2822
  DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
2926
2823
  void print();
2927
- any showModalDialog(DOMString url, optional any argument); // deprecated
2928
2824
 
2929
2825
  unsigned long requestAnimationFrame(FrameRequestCallback callback);
2930
2826
  void cancelAnimationFrame(unsigned long handle);
@@ -2951,23 +2847,22 @@ interface History {
2951
2847
  void replaceState(any data, DOMString title, optional DOMString? url = null);
2952
2848
  };
2953
2849
 
2954
- [Unforgeable]
2955
2850
  interface Location {
2956
- stringifier attribute USVString href;
2957
- readonly attribute USVString origin;
2958
- attribute USVString protocol;
2959
- attribute USVString host;
2960
- attribute USVString hostname;
2961
- attribute USVString port;
2962
- attribute USVString pathname;
2963
- attribute USVString search;
2964
- attribute USVString hash;
2851
+ [Unforgeable] stringifier attribute USVString href;
2852
+ [Unforgeable] readonly attribute USVString origin;
2853
+ [Unforgeable] attribute USVString protocol;
2854
+ [Unforgeable] attribute USVString host;
2855
+ [Unforgeable] attribute USVString hostname;
2856
+ [Unforgeable] attribute USVString port;
2857
+ [Unforgeable] attribute USVString pathname;
2858
+ [Unforgeable] attribute USVString search;
2859
+ [Unforgeable] attribute USVString hash;
2965
2860
 
2966
- void assign(USVString url);
2967
- void replace(USVString url);
2968
- void reload();
2861
+ [Unforgeable] void assign(USVString url);
2862
+ [Unforgeable] void replace(USVString url);
2863
+ [Unforgeable] void reload();
2969
2864
 
2970
- [SameObject] readonly attribute USVString[] ancestorOrigins;
2865
+ [Unforgeable, SameObject] readonly attribute USVString[] ancestorOrigins;
2971
2866
  };
2972
2867
 
2973
2868
  [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
@@ -2976,18 +2871,18 @@ interface PopStateEvent : Event {
2976
2871
  };
2977
2872
 
2978
2873
  dictionary PopStateEventInit : EventInit {
2979
- any state;
2874
+ any state = null;
2980
2875
  };
2981
2876
 
2982
2877
  [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
2983
2878
  interface HashChangeEvent : Event {
2984
- readonly attribute DOMString oldURL;
2985
- readonly attribute DOMString newURL;
2879
+ readonly attribute USVString oldURL;
2880
+ readonly attribute USVString newURL;
2986
2881
  };
2987
2882
 
2988
2883
  dictionary HashChangeEventInit : EventInit {
2989
- DOMString oldURL;
2990
- DOMString newURL;
2884
+ USVString oldURL = "";
2885
+ USVString newURL = "";
2991
2886
  };
2992
2887
 
2993
2888
  [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
@@ -2996,7 +2891,7 @@ interface PageTransitionEvent : Event {
2996
2891
  };
2997
2892
 
2998
2893
  dictionary PageTransitionEventInit : EventInit {
2999
- boolean persisted;
2894
+ boolean persisted = false;
3000
2895
  };
3001
2896
 
3002
2897
  interface BeforeUnloadEvent : Event {
@@ -3058,7 +2953,6 @@ interface GlobalEventHandlers {
3058
2953
  attribute EventHandler onchange;
3059
2954
  attribute EventHandler onclick;
3060
2955
  attribute EventHandler onclose;
3061
- attribute EventHandler oncontextmenu;
3062
2956
  attribute EventHandler oncuechange;
3063
2957
  attribute EventHandler ondblclick;
3064
2958
  attribute EventHandler ondrag;
@@ -3138,29 +3032,28 @@ interface DocumentAndElementEventHandlers {
3138
3032
  attribute EventHandler onpaste;
3139
3033
  };
3140
3034
 
3035
+ typedef (DOMString or Function) TimerHandler;
3036
+
3141
3037
  [NoInterfaceObject, Exposed=(Window, Worker)]
3142
- interface WindowBase64 {
3038
+ interface WindowOrWorkerGlobalScope {
3039
+ [Replaceable] readonly attribute USVString origin;
3040
+
3041
+ // Base64 utility methods (WindowBase64)
3143
3042
  DOMString btoa(DOMString btoa);
3144
3043
  DOMString atob(DOMString atob);
3145
- };
3146
- Window implements WindowBase64;
3147
- WorkerGlobalScope implements WindowBase64;
3148
3044
 
3149
- [NoInterfaceObject, Exposed=(Window,Worker)]
3150
- interface WindowTimers {
3045
+ // Timers (WindowTimers)
3151
3046
  long setTimeout((Function or DOMString) handler, optional long timeout = 0, any... arguments);
3152
3047
  void clearTimeout(optional long handle = 0);
3153
3048
  long setInterval((Function or DOMString) handler, optional long timeout = 0, any... arguments);
3154
3049
  void clearInterval(optional long handle = 0);
3155
- };
3156
- Window implements WindowTimers;
3157
- WorkerGlobalScope implements WindowTimers;
3158
3050
 
3159
- [NoInterfaceObject]
3160
- interface WindowModal {
3161
- readonly attribute any dialogArguments;
3162
- attribute any returnValue;
3051
+ // ImageBitmap, Images (ImageBitmapFactories)
3052
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
3053
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
3163
3054
  };
3055
+ Window implements WindowOrWorkerGlobalScope;
3056
+ WorkerGlobalScope implements WindowOrWorkerGlobalScope;
3164
3057
 
3165
3058
  interface Navigator {
3166
3059
  // objects implementing this interface also implement the interfaces given below
@@ -3170,7 +3063,6 @@ Navigator implements NavigatorLanguage;
3170
3063
  Navigator implements NavigatorOnLine;
3171
3064
  Navigator implements NavigatorContentUtils;
3172
3065
  Navigator implements NavigatorCookies;
3173
- Navigator implements NavigatorPlugins;
3174
3066
 
3175
3067
  [NoInterfaceObject, Exposed=(Window, Worker)]
3176
3068
  interface NavigatorID {
@@ -3192,7 +3084,11 @@ interface NavigatorLanguage {
3192
3084
  interface NavigatorContentUtils {
3193
3085
  // content handler registration
3194
3086
  void registerProtocolHandler(DOMString scheme, DOMString url, DOMString title);
3087
+ void registerContentHandler(DOMString mimeType, DOMString url, DOMString title);
3088
+ DOMString isProtocolHandlerRegistered(DOMString scheme, DOMString url);
3089
+ DOMString isContentHandlerRegistered(DOMString mimeType, DOMString url);
3195
3090
  void unregisterProtocolHandler(DOMString scheme, DOMString url);
3091
+ void unregisterContentHandler(DOMString mimeType, DOMString url);
3196
3092
  };
3197
3093
 
3198
3094
  [NoInterfaceObject]
@@ -3200,43 +3096,7 @@ interface NavigatorCookies {
3200
3096
  readonly attribute boolean cookieEnabled;
3201
3097
  };
3202
3098
 
3203
- [NoInterfaceObject]
3204
- interface NavigatorPlugins {
3205
- [SameObject] readonly attribute PluginArray plugins;
3206
- [SameObject] readonly attribute MimeTypeArray mimeTypes;
3207
- boolean javaEnabled();
3208
- };
3209
-
3210
- interface PluginArray {
3211
- void refresh(optional boolean reload = false);
3212
- readonly attribute unsigned long length;
3213
- getter Plugin? item(unsigned long index);
3214
- getter Plugin? namedItem(DOMString name);
3215
- };
3216
-
3217
- interface MimeTypeArray {
3218
- readonly attribute unsigned long length;
3219
- getter MimeType? item(unsigned long index);
3220
- getter MimeType? namedItem(DOMString name);
3221
- };
3222
-
3223
- interface Plugin {
3224
- readonly attribute DOMString name;
3225
- readonly attribute DOMString description;
3226
- readonly attribute DOMString filename;
3227
- readonly attribute unsigned long length;
3228
- getter MimeType? item(unsigned long index);
3229
- getter MimeType? namedItem(DOMString name);
3230
- };
3231
-
3232
- interface MimeType {
3233
- readonly attribute DOMString type;
3234
- readonly attribute DOMString description;
3235
- readonly attribute DOMString suffixes; // comma-separated
3236
- readonly attribute Plugin enabledPlugin;
3237
- };
3238
-
3239
- [Exposed=(Window, Worker)]
3099
+ [Exposed=(Window, Worker), Serializable, Transferable]
3240
3100
  interface ImageBitmap {
3241
3101
  readonly attribute unsigned long width;
3242
3102
  readonly attribute unsigned long height;
@@ -3250,40 +3110,34 @@ typedef (HTMLImageElement or
3250
3110
  CanvasRenderingContext2D or
3251
3111
  ImageBitmap) ImageBitmapSource;
3252
3112
 
3253
- [NoInterfaceObject, Exposed=(Window, Worker)]
3254
- interface ImageBitmapFactories {
3255
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
3256
- Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
3257
- };
3258
- Window implements ImageBitmapFactories;
3259
- WorkerGlobalScope implements ImageBitmapFactories;
3260
-
3113
+ // Note: intentionally not [HTMLConstructor]
3261
3114
  interface HTMLAppletElement : HTMLElement {
3262
3115
  attribute DOMString align;
3263
3116
  attribute DOMString alt;
3264
3117
  attribute DOMString archive;
3265
3118
  attribute DOMString code;
3266
- attribute DOMString codeBase;
3119
+ attribute USVString codeBase;
3267
3120
  attribute DOMString height;
3268
3121
  attribute unsigned long hspace;
3269
3122
  attribute DOMString name;
3270
- attribute DOMString _object; // the underscore is not part of the identifier
3123
+ attribute USVString _object; // the underscore is not part of the identifier
3271
3124
  attribute unsigned long vspace;
3272
3125
  attribute DOMString width;
3273
3126
  };
3274
3127
 
3128
+ [HTMLConstructor]
3275
3129
  interface HTMLMarqueeElement : HTMLElement {
3276
- attribute DOMString behavior;
3277
- attribute DOMString bgColor;
3278
- attribute DOMString direction;
3279
- attribute DOMString height;
3280
- attribute unsigned long hspace;
3281
- attribute long loop;
3282
- attribute unsigned long scrollAmount;
3283
- attribute unsigned long scrollDelay;
3284
- attribute boolean trueSpeed;
3285
- attribute unsigned long vspace;
3286
- attribute DOMString width;
3130
+ [CEReactions] attribute DOMString behavior;
3131
+ [CEReactions] attribute DOMString bgColor;
3132
+ [CEReactions] attribute DOMString direction;
3133
+ [CEReactions] attribute DOMString height;
3134
+ [CEReactions] attribute unsigned long hspace;
3135
+ [CEReactions] attribute long loop;
3136
+ [CEReactions] attribute unsigned long scrollAmount;
3137
+ [CEReactions] attribute unsigned long scrollDelay;
3138
+ [CEReactions] attribute boolean trueSpeed;
3139
+ [CEReactions] attribute unsigned long vspace;
3140
+ [CEReactions] attribute DOMString width;
3287
3141
 
3288
3142
  attribute EventHandler onbounce;
3289
3143
  attribute EventHandler onfinish;
@@ -3293,267 +3147,240 @@ interface HTMLMarqueeElement : HTMLElement {
3293
3147
  void stop();
3294
3148
  };
3295
3149
 
3150
+ [HTMLConstructor]
3296
3151
  interface HTMLFrameSetElement : HTMLElement {
3297
- attribute DOMString cols;
3298
- attribute DOMString rows;
3152
+ [CEReactions] attribute DOMString cols;
3153
+ [CEReactions] attribute DOMString rows;
3299
3154
  };
3300
3155
  HTMLFrameSetElement implements WindowEventHandlers;
3301
3156
 
3157
+ [HTMLConstructor]
3302
3158
  interface HTMLFrameElement : HTMLElement {
3303
- attribute DOMString name;
3304
- attribute DOMString scrolling;
3305
- attribute DOMString src;
3306
- attribute DOMString frameBorder;
3307
- attribute boolean noResize;
3159
+ [CEReactions] attribute DOMString name;
3160
+ [CEReactions] attribute DOMString scrolling;
3161
+ [CEReactions] attribute USVString src;
3162
+ [CEReactions] attribute DOMString frameBorder;
3163
+ [CEReactions] attribute USVString longDesc;
3164
+ [CEReactions] attribute boolean noResize;
3308
3165
  readonly attribute Document? contentDocument;
3309
3166
  readonly attribute WindowProxy? contentWindow;
3310
3167
 
3311
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
3312
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
3313
- };
3314
-
3315
- [Exposed=(Window, SharedWorker)]
3316
- interface ApplicationCache : EventTarget {
3317
- // update status
3318
- const unsigned short UNCACHED = 0;
3319
- const unsigned short IDLE = 1;
3320
- const unsigned short CHECKING = 2;
3321
- const unsigned short DOWNLOADING = 3;
3322
- const unsigned short UPDATEREADY = 4;
3323
- const unsigned short OBSOLETE = 5;
3324
- readonly attribute unsigned short status;
3325
-
3326
- // updates
3327
- void update();
3328
- void abort();
3329
- void swapCache();
3330
-
3331
- // events
3332
- attribute EventHandler onchecking;
3333
- attribute EventHandler onerror;
3334
- attribute EventHandler onnoupdate;
3335
- attribute EventHandler ondownloading;
3336
- attribute EventHandler onprogress;
3337
- attribute EventHandler onupdateready;
3338
- attribute EventHandler oncached;
3339
- attribute EventHandler onobsolete;
3168
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
3169
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
3340
3170
  };
3341
3171
 
3342
3172
  partial interface HTMLAnchorElement {
3343
- attribute DOMString coords;
3344
- attribute DOMString charset;
3345
- attribute DOMString name;
3346
- attribute DOMString shape;
3173
+ [CEReactions] attribute DOMString coords;
3174
+ [CEReactions] attribute DOMString charset;
3175
+ [CEReactions] attribute DOMString name;
3176
+ [CEReactions] attribute DOMString shape;
3347
3177
  };
3348
3178
 
3349
3179
  partial interface HTMLAreaElement {
3350
- attribute boolean noHref;
3180
+ [CEReactions] attribute boolean noHref;
3351
3181
  };
3352
3182
 
3353
3183
  partial interface HTMLBodyElement {
3354
- [TreatNullAs=EmptyString] attribute DOMString text;
3355
- [TreatNullAs=EmptyString] attribute DOMString link;
3356
- [TreatNullAs=EmptyString] attribute DOMString vLink;
3357
- [TreatNullAs=EmptyString] attribute DOMString aLink;
3358
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3184
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString text;
3185
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString link;
3186
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vLink;
3187
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString aLink;
3188
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3359
3189
  attribute DOMString background;
3360
3190
  };
3361
3191
 
3362
3192
  partial interface HTMLBRElement {
3363
- attribute DOMString clear;
3193
+ [CEReactions] attribute DOMString clear;
3364
3194
  };
3365
3195
 
3366
3196
  partial interface HTMLTableCaptionElement {
3367
- attribute DOMString align;
3197
+ [CEReactions] attribute DOMString align;
3368
3198
  };
3369
3199
 
3370
3200
  partial interface HTMLTableColElement {
3371
- attribute DOMString align;
3372
- attribute DOMString ch;
3373
- attribute DOMString chOff;
3374
- attribute DOMString vAlign;
3375
- attribute DOMString width;
3201
+ [CEReactions] attribute DOMString align;
3202
+ [CEReactions] attribute DOMString ch;
3203
+ [CEReactions] attribute DOMString chOff;
3204
+ [CEReactions] attribute DOMString vAlign;
3205
+ [CEReactions] attribute DOMString width;
3376
3206
  };
3377
3207
 
3208
+ [HTMLConstructor]
3378
3209
  interface HTMLDirectoryElement : HTMLElement {
3379
- attribute boolean compact;
3210
+ [CEReactions] attribute boolean compact;
3380
3211
  };
3381
3212
 
3382
3213
  partial interface HTMLDivElement {
3383
- attribute DOMString align;
3214
+ [CEReactions] attribute DOMString align;
3384
3215
  };
3385
3216
 
3386
3217
  partial interface HTMLDListElement {
3387
- attribute boolean compact;
3218
+ [CEReactions] attribute boolean compact;
3388
3219
  };
3389
3220
 
3390
3221
  partial interface HTMLEmbedElement {
3391
- attribute DOMString align;
3392
- attribute DOMString name;
3222
+ [CEReactions] attribute DOMString align;
3223
+ [CEReactions] attribute DOMString name;
3393
3224
  };
3394
3225
 
3226
+ [HTMLConstructor]
3395
3227
  interface HTMLFontElement : HTMLElement {
3396
- [TreatNullAs=EmptyString] attribute DOMString color;
3397
- attribute DOMString face;
3398
- attribute DOMString size;
3228
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString color;
3229
+ [CEReactions] attribute DOMString face;
3230
+ [CEReactions] attribute DOMString size;
3399
3231
  };
3400
3232
 
3401
3233
  partial interface HTMLHeadingElement {
3402
- attribute DOMString align;
3234
+ [CEReactions] attribute DOMString align;
3403
3235
  };
3404
3236
 
3405
3237
  partial interface HTMLHRElement {
3406
- attribute DOMString align;
3407
- attribute DOMString color;
3408
- attribute boolean noShade;
3409
- attribute DOMString size;
3410
- attribute DOMString width;
3238
+ [CEReactions] attribute DOMString align;
3239
+ [CEReactions] attribute DOMString color;
3240
+ [CEReactions] attribute boolean noShade;
3241
+ [CEReactions] attribute DOMString size;
3242
+ [CEReactions] attribute DOMString width;
3411
3243
  };
3412
3244
 
3413
3245
  partial interface HTMLHtmlElement {
3414
- attribute DOMString version;
3246
+ [CEReactions] attribute DOMString version;
3415
3247
  };
3416
3248
 
3417
3249
  partial interface HTMLIFrameElement {
3418
- attribute DOMString align;
3419
- attribute DOMString scrolling;
3420
- attribute DOMString frameBorder;
3421
-
3422
- [TreatNullAs=EmptyString] attribute DOMString marginHeight;
3423
- [TreatNullAs=EmptyString] attribute DOMString marginWidth;
3250
+ [CEReactions] attribute DOMString align;
3251
+ [CEReactions] attribute DOMString scrolling;
3252
+ [CEReactions] attribute DOMString frameBorder;
3253
+ [CEReactions] attribute USVString longDesc;
3254
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginHeight;
3255
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString marginWidth;
3424
3256
  };
3425
3257
 
3426
3258
  partial interface HTMLImageElement {
3427
- attribute DOMString name;
3428
- attribute DOMString lowsrc;
3429
- attribute DOMString align;
3430
- attribute unsigned long hspace;
3431
- attribute unsigned long vspace;
3259
+ [CEReactions] attribute DOMString name;
3260
+ [CEReactions] attribute USVString lowsrc;
3261
+ [CEReactions] attribute DOMString align;
3262
+ [CEReactions] attribute unsigned long hspace;
3263
+ [CEReactions] attribute unsigned long vspace;
3432
3264
 
3433
- [TreatNullAs=EmptyString] attribute DOMString border;
3265
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
3434
3266
  };
3435
3267
 
3436
3268
  partial interface HTMLInputElement {
3437
- attribute DOMString align;
3438
- attribute DOMString useMap;
3269
+ [CEReactions] attribute DOMString align;
3270
+ [CEReactions] attribute DOMString useMap;
3439
3271
  };
3440
3272
 
3441
3273
  partial interface HTMLLegendElement {
3442
- attribute DOMString align;
3274
+ [CEReactions] attribute DOMString align;
3443
3275
  };
3444
3276
 
3445
3277
  partial interface HTMLLIElement {
3446
- attribute DOMString type;
3278
+ [CEReactions] attribute DOMString type;
3447
3279
  };
3448
3280
 
3449
3281
  partial interface HTMLLinkElement {
3450
- attribute DOMString charset;
3451
- attribute DOMString target;
3282
+ [CEReactions] attribute DOMString charset;
3283
+ [CEReactions] attribute DOMString target;
3452
3284
  };
3453
3285
 
3454
3286
  partial interface HTMLMenuElement {
3455
- attribute boolean compact;
3287
+ [CEReactions] attribute boolean compact;
3456
3288
  };
3457
3289
 
3458
3290
  partial interface HTMLMetaElement {
3459
- attribute DOMString scheme;
3291
+ [CEReactions] attribute DOMString scheme;
3460
3292
  };
3461
3293
 
3462
3294
  partial interface HTMLObjectElement {
3463
- attribute DOMString align;
3464
- attribute DOMString archive;
3465
- attribute DOMString code;
3466
- attribute boolean declare;
3467
- attribute unsigned long hspace;
3468
- attribute DOMString standby;
3469
- attribute unsigned long vspace;
3470
- attribute DOMString codeBase;
3471
- attribute DOMString codeType;
3472
- attribute DOMString useMap;
3295
+ [CEReactions] attribute DOMString align;
3296
+ [CEReactions] attribute DOMString archive;
3297
+ [CEReactions] attribute DOMString code;
3298
+ [CEReactions] attribute boolean declare;
3299
+ [CEReactions] attribute unsigned long hspace;
3300
+ [CEReactions] attribute DOMString standby;
3301
+ [CEReactions] attribute unsigned long vspace;
3302
+ [CEReactions] attribute DOMString codeBase;
3303
+ [CEReactions] attribute DOMString codeType;
3473
3304
 
3474
- [TreatNullAs=EmptyString] attribute DOMString border;
3305
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString border;
3475
3306
  };
3476
3307
 
3477
3308
  partial interface HTMLOListElement {
3478
- attribute boolean compact;
3309
+ [CEReactions] attribute boolean compact;
3479
3310
  };
3480
3311
 
3481
3312
  partial interface HTMLParagraphElement {
3482
- attribute DOMString align;
3313
+ [CEReactions] attribute DOMString align;
3483
3314
  };
3484
3315
 
3485
3316
  partial interface HTMLParamElement {
3486
- attribute DOMString type;
3487
- attribute DOMString valueType;
3317
+ [CEReactions] attribute DOMString type;
3318
+ [CEReactions] attribute DOMString valueType;
3488
3319
  };
3489
3320
 
3490
3321
  partial interface HTMLPreElement {
3491
- attribute long width;
3322
+ [CEReactions] attribute long width;
3492
3323
  };
3493
3324
 
3494
3325
  partial interface HTMLScriptElement {
3495
- attribute DOMString event;
3496
- attribute DOMString htmlFor;
3326
+ [CEReactions] attribute DOMString event;
3327
+ [CEReactions] attribute DOMString htmlFor;
3497
3328
  };
3498
3329
 
3499
3330
  partial interface HTMLTableElement {
3500
- attribute DOMString align;
3501
- attribute DOMString border;
3502
- attribute DOMString frame;
3503
- attribute DOMString rules;
3504
- attribute DOMString summary;
3505
- attribute DOMString width;
3331
+ [CEReactions] attribute DOMString align;
3332
+ [CEReactions] attribute DOMString border;
3333
+ [CEReactions] attribute DOMString frame;
3334
+ [CEReactions] attribute DOMString rules;
3335
+ [CEReactions] attribute DOMString summary;
3336
+ [CEReactions] attribute DOMString width;
3506
3337
 
3507
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3508
- [TreatNullAs=EmptyString] attribute DOMString cellPadding;
3509
- [TreatNullAs=EmptyString] attribute DOMString cellSpacing;
3338
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3339
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellPadding;
3340
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString cellSpacing;
3510
3341
  };
3511
3342
 
3512
3343
  partial interface HTMLTableSectionElement {
3513
- attribute DOMString align;
3514
- attribute DOMString ch;
3515
- attribute DOMString chOff;
3516
- attribute DOMString vAlign;
3344
+ [CEReactions] attribute DOMString align;
3345
+ [CEReactions] attribute DOMString ch;
3346
+ [CEReactions] attribute DOMString chOff;
3347
+ [CEReactions] attribute DOMString vAlign;
3517
3348
  };
3518
3349
 
3519
3350
  partial interface HTMLTableCellElement {
3520
- attribute DOMString align;
3521
- attribute DOMString axis;
3522
- attribute DOMString height;
3523
- attribute DOMString width;
3524
-
3525
- attribute DOMString ch;
3526
- attribute DOMString chOff;
3527
- attribute boolean noWrap;
3528
- attribute DOMString vAlign;
3351
+ [CEReactions] attribute DOMString align;
3352
+ [CEReactions] attribute DOMString axis;
3353
+ [CEReactions] attribute DOMString height;
3354
+ [CEReactions] attribute DOMString width;
3529
3355
 
3530
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3531
- };
3356
+ [CEReactions] attribute DOMString ch;
3357
+ [CEReactions] attribute DOMString chOff;
3358
+ [CEReactions] attribute boolean noWrap;
3359
+ [CEReactions] attribute DOMString vAlign;
3532
3360
 
3533
- partial interface HTMLTableDataCellElement {
3534
- attribute DOMString abbr;
3361
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3535
3362
  };
3536
3363
 
3537
3364
  partial interface HTMLTableRowElement {
3538
- attribute DOMString align;
3539
- attribute DOMString ch;
3540
- attribute DOMString chOff;
3541
- attribute DOMString vAlign;
3365
+ [CEReactions] attribute DOMString align;
3366
+ [CEReactions] attribute DOMString ch;
3367
+ [CEReactions] attribute DOMString chOff;
3368
+ [CEReactions] attribute DOMString vAlign;
3542
3369
 
3543
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3370
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3544
3371
  };
3545
3372
 
3546
3373
  partial interface HTMLUListElement {
3547
- attribute boolean compact;
3548
- attribute DOMString type;
3374
+ [CEReactions] attribute boolean compact;
3375
+ [CEReactions] attribute DOMString type;
3549
3376
  };
3550
3377
 
3551
3378
  partial interface Document {
3552
- [TreatNullAs=EmptyString] attribute DOMString fgColor;
3553
- [TreatNullAs=EmptyString] attribute DOMString linkColor;
3554
- [TreatNullAs=EmptyString] attribute DOMString vlinkColor;
3555
- [TreatNullAs=EmptyString] attribute DOMString alinkColor;
3556
- [TreatNullAs=EmptyString] attribute DOMString bgColor;
3379
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString fgColor;
3380
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString linkColor;
3381
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString vlinkColor;
3382
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString alinkColor;
3383
+ [CEReactions, TreatNullAs=EmptyString] attribute DOMString bgColor;
3557
3384
 
3558
3385
  [SameObject] readonly attribute HTMLCollection anchors;
3559
3386
  [SameObject] readonly attribute HTMLCollection applets;
@@ -3578,3 +3405,41 @@ interface External {
3578
3405
  void IsSearchProviderInstalled();
3579
3406
  };
3580
3407
 
3408
+ Navigator implements NavigatorPlugins;
3409
+
3410
+ [NoInterfaceObject]
3411
+ interface NavigatorPlugins {
3412
+ [SameObject] readonly attribute PluginArray plugins;
3413
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
3414
+ boolean javaEnabled();
3415
+ };
3416
+
3417
+ interface PluginArray {
3418
+ void refresh(optional boolean reload = false);
3419
+ readonly attribute unsigned long length;
3420
+ getter Plugin? item(unsigned long index);
3421
+ getter Plugin? namedItem(DOMString name);
3422
+ };
3423
+
3424
+ interface MimeTypeArray {
3425
+ readonly attribute unsigned long length;
3426
+ getter MimeType? item(unsigned long index);
3427
+ getter MimeType? namedItem(DOMString name);
3428
+ };
3429
+
3430
+ interface Plugin {
3431
+ readonly attribute DOMString name;
3432
+ readonly attribute DOMString description;
3433
+ readonly attribute DOMString filename;
3434
+ readonly attribute unsigned long length;
3435
+ getter MimeType? item(unsigned long index);
3436
+ getter MimeType? namedItem(DOMString name);
3437
+ };
3438
+
3439
+ interface MimeType {
3440
+ readonly attribute DOMString type;
3441
+ readonly attribute DOMString description;
3442
+ readonly attribute DOMString suffixes; // comma-separated
3443
+ readonly attribute Plugin enabledPlugin;
3444
+ };
3445
+