webidl 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 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
+