webidl 0.1.10 → 0.2.0

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