watir-webdriver 0.0.1.dev5 → 0.0.1.dev6

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.
Files changed (92) hide show
  1. data/Rakefile +13 -19
  2. data/VERSION +1 -1
  3. data/lib/watir-webdriver.rb +3 -1
  4. data/lib/watir-webdriver/base_element.rb +33 -27
  5. data/lib/watir-webdriver/browser.rb +2 -6
  6. data/lib/watir-webdriver/elements/font.rb +12 -0
  7. data/lib/watir-webdriver/elements/generated.rb +1027 -622
  8. data/lib/watir-webdriver/elements/select_list.rb +3 -3
  9. data/lib/watir-webdriver/locators/element_locator.rb +2 -2
  10. data/lib/watir-webdriver/xpath_support.rb +2 -2
  11. data/support/html5/html5.idl +942 -483
  12. data/support/html5/old/html5.idl +962 -0
  13. data/support/html5/{html5_extras.idl → old/html5_extras.idl} +0 -2
  14. data/support/html5/watir_visitor.rb +23 -19
  15. metadata +74 -100
  16. data/spec/watirspec/area_spec.rb +0 -78
  17. data/spec/watirspec/areas_spec.rb +0 -31
  18. data/spec/watirspec/browser_spec.rb +0 -274
  19. data/spec/watirspec/button_spec.rb +0 -242
  20. data/spec/watirspec/buttons_spec.rb +0 -48
  21. data/spec/watirspec/checkbox_spec.rb +0 -272
  22. data/spec/watirspec/checkboxes_spec.rb +0 -32
  23. data/spec/watirspec/dd_spec.rb +0 -123
  24. data/spec/watirspec/dds_spec.rb +0 -31
  25. data/spec/watirspec/div_spec.rb +0 -211
  26. data/spec/watirspec/divs_spec.rb +0 -31
  27. data/spec/watirspec/dl_spec.rb +0 -123
  28. data/spec/watirspec/dls_spec.rb +0 -32
  29. data/spec/watirspec/dt_spec.rb +0 -123
  30. data/spec/watirspec/dts_spec.rb +0 -31
  31. data/spec/watirspec/element_spec.rb +0 -89
  32. data/spec/watirspec/em_spec.rb +0 -97
  33. data/spec/watirspec/ems_spec.rb +0 -32
  34. data/spec/watirspec/filefield_spec.rb +0 -119
  35. data/spec/watirspec/filefields_spec.rb +0 -32
  36. data/spec/watirspec/form_spec.rb +0 -63
  37. data/spec/watirspec/forms_spec.rb +0 -33
  38. data/spec/watirspec/frame_spec.rb +0 -129
  39. data/spec/watirspec/frames_spec.rb +0 -62
  40. data/spec/watirspec/hidden_spec.rb +0 -102
  41. data/spec/watirspec/hiddens_spec.rb +0 -32
  42. data/spec/watirspec/hn_spec.rb +0 -93
  43. data/spec/watirspec/hns_spec.rb +0 -38
  44. data/spec/watirspec/image_spec.rb +0 -207
  45. data/spec/watirspec/images_spec.rb +0 -31
  46. data/spec/watirspec/label_spec.rb +0 -75
  47. data/spec/watirspec/labels_spec.rb +0 -31
  48. data/spec/watirspec/li_spec.rb +0 -112
  49. data/spec/watirspec/lib/guards.rb +0 -59
  50. data/spec/watirspec/lib/server.rb +0 -127
  51. data/spec/watirspec/lib/spec_helper.rb +0 -79
  52. data/spec/watirspec/lib/watirspec.rb +0 -72
  53. data/spec/watirspec/link_spec.rb +0 -168
  54. data/spec/watirspec/links_spec.rb +0 -35
  55. data/spec/watirspec/lis_spec.rb +0 -31
  56. data/spec/watirspec/map_spec.rb +0 -76
  57. data/spec/watirspec/maps_spec.rb +0 -32
  58. data/spec/watirspec/meta_spec.rb +0 -22
  59. data/spec/watirspec/metas_spec.rb +0 -30
  60. data/spec/watirspec/ol_spec.rb +0 -78
  61. data/spec/watirspec/ols_spec.rb +0 -31
  62. data/spec/watirspec/option_spec.rb +0 -173
  63. data/spec/watirspec/p_spec.rb +0 -128
  64. data/spec/watirspec/pre_spec.rb +0 -112
  65. data/spec/watirspec/pres_spec.rb +0 -31
  66. data/spec/watirspec/ps_spec.rb +0 -31
  67. data/spec/watirspec/radio_spec.rb +0 -255
  68. data/spec/watirspec/radios_spec.rb +0 -32
  69. data/spec/watirspec/select_list_spec.rb +0 -318
  70. data/spec/watirspec/select_lists_spec.rb +0 -35
  71. data/spec/watirspec/span_spec.rb +0 -142
  72. data/spec/watirspec/spans_spec.rb +0 -31
  73. data/spec/watirspec/spec_helper.rb +0 -17
  74. data/spec/watirspec/strong_spec.rb +0 -89
  75. data/spec/watirspec/strongs_spec.rb +0 -32
  76. data/spec/watirspec/table_bodies_spec.rb +0 -45
  77. data/spec/watirspec/table_body_spec.rb +0 -98
  78. data/spec/watirspec/table_cell_spec.rb +0 -68
  79. data/spec/watirspec/table_cells_spec.rb +0 -47
  80. data/spec/watirspec/table_footer_spec.rb +0 -85
  81. data/spec/watirspec/table_footers_spec.rb +0 -47
  82. data/spec/watirspec/table_header_spec.rb +0 -85
  83. data/spec/watirspec/table_headers_spec.rb +0 -45
  84. data/spec/watirspec/table_row_spec.rb +0 -87
  85. data/spec/watirspec/table_rows_spec.rb +0 -50
  86. data/spec/watirspec/table_spec.rb +0 -160
  87. data/spec/watirspec/tables_spec.rb +0 -33
  88. data/spec/watirspec/text_field_spec.rb +0 -276
  89. data/spec/watirspec/text_fields_spec.rb +0 -35
  90. data/spec/watirspec/ul_spec.rb +0 -76
  91. data/spec/watirspec/uls_spec.rb +0 -33
  92. data/support/html5/idl_extractor.rb +0 -73
@@ -118,8 +118,8 @@ module Watir
118
118
 
119
119
  def select_by(how, str_or_rx, multiple)
120
120
  case str_or_rx
121
- when String
122
- select_by_string(how, str_or_rx, multiple)
121
+ when String, Numeric
122
+ select_by_string(how, str_or_rx.to_s, multiple)
123
123
  when Regexp
124
124
  select_by_regexp(how, str_or_rx, multiple)
125
125
  else
@@ -141,7 +141,7 @@ module Watir
141
141
  else
142
142
  begin
143
143
  e = @element.find_element(:xpath, xpath)
144
- rescue WebDriver::Error::WebDriverError # should be more specific
144
+ rescue WebDriver::Error::NoSuchElementError
145
145
  raise NoValueFoundException, "#{string.inspect} not found in select list"
146
146
  end
147
147
 
@@ -24,7 +24,7 @@ module Watir
24
24
  else
25
25
  find_first_by_multiple
26
26
  end
27
- rescue WebDriver::Error::WebDriverError => wde
27
+ rescue WebDriver::Error::NoSuchElementError => wde
28
28
  nil
29
29
  end
30
30
 
@@ -209,7 +209,7 @@ module Watir
209
209
  return if tag_name && !tag_name_matches?(element, tag_name)
210
210
 
211
211
  element
212
- rescue WebDriver::Error::WebDriverError => wde
212
+ rescue WebDriver::Error::NoSuchElementError => wde
213
213
  nil
214
214
  end
215
215
 
@@ -10,7 +10,7 @@ module Watir
10
10
  def element_by_xpath(xpath)
11
11
  e = wd.find_element(:xpath, xpath)
12
12
  Watir.element_class_for(e.tag_name).new(self, :element, e)
13
- rescue WebDriver::Error::WebDriverError
13
+ rescue WebDriver::Error::NoSuchElementError
14
14
  BaseElement.new(self, :xpath, xpath)
15
15
  end
16
16
 
@@ -23,7 +23,7 @@ module Watir
23
23
  wd.find_elements(:xpath, xpath).map do |e|
24
24
  Watir.element_class_for(e.tag_name).new(self, :element, e)
25
25
  end
26
- rescue WebDriver::Error::WebDriverError
26
+ rescue WebDriver::Error::NoSuchElementError
27
27
  []
28
28
  end
29
29
 
@@ -1,4 +1,3 @@
1
- // HTMLElement
2
1
  interface HTMLElement : Element {
3
2
  // DOM tree accessors
4
3
  NodeList getElementsByClassName(in DOMString classNames);
@@ -17,15 +16,6 @@ interface HTMLElement : Element {
17
16
  readonly attribute DOMTokenList classList;
18
17
  readonly attribute DOMStringMap dataset;
19
18
 
20
- // microdata
21
- attribute boolean itemScope;
22
- attribute DOMString itemType;
23
- attribute DOMString itemId;
24
- attribute DOMString itemRef;
25
- [PutForwards=value] readonly attribute DOMSettableTokenList itemProp;
26
- readonly attribute HTMLPropertiesCollection properties;
27
- attribute any itemValue;
28
-
29
19
  // user interaction
30
20
  attribute boolean hidden;
31
21
  void click();
@@ -109,19 +99,39 @@ interface HTMLElement : Element {
109
99
  attribute Function onwaiting;
110
100
  };
111
101
 
112
- interface HTMLTableCellElement : HTMLElement {
113
- attribute unsigned long colSpan;
114
- attribute unsigned long rowSpan;
115
- attribute DOMString headers;
116
- readonly attribute long cellIndex;
102
+
103
+ [TagName=html]
104
+ interface HTMLHtmlElement : HTMLElement {};
105
+
106
+ [TagName=head]
107
+ interface HTMLHeadElement : HTMLElement {};
108
+
109
+ [TagName=title]
110
+ interface HTMLTitleElement : HTMLElement {
111
+ attribute DOMString text;
117
112
  };
118
113
 
119
- interface HTMLModElement : HTMLElement {
120
- attribute DOMString cite;
121
- attribute DOMString dateTime;
114
+ [TagName=base]
115
+ interface HTMLBaseElement : HTMLElement {
116
+ attribute DOMString href;
117
+ attribute DOMString target;
118
+ };
119
+
120
+ [TagName=link]
121
+ interface HTMLLinkElement : HTMLElement {
122
+ attribute boolean disabled;
123
+ attribute DOMString href;
124
+ attribute DOMString rel;
125
+ readonly attribute DOMTokenList relList;
126
+ attribute DOMString media;
127
+ attribute DOMString hreflang;
128
+ attribute DOMString type;
129
+ [PutForwards=value] readonly attribute DOMSettableTokenList sizes;
122
130
  };
123
131
 
124
- // the-meta-element
132
+
133
+ HTMLLinkElement implements LinkStyle;
134
+
125
135
  [TagName=meta]
126
136
  interface HTMLMetaElement : HTMLElement {
127
137
  attribute DOMString name;
@@ -129,199 +139,98 @@ interface HTMLMetaElement : HTMLElement {
129
139
  attribute DOMString content;
130
140
  };
131
141
 
132
- // the-input-element
133
- [TagName=input]
134
- interface HTMLInputElement : HTMLElement {
135
- attribute DOMString accept;
136
- attribute DOMString alt;
137
- attribute boolean autocomplete;
138
- attribute boolean autofocus;
139
- attribute boolean defaultChecked;
140
- attribute boolean checked;
142
+ [TagName=style]
143
+ interface HTMLStyleElement : HTMLElement {
141
144
  attribute boolean disabled;
142
- readonly attribute HTMLFormElement form;
143
- readonly attribute FileList files;
144
- attribute DOMString formAction;
145
- attribute DOMString formEnctype;
146
- attribute DOMString formMethod;
147
- attribute boolean formNoValidate;
148
- attribute DOMString formTarget;
149
- attribute DOMString height;
150
- attribute boolean indeterminate;
151
- readonly attribute HTMLElement list;
152
- attribute DOMString max;
153
- attribute long maxLength;
154
- attribute DOMString min;
155
- attribute boolean multiple;
156
- attribute DOMString name;
157
- attribute DOMString pattern;
158
- attribute DOMString placeholder;
159
- attribute boolean readOnly;
160
- attribute boolean required;
161
- attribute unsigned long size;
162
- attribute DOMString src;
163
- attribute DOMString step;
145
+ attribute DOMString media;
164
146
  attribute DOMString type;
165
- attribute DOMString defaultValue;
166
- attribute DOMString value;
167
- attribute Date valueAsDate;
168
- attribute float valueAsNumber;
169
- readonly attribute HTMLOptionElement selectedOption;
170
- attribute DOMString width;
171
-
172
- void stepUp(in optional long n);
173
- void stepDown(in optional long n);
174
-
175
- readonly attribute boolean willValidate;
176
- readonly attribute ValidityState validity;
177
- readonly attribute DOMString validationMessage;
178
- boolean checkValidity();
179
- void setCustomValidity(in DOMString error);
180
-
181
- readonly attribute NodeList labels;
182
-
183
- void select();
184
- attribute unsigned long selectionStart;
185
- attribute unsigned long selectionEnd;
186
- void setSelectionRange(in unsigned long start, in unsigned long end);
187
- };
188
-
189
-
190
- // the-th-element
191
- [TagName=th]
192
- interface HTMLTableHeaderCellElement : HTMLTableCellElement {
193
- attribute DOMString scope;
194
- };
195
-
196
-
197
- // the-datalist-element
198
- [TagName=datalist]
199
- interface HTMLDataListElement : HTMLElement {
200
- readonly attribute HTMLCollection options;
147
+ attribute boolean scoped;
201
148
  };
149
+ HTMLStyleElement implements LinkStyle;
202
150
 
203
151
 
204
- // the-object-element
205
- [TagName=object]
206
- interface HTMLObjectElement : HTMLElement {
207
- attribute DOMString data;
152
+ [TagName=script]
153
+ interface HTMLScriptElement : HTMLElement {
154
+ attribute DOMString src;
155
+ attribute boolean async;
156
+ attribute boolean defer;
208
157
  attribute DOMString type;
209
- attribute DOMString name;
210
- attribute DOMString useMap;
211
- readonly attribute HTMLFormElement form;
212
- attribute DOMString width;
213
- attribute DOMString height;
214
- readonly attribute Document contentDocument;
215
- readonly attribute WindowProxy contentWindow;
216
-
217
- readonly attribute boolean willValidate;
218
- readonly attribute ValidityState validity;
219
- readonly attribute DOMString validationMessage;
220
- boolean checkValidity();
221
- void setCustomValidity(in DOMString error);
158
+ attribute DOMString charset;
159
+ attribute DOMString text;
222
160
  };
223
161
 
224
-
225
- // the-dl-element
226
- [TagName=dl]
227
- interface HTMLDListElement : HTMLElement {};
228
-
229
-
230
- // the-li-element
231
- [TagName=li]
232
- interface HTMLLIElement : HTMLElement {
233
- attribute long value;
162
+ [TagName=body]
163
+ interface HTMLBodyElement : HTMLElement {
164
+ attribute Function onafterprint;
165
+ attribute Function onbeforeprint;
166
+ attribute Function onbeforeunload;
167
+ attribute Function onblur;
168
+ attribute Function onerror;
169
+ attribute Function onfocus;
170
+ attribute Function onhashchange;
171
+ attribute Function onload;
172
+ attribute Function onmessage;
173
+ attribute Function onoffline;
174
+ attribute Function ononline;
175
+ attribute Function onpopstate;
176
+ attribute Function onpagehide;
177
+ attribute Function onpageshow;
178
+ attribute Function onredo;
179
+ attribute Function onresize;
180
+ attribute Function onstorage;
181
+ attribute Function onundo;
182
+ attribute Function onunload;
234
183
  };
235
184
 
185
+ [TagName=h1]
186
+ interface HTMLHeadingElement : HTMLElement {};
187
+
188
+ [TagName=p]
189
+ interface HTMLParagraphElement : HTMLElement {};
236
190
 
237
- // the-hr-element
238
191
  [TagName=hr]
239
192
  interface HTMLHRElement : HTMLElement {};
240
193
 
194
+ [TagName=pre]
195
+ interface HTMLPreElement : HTMLElement {};
241
196
 
242
- // the-button-element
243
- [TagName=button]
244
- interface HTMLButtonElement : HTMLElement {
245
- attribute boolean autofocus;
246
- attribute boolean disabled;
247
- readonly attribute HTMLFormElement form;
248
- attribute DOMString formAction;
249
- attribute DOMString formEnctype;
250
- attribute DOMString formMethod;
251
- attribute DOMString formNoValidate;
252
- attribute DOMString formTarget;
253
- attribute DOMString name;
254
- attribute DOMString type;
255
- attribute DOMString value;
256
-
257
- readonly attribute boolean willValidate;
258
- readonly attribute ValidityState validity;
259
- readonly attribute DOMString validationMessage;
260
- boolean checkValidity();
261
- void setCustomValidity(in DOMString error);
262
-
263
- readonly attribute NodeList labels;
197
+ [TagName=blockquote]
198
+ interface HTMLQuoteElement : HTMLElement {
199
+ attribute DOMString cite;
264
200
  };
265
201
 
266
-
267
- // the-tr-element
268
- [TagName=tr]
269
- interface HTMLTableRowElement : HTMLElement {
270
- readonly attribute long rowIndex;
271
- readonly attribute long sectionRowIndex;
272
- readonly attribute HTMLCollection cells;
273
- HTMLElement insertCell(in optional long index);
274
- void deleteCell(in long index);
202
+ [TagName=ol]
203
+ interface HTMLOListElement : HTMLElement {
204
+ attribute boolean reversed;
205
+ attribute long start;
275
206
  };
276
207
 
208
+ [TagName=ul]
209
+ interface HTMLUListElement : HTMLElement {};
277
210
 
278
- // the-tbody-element
279
- [TagName=tbody]
280
- interface HTMLTableSectionElement : HTMLElement {
281
- readonly attribute HTMLCollection rows;
282
- HTMLElement insertRow(in optional long index);
283
- void deleteRow(in long index);
211
+ [TagName=li]
212
+ interface HTMLLIElement : HTMLElement {
213
+ attribute long value;
284
214
  };
285
215
 
216
+ [TagName=dl]
217
+ interface HTMLDListElement : HTMLElement {};
286
218
 
287
- // the-area-element
288
- [TagName=area]
289
- interface HTMLAreaElement : HTMLElement {
290
- attribute DOMString alt;
291
- attribute DOMString coords;
292
- attribute DOMString shape;
293
- stringifier attribute DOMString href;
294
- attribute DOMString target;
295
- attribute DOMString ping;
296
- attribute DOMString rel;
297
- readonly attribute DOMTokenList relList;
298
- attribute DOMString media;
299
- attribute DOMString hreflang;
300
- attribute DOMString type;
301
-
302
- // URL decomposition IDL attributes
303
- attribute DOMString protocol;
304
- attribute DOMString host;
305
- attribute DOMString hostname;
306
- attribute DOMString port;
307
- attribute DOMString pathname;
308
- attribute DOMString search;
309
- attribute DOMString hash;
310
- };
311
-
219
+ [TagName=div]
220
+ interface HTMLDivElement : HTMLElement {};
312
221
 
313
- // the-a-element
314
222
  [TagName=a]
315
223
  interface HTMLAnchorElement : HTMLElement {
316
224
  stringifier attribute DOMString href;
317
225
  attribute DOMString target;
318
- attribute DOMString ping;
319
226
  attribute DOMString rel;
320
227
  readonly attribute DOMTokenList relList;
321
228
  attribute DOMString media;
322
229
  attribute DOMString hreflang;
323
230
  attribute DOMString type;
324
231
 
232
+ attribute DOMString text;
233
+
325
234
  // URL decomposition IDL attributes
326
235
  attribute DOMString protocol;
327
236
  attribute DOMString host;
@@ -332,35 +241,50 @@ interface HTMLAnchorElement : HTMLElement {
332
241
  attribute DOMString hash;
333
242
  };
334
243
 
335
-
336
- // the-pre-element
337
- [TagName=pre]
338
- interface HTMLPreElement : HTMLElement {};
339
-
340
-
341
- // the-details-element
342
- [TagName=details]
343
- interface HTMLDetailsElement : HTMLElement {
344
- attribute boolean open;
244
+ [TagName=time]
245
+ interface HTMLTimeElement : HTMLElement {
246
+ attribute DOMString dateTime;
247
+ attribute boolean pubDate;
248
+ readonly attribute Date valueAsDate;
345
249
  };
346
250
 
251
+ [TagName=span]
252
+ interface HTMLSpanElement : HTMLElement {};
347
253
 
348
- // the-optgroup-element
349
- [TagName=optgroup]
350
- interface HTMLOptGroupElement : HTMLElement {
351
- attribute boolean disabled;
352
- attribute DOMString label;
254
+ [TagName=br]
255
+ interface HTMLBRElement : HTMLElement {};
256
+
257
+ interface HTMLModElement : HTMLElement {
258
+ attribute DOMString cite;
259
+ attribute DOMString dateTime;
353
260
  };
354
261
 
355
-
356
- // the-colgroup-element
357
- [TagName=colgroup]
358
- interface HTMLTableColElement : HTMLElement {
359
- attribute unsigned long span;
262
+ [TagName=img]
263
+ interface HTMLImageElement : HTMLElement {
264
+ attribute DOMString alt;
265
+ attribute DOMString src;
266
+ attribute DOMString useMap;
267
+ attribute boolean isMap;
268
+ attribute unsigned long width;
269
+ attribute unsigned long height;
270
+ readonly attribute unsigned long naturalWidth;
271
+ readonly attribute unsigned long naturalHeight;
272
+ readonly attribute boolean complete;
360
273
  };
361
274
 
275
+ [TagName=iframe]
276
+ interface HTMLIFrameElement : HTMLElement {
277
+ attribute DOMString src;
278
+ attribute DOMString srcdoc;
279
+ attribute DOMString name;
280
+ [PutForwards=value] readonly attribute DOMSettableTokenList sandbox;
281
+ attribute boolean seamless;
282
+ attribute DOMString width;
283
+ attribute DOMString height;
284
+ readonly attribute Document contentDocument;
285
+ readonly attribute WindowProxy contentWindow;
286
+ };
362
287
 
363
- // the-embed-element
364
288
  [TagName=embed]
365
289
  interface HTMLEmbedElement : HTMLElement {
366
290
  attribute DOMString src;
@@ -369,60 +293,214 @@ interface HTMLEmbedElement : HTMLElement {
369
293
  attribute DOMString height;
370
294
  };
371
295
 
296
+ [TagName=object]
297
+ interface HTMLObjectElement : HTMLElement {
298
+ attribute DOMString data;
299
+ attribute DOMString type;
300
+ attribute DOMString name;
301
+ attribute DOMString useMap;
302
+ readonly attribute HTMLFormElement form;
303
+ attribute DOMString width;
304
+ attribute DOMString height;
305
+ readonly attribute Document contentDocument;
306
+ readonly attribute WindowProxy contentWindow;
372
307
 
373
- // the-link-element
374
- [TagName=link]
375
- interface HTMLLinkElement : HTMLElement {
376
- attribute boolean disabled;
377
- attribute DOMString href;
308
+ readonly attribute boolean willValidate;
309
+ readonly attribute ValidityState validity;
310
+ readonly attribute DOMString validationMessage;
311
+ boolean checkValidity();
312
+ void setCustomValidity(in DOMString error);
313
+ };
314
+
315
+ [TagName=param]
316
+ interface HTMLParamElement : HTMLElement {
317
+ attribute DOMString name;
318
+ attribute DOMString value;
319
+ };
320
+
321
+
322
+ [TagName=video]
323
+ interface HTMLVideoElement : HTMLMediaElement {
324
+ attribute DOMString width;
325
+ attribute DOMString height;
326
+ readonly attribute unsigned long videoWidth;
327
+ readonly attribute unsigned long videoHeight;
328
+ attribute DOMString poster;
329
+ };
330
+
331
+ [TagName=audio]
332
+ interface HTMLAudioElement : HTMLMediaElement {};
333
+
334
+ [TagName=source]
335
+ interface HTMLSourceElement : HTMLElement {
336
+ attribute DOMString src;
337
+ attribute DOMString type;
338
+ attribute DOMString media;
339
+ };
340
+
341
+ interface HTMLMediaElement : HTMLElement {
342
+
343
+ // error state
344
+ readonly attribute MediaError error;
345
+
346
+ // network state
347
+ attribute DOMString src;
348
+ readonly attribute DOMString currentSrc;
349
+ const unsigned short NETWORK_EMPTY = 0;
350
+ const unsigned short NETWORK_IDLE = 1;
351
+ const unsigned short NETWORK_LOADING = 2;
352
+ const unsigned short NETWORK_NO_SOURCE = 3;
353
+ readonly attribute unsigned short networkState;
354
+ attribute DOMString preload;
355
+ readonly attribute TimeRanges buffered;
356
+ void load();
357
+ DOMString canPlayType(in DOMString type);
358
+
359
+ // ready state
360
+ const unsigned short HAVE_NOTHING = 0;
361
+ const unsigned short HAVE_METADATA = 1;
362
+ const unsigned short HAVE_CURRENT_DATA = 2;
363
+ const unsigned short HAVE_FUTURE_DATA = 3;
364
+ const unsigned short HAVE_ENOUGH_DATA = 4;
365
+ readonly attribute unsigned short readyState;
366
+ readonly attribute boolean seeking;
367
+
368
+ // playback state
369
+ attribute float currentTime;
370
+ readonly attribute float startTime;
371
+ readonly attribute float duration;
372
+ readonly attribute boolean paused;
373
+ attribute float defaultPlaybackRate;
374
+ attribute float playbackRate;
375
+ readonly attribute TimeRanges played;
376
+ readonly attribute TimeRanges seekable;
377
+ readonly attribute boolean ended;
378
+ attribute boolean autoplay;
379
+ attribute boolean loop;
380
+ void play();
381
+ void pause();
382
+
383
+ // controls
384
+ attribute boolean controls;
385
+ attribute float volume;
386
+ attribute boolean muted;
387
+ };
388
+
389
+ interface MediaError {
390
+ const unsigned short MEDIA_ERR_ABORTED = 1;
391
+ const unsigned short MEDIA_ERR_NETWORK = 2;
392
+ const unsigned short MEDIA_ERR_DECODE = 3;
393
+ const unsigned short MEDIA_ERR_SRC_NOT_SUPPORTED = 4;
394
+ readonly attribute unsigned short code;
395
+ };
396
+
397
+ interface TimeRanges {
398
+ readonly attribute unsigned long length;
399
+ float start(in unsigned long index);
400
+ float end(in unsigned long index);
401
+ };
402
+
403
+ [TagName=canvas]
404
+ interface HTMLCanvasElement : HTMLElement {
405
+ attribute unsigned long width;
406
+ attribute unsigned long height;
407
+
408
+ DOMString toDataURL(in optional DOMString type, in any... args);
409
+
410
+ object getContext(in DOMString contextId);
411
+ };
412
+
413
+ [TagName=map]
414
+ interface HTMLMapElement : HTMLElement {
415
+ attribute DOMString name;
416
+ readonly attribute HTMLCollection areas;
417
+ readonly attribute HTMLCollection images;
418
+ };
419
+
420
+ interface HTMLAreaElement : HTMLElement {
421
+ attribute DOMString alt;
422
+ attribute DOMString coords;
423
+ attribute DOMString shape;
424
+ stringifier attribute DOMString href;
425
+ attribute DOMString target;
378
426
  attribute DOMString rel;
379
427
  readonly attribute DOMTokenList relList;
380
428
  attribute DOMString media;
381
429
  attribute DOMString hreflang;
382
430
  attribute DOMString type;
383
- attribute DOMString sizes;
384
- };
385
- HTMLLinkElement implements LinkStyle;
386
431
 
432
+ // URL decomposition IDL attributes
433
+ attribute DOMString protocol;
434
+ attribute DOMString host;
435
+ attribute DOMString hostname;
436
+ attribute DOMString port;
437
+ attribute DOMString pathname;
438
+ attribute DOMString search;
439
+ attribute DOMString hash;
440
+ };
387
441
 
388
- // the-html-element-0
389
- [TagName=html]
390
- interface HTMLHtmlElement : HTMLElement {};
442
+ [TagName=table]
443
+ interface HTMLTableElement : HTMLElement {
444
+ attribute HTMLTableCaptionElement caption;
445
+ HTMLElement createCaption();
446
+ void deleteCaption();
447
+ attribute HTMLTableSectionElement tHead;
448
+ HTMLElement createTHead();
449
+ void deleteTHead();
450
+ attribute HTMLTableSectionElement tFoot;
451
+ HTMLElement createTFoot();
452
+ void deleteTFoot();
453
+ readonly attribute HTMLCollection tBodies;
454
+ HTMLElement createTBody();
455
+ readonly attribute HTMLCollection rows;
456
+ HTMLElement insertRow(in optional long index);
457
+ void deleteRow(in long index);
458
+ attribute DOMString summary;
459
+ };
391
460
 
461
+ [TagName=caption]
462
+ interface HTMLTableCaptionElement : HTMLElement {};
392
463
 
393
- // the-option-element
394
- [TagName=option,
395
- NamedConstructor=Option(),
396
- NamedConstructor=Option(in DOMString text),
397
- NamedConstructor=Option(in DOMString text, in DOMString value),
398
- NamedConstructor=Option(in DOMString text, in DOMString value, in boolean defaultSelected),
399
- NamedConstructor=Option(in DOMString text, in DOMString value, in boolean defaultSelected, in boolean selected)]
400
- interface HTMLOptionElement : HTMLElement {
401
- attribute boolean disabled;
402
- readonly attribute HTMLFormElement form;
403
- attribute DOMString label;
404
- attribute boolean defaultSelected;
405
- attribute boolean selected;
406
- attribute DOMString value;
464
+ [TagName=colgroup]
465
+ interface HTMLTableColElement : HTMLElement {
466
+ attribute unsigned long span;
467
+ };
468
+ [TagName=tbody,tfoot]
469
+ interface HTMLTableSectionElement : HTMLElement {
470
+ readonly attribute HTMLCollection rows;
471
+ HTMLElement insertRow(in optional long index);
472
+ void deleteRow(in long index);
473
+ };
407
474
 
408
- attribute DOMString text;
409
- readonly attribute long index;
475
+ [TagName=tr]
476
+ interface HTMLTableRowElement : HTMLElement {
477
+ readonly attribute long rowIndex;
478
+ readonly attribute long sectionRowIndex;
479
+ readonly attribute HTMLCollection cells;
480
+ HTMLElement insertCell(in optional long index);
481
+ void deleteCell(in long index);
410
482
  };
411
483
 
484
+ [TagName=td]
485
+ interface HTMLTableDataCellElement : HTMLTableCellElement {};
412
486
 
413
- // the-legend-element
414
- [TagName=legend]
415
- interface HTMLLegendElement : HTMLElement {
416
- readonly attribute HTMLFormElement form;
487
+ [TagName=th]
488
+ interface HTMLTableHeaderCellElement : HTMLTableCellElement {
489
+ attribute DOMString scope;
417
490
  };
418
491
 
492
+ interface HTMLTableCellElement : HTMLElement {
493
+ attribute unsigned long colSpan;
494
+ attribute unsigned long rowSpan;
495
+ [PutForwards=value] readonly attribute DOMSettableTokenList headers;
496
+ readonly attribute long cellIndex;
497
+ };
419
498
 
420
- // the-form-element
421
- [TagName=form,OverrideBuiltins]
499
+ [TagName=form]
422
500
  interface HTMLFormElement : HTMLElement {
423
501
  attribute DOMString acceptCharset;
424
502
  attribute DOMString action;
425
- attribute boolean autocomplete;
503
+ attribute DOMString autocomplete;
426
504
  attribute DOMString enctype;
427
505
  attribute DOMString method;
428
506
  attribute DOMString name;
@@ -442,141 +520,338 @@ interface HTMLFormElement : HTMLElement {
442
520
  void dispatchFormChange();
443
521
  };
444
522
 
445
-
446
- // the-param-element
447
- [TagName=param]
448
- interface HTMLParamElement : HTMLElement {
523
+ [TagName=fieldset]
524
+ interface HTMLFieldSetElement : HTMLElement {
525
+ attribute boolean disabled;
526
+ readonly attribute HTMLFormElement form;
449
527
  attribute DOMString name;
450
- attribute DOMString value;
451
- };
452
528
 
529
+ readonly attribute DOMString type;
453
530
 
454
- // the-iframe-element
455
- [TagName=iframe]
456
- interface HTMLIFrameElement : HTMLElement {
457
- attribute DOMString src;
458
- attribute DOMString name;
459
- attribute DOMString sandbox;
460
- attribute boolean seamless;
461
- attribute DOMString width;
462
- attribute DOMString height;
463
- readonly attribute Document contentDocument;
464
- readonly attribute WindowProxy contentWindow;
531
+ readonly attribute HTMLFormControlsCollection elements;
532
+
533
+ readonly attribute boolean willValidate;
534
+ readonly attribute ValidityState validity;
535
+ readonly attribute DOMString validationMessage;
536
+ boolean checkValidity();
537
+ void setCustomValidity(in DOMString error);
465
538
  };
466
539
 
540
+ [TagName=legend]
541
+ interface HTMLLegendElement : HTMLElement {
542
+ readonly attribute HTMLFormElement form;
543
+ };
467
544
 
468
- // the-img-element
469
- [TagName=img,
470
- NamedConstructor=Image(),
471
- NamedConstructor=Image(in unsigned long width),
472
- NamedConstructor=Image(in unsigned long width, in unsigned long height)]
473
- interface HTMLImageElement : HTMLElement {
545
+ [TagName=label]
546
+ interface HTMLLabelElement : HTMLElement {
547
+ readonly attribute HTMLFormElement form;
548
+ attribute DOMString htmlFor;
549
+ readonly attribute HTMLElement control;
550
+ };
551
+
552
+ [TagName=input]
553
+ interface HTMLInputElement : HTMLElement {
554
+ attribute DOMString accept;
474
555
  attribute DOMString alt;
556
+ attribute DOMString autocomplete;
557
+ attribute boolean autofocus;
558
+ attribute boolean defaultChecked;
559
+ attribute boolean checked;
560
+ attribute boolean disabled;
561
+ readonly attribute HTMLFormElement form;
562
+ readonly attribute FileList files;
563
+ attribute DOMString formAction;
564
+ attribute DOMString formEnctype;
565
+ attribute DOMString formMethod;
566
+ attribute boolean formNoValidate;
567
+ attribute DOMString formTarget;
568
+ attribute DOMString height;
569
+ attribute boolean indeterminate;
570
+ readonly attribute HTMLElement list;
571
+ attribute DOMString max;
572
+ attribute long maxLength;
573
+ attribute DOMString min;
574
+ attribute boolean multiple;
575
+ attribute DOMString name;
576
+ attribute DOMString pattern;
577
+ attribute DOMString placeholder;
578
+ attribute boolean readOnly;
579
+ attribute boolean required;
580
+ attribute unsigned long size;
475
581
  attribute DOMString src;
476
- attribute DOMString useMap;
477
- attribute boolean isMap;
478
- attribute unsigned long width;
479
- attribute unsigned long height;
480
- readonly attribute unsigned long naturalWidth;
481
- readonly attribute unsigned long naturalHeight;
482
- readonly attribute boolean complete;
483
- };
582
+ attribute DOMString step;
583
+ attribute DOMString type;
584
+ attribute DOMString defaultValue;
585
+ attribute DOMString value;
586
+ attribute Date valueAsDate;
587
+ attribute double valueAsNumber;
588
+ readonly attribute HTMLOptionElement selectedOption;
589
+ attribute DOMString width;
484
590
 
591
+ void stepUp(in optional long n);
592
+ void stepDown(in optional long n);
485
593
 
486
- // the-progress-element
487
- [TagName=progress]
488
- interface HTMLProgressElement : HTMLElement {
489
- attribute float value;
490
- attribute float max;
491
- readonly attribute float position;
594
+ readonly attribute boolean willValidate;
595
+ readonly attribute ValidityState validity;
596
+ readonly attribute DOMString validationMessage;
597
+ boolean checkValidity();
598
+ void setCustomValidity(in DOMString error);
599
+
600
+ readonly attribute NodeList labels;
601
+
602
+ void select();
603
+ attribute unsigned long selectionStart;
604
+ attribute unsigned long selectionEnd;
605
+ void setSelectionRange(in unsigned long start, in unsigned long end);
492
606
  };
493
607
 
608
+ [TagName=button]
609
+ interface HTMLButtonElement : HTMLElement {
610
+ attribute boolean autofocus;
611
+ attribute boolean disabled;
612
+ readonly attribute HTMLFormElement form;
613
+ attribute DOMString formAction;
614
+ attribute DOMString formEnctype;
615
+ attribute DOMString formMethod;
616
+ attribute DOMString formNoValidate;
617
+ attribute DOMString formTarget;
618
+ attribute DOMString name;
619
+ attribute DOMString type;
620
+ attribute DOMString value;
621
+
622
+ readonly attribute boolean willValidate;
623
+ readonly attribute ValidityState validity;
624
+ readonly attribute DOMString validationMessage;
625
+ boolean checkValidity();
626
+ void setCustomValidity(in DOMString error);
494
627
 
495
- // the-time-element
496
- [TagName=time]
497
- interface HTMLTimeElement : HTMLElement {
498
- attribute DOMString dateTime;
499
- attribute boolean pubDate;
500
- readonly attribute Date valueAsDate;
628
+ readonly attribute NodeList labels;
501
629
  };
502
630
 
631
+ [TagName=select]
632
+ interface HTMLSelectElement : HTMLElement {
633
+ attribute boolean autofocus;
634
+ attribute boolean disabled;
635
+ readonly attribute HTMLFormElement form;
636
+ attribute boolean multiple;
637
+ attribute DOMString name;
638
+ attribute unsigned long size;
639
+
640
+ readonly attribute DOMString type;
503
641
 
504
- // the-ul-element
505
- [TagName=ul]
506
- interface HTMLUListElement : HTMLElement {};
642
+ readonly attribute HTMLOptionsCollection options;
643
+ attribute unsigned long length;
644
+ caller getter any item(in unsigned long index);
645
+ caller getter any namedItem(in DOMString name);
646
+ void add(in HTMLElement element, in optional HTMLElement before);
647
+ void add(in HTMLElement element, in long before);
648
+ void remove(in long index);
507
649
 
650
+ readonly attribute HTMLCollection selectedOptions;
651
+ attribute long selectedIndex;
652
+ attribute DOMString value;
508
653
 
509
- // the-blockquote-element
510
- [TagName=blockquote]
511
- interface HTMLQuoteElement : HTMLElement {
512
- attribute DOMString cite;
654
+ readonly attribute boolean willValidate;
655
+ readonly attribute ValidityState validity;
656
+ readonly attribute DOMString validationMessage;
657
+ boolean checkValidity();
658
+ void setCustomValidity(in DOMString error);
659
+
660
+ readonly attribute NodeList labels;
661
+ };
662
+
663
+ [TagName=datalist]
664
+ interface HTMLDataListElement : HTMLElement {
665
+ readonly attribute HTMLCollection options;
513
666
  };
514
667
 
668
+ [TagName=optgroup]
669
+ interface HTMLOptGroupElement : HTMLElement {
670
+ attribute boolean disabled;
671
+ attribute DOMString label;
672
+ };
515
673
 
516
- // the-style-element
517
- [TagName=style]
518
- interface HTMLStyleElement : HTMLElement {
674
+ [TagName=option]
675
+ interface HTMLOptionElement : HTMLElement {
519
676
  attribute boolean disabled;
520
- attribute DOMString media;
521
- attribute DOMString type;
522
- attribute boolean scoped;
677
+ readonly attribute HTMLFormElement form;
678
+ attribute DOMString label;
679
+ attribute boolean defaultSelected;
680
+ attribute boolean selected;
681
+ attribute DOMString value;
682
+
683
+ attribute DOMString text;
684
+ readonly attribute long index;
523
685
  };
524
- HTMLStyleElement implements LinkStyle;
525
686
 
687
+ [TagName=textarea]
688
+ interface HTMLTextAreaElement : HTMLElement {
689
+ attribute boolean autofocus;
690
+ attribute unsigned long cols;
691
+ attribute boolean disabled;
692
+ readonly attribute HTMLFormElement form;
693
+ attribute long maxLength;
694
+ attribute DOMString name;
695
+ attribute DOMString placeholder;
696
+ attribute boolean readOnly;
697
+ attribute boolean required;
698
+ attribute unsigned long rows;
699
+ attribute DOMString wrap;
700
+
701
+ readonly attribute DOMString type;
702
+ attribute DOMString defaultValue;
703
+ attribute DOMString value;
704
+ readonly attribute unsigned long textLength;
705
+
706
+ readonly attribute boolean willValidate;
707
+ readonly attribute ValidityState validity;
708
+ readonly attribute DOMString validationMessage;
709
+ boolean checkValidity();
710
+ void setCustomValidity(in DOMString error);
711
+
712
+ readonly attribute NodeList labels;
713
+
714
+ void select();
715
+ attribute unsigned long selectionStart;
716
+ attribute unsigned long selectionEnd;
717
+ void setSelectionRange(in unsigned long start, in unsigned long end);
718
+ };
719
+
720
+ [TagName=keygen]
721
+ interface HTMLKeygenElement : HTMLElement {
722
+ attribute boolean autofocus;
723
+ attribute DOMString challenge;
724
+ attribute boolean disabled;
725
+ readonly attribute HTMLFormElement form;
726
+ attribute DOMString keytype;
727
+ attribute DOMString name;
728
+
729
+ readonly attribute DOMString type;
730
+
731
+ readonly attribute boolean willValidate;
732
+ readonly attribute ValidityState validity;
733
+ readonly attribute DOMString validationMessage;
734
+ boolean checkValidity();
735
+ void setCustomValidity(in DOMString error);
736
+
737
+ readonly attribute NodeList labels;
738
+ };
526
739
 
527
- // the-output-element
528
740
  [TagName=output]
529
741
  interface HTMLOutputElement : HTMLElement {
530
- attribute DOMString htmlFor;
742
+ [PutForwards=value] readonly attribute DOMSettableTokenList htmlFor;
531
743
  readonly attribute HTMLFormElement form;
532
744
  attribute DOMString name;
533
745
 
534
- readonly attribute DOMString type;
535
- attribute DOMString defaultValue;
536
- attribute DOMString value;
746
+ readonly attribute DOMString type;
747
+ attribute DOMString defaultValue;
748
+ attribute DOMString value;
749
+
750
+ readonly attribute boolean willValidate;
751
+ readonly attribute ValidityState validity;
752
+ readonly attribute DOMString validationMessage;
753
+ boolean checkValidity();
754
+ void setCustomValidity(in DOMString error);
755
+
756
+ readonly attribute NodeList labels;
757
+ };
758
+
759
+ [TagName=progress]
760
+ interface HTMLProgressElement : HTMLElement {
761
+ attribute float value;
762
+ attribute float max;
763
+ readonly attribute float position;
764
+ readonly attribute HTMLFormElement form;
765
+ readonly attribute NodeList labels;
766
+ };
767
+
768
+ [TagName=meter]
769
+ interface HTMLMeterElement : HTMLElement {
770
+ attribute float value;
771
+ attribute float min;
772
+ attribute float max;
773
+ attribute float low;
774
+ attribute float high;
775
+ attribute float optimum;
776
+ readonly attribute HTMLFormElement form;
777
+ readonly attribute NodeList labels;
778
+ };
779
+
780
+ interface ValidityState {
781
+ readonly attribute boolean valueMissing;
782
+ readonly attribute boolean typeMismatch;
783
+ readonly attribute boolean patternMismatch;
784
+ readonly attribute boolean tooLong;
785
+ readonly attribute boolean rangeUnderflow;
786
+ readonly attribute boolean rangeOverflow;
787
+ readonly attribute boolean stepMismatch;
788
+ readonly attribute boolean customError;
789
+ readonly attribute boolean valid;
790
+ };
537
791
 
538
- readonly attribute boolean willValidate;
539
- readonly attribute ValidityState validity;
540
- readonly attribute DOMString validationMessage;
541
- boolean checkValidity();
542
- void setCustomValidity(in DOMString error);
792
+ [TagName=details]
793
+ interface HTMLDetailsElement : HTMLElement {
794
+ attribute boolean open;
543
795
  };
544
796
 
797
+ [TagName=command]
798
+ interface HTMLCommandElement : HTMLElement {
799
+ attribute DOMString type;
800
+ attribute DOMString label;
801
+ attribute DOMString icon;
802
+ attribute boolean disabled;
803
+ attribute boolean checked;
804
+ attribute DOMString radiogroup;
805
+ };
545
806
 
546
- // the-caption-element
547
- [TagName=caption]
548
- interface HTMLTableCaptionElement : HTMLElement {};
807
+ [TagName=menu]
808
+ interface HTMLMenuElement : HTMLElement {
809
+ attribute DOMString type;
810
+ attribute DOMString label;
811
+ };
549
812
 
550
813
 
551
- // the-table-element
552
- [TagName=table]
553
- interface HTMLTableElement : HTMLElement {
554
- attribute HTMLTableCaptionElement caption;
555
- HTMLElement createCaption();
556
- void deleteCaption();
557
- attribute HTMLTableSectionElement tHead;
558
- HTMLElement createTHead();
559
- void deleteTHead();
560
- attribute HTMLTableSectionElement tFoot;
561
- HTMLElement createTFoot();
562
- void deleteTFoot();
563
- readonly attribute HTMLCollection tBodies;
564
- HTMLElement createTBody();
565
- readonly attribute HTMLCollection rows;
566
- HTMLElement insertRow(in optional long index);
567
- void deleteRow(in long index);
568
- attribute DOMString summary;
814
+ [TagName=applet]
815
+ interface HTMLAppletElement : HTMLElement {
816
+ attribute DOMString align;
817
+ attribute DOMString alt;
818
+ attribute DOMString archive;
819
+ attribute DOMString code;
820
+ attribute DOMString codeBase;
821
+ attribute DOMString height;
822
+ attribute unsigned long hspace;
823
+ attribute DOMString name;
824
+ attribute DOMString _object; // the underscore is not part of the identifier
825
+ attribute unsigned long vspace;
826
+ attribute DOMString width;
569
827
  };
570
828
 
829
+ [TagName=marquee]
830
+ interface HTMLMarqueeElement : HTMLElement {
831
+ attribute DOMString behavior;
832
+ attribute DOMString bgColor;
833
+ attribute DOMString direction;
834
+ attribute DOMString height;
835
+ attribute unsigned long hspace;
836
+ attribute long loop;
837
+ attribute unsigned long scrollAmount;
838
+ attribute unsigned long scrollDelay;
839
+ attribute DOMString trueSpeed;
840
+ attribute unsigned long vspace;
841
+ attribute DOMString width;
571
842
 
572
- // the-p-element
573
- [TagName=p]
574
- interface HTMLParagraphElement : HTMLElement {};
843
+ attribute Function onbounce;
844
+ attribute Function onfinish;
845
+ attribute Function onstart;
575
846
 
847
+ void start();
848
+ void stop();
849
+ };
576
850
 
577
- // the-body-element-0
578
- [TagName=body]
579
- interface HTMLBodyElement : HTMLElement {
851
+ [TagName=farmeset]
852
+ interface HTMLFrameSetElement : HTMLElement {
853
+ attribute DOMString cols;
854
+ attribute DOMString rows;
580
855
  attribute Function onafterprint;
581
856
  attribute Function onbeforeprint;
582
857
  attribute Function onbeforeunload;
@@ -588,9 +863,9 @@ interface HTMLBodyElement : HTMLElement {
588
863
  attribute Function onmessage;
589
864
  attribute Function onoffline;
590
865
  attribute Function ononline;
591
- attribute Function onpopstate;
592
866
  attribute Function onpagehide;
593
867
  attribute Function onpageshow;
868
+ attribute Function onpopstate;
594
869
  attribute Function onredo;
595
870
  attribute Function onresize;
596
871
  attribute Function onstorage;
@@ -598,218 +873,402 @@ interface HTMLBodyElement : HTMLElement {
598
873
  attribute Function onunload;
599
874
  };
600
875
 
876
+ [TagName=frame]
877
+ interface HTMLFrameElement : HTMLElement {
878
+ attribute DOMString frameBorder;
879
+ attribute DOMString longDesc;
880
+ attribute DOMString marginHeight;
881
+ attribute DOMString marginWidth;
882
+ attribute DOMString name;
883
+ attribute boolean noResize;
884
+ attribute DOMString scrolling;
885
+ attribute DOMString src;
886
+ readonly attribute Document contentDocument;
887
+ };
601
888
 
602
- // the-head-element-0
603
- [TagName=head]
604
- interface HTMLHeadElement : HTMLElement {};
605
-
606
-
607
- // the-map-element
608
- [TagName=map]
609
- interface HTMLMapElement : HTMLElement {
889
+ [TagName=a]
890
+ interface HTMLAnchorElement : HTMLElement {
891
+ attribute DOMString coords;
892
+ attribute DOMString charset;
610
893
  attribute DOMString name;
611
- readonly attribute HTMLCollection areas;
612
- readonly attribute HTMLCollection images;
894
+ attribute DOMString rev;
895
+ attribute DOMString shape;
613
896
  };
614
897
 
898
+ [TagName=area]
899
+ interface HTMLAreaElement : HTMLElement {
900
+ attribute boolean noHref;
901
+ };
615
902
 
616
- // the-div-element
617
- [TagName=div]
618
- interface HTMLDivElement : HTMLElement {};
903
+ [TagName=basefont]
904
+ interface HTMLBaseFontElement : HTMLElement {
905
+ attribute DOMString color;
906
+ attribute DOMString face;
907
+ attribute long size;
908
+ };
619
909
 
910
+ [Supplemental,TagName=body]
911
+ interface HTMLBodyElement : HTMLElement {
912
+ attribute DOMString text;
913
+ attribute DOMString bgColor;
914
+ attribute DOMString background;
915
+ attribute DOMString link;
916
+ attribute DOMString vLink;
917
+ attribute DOMString aLink;
918
+ };
620
919
 
621
- // the-textarea-element
622
- [TagName=textarea]
623
- interface HTMLTextAreaElement : HTMLElement {
624
- attribute boolean autofocus;
625
- attribute unsigned long cols;
626
- attribute boolean disabled;
627
- readonly attribute HTMLFormElement form;
628
- attribute long maxLength;
629
- attribute DOMString name;
630
- attribute DOMString placeholder;
631
- attribute boolean readOnly;
632
- attribute boolean required;
633
- attribute unsigned long rows;
634
- attribute DOMString wrap;
920
+ [Supplemental,TagName=br]
921
+ interface HTMLBRElement {
922
+ attribute DOMString clear;
923
+ };
635
924
 
636
- readonly attribute DOMString type;
637
- attribute DOMString defaultValue;
638
- attribute DOMString value;
639
- readonly attribute unsigned long textLength;
925
+ [Supplemental,TagName=caption]
926
+ interface HTMLTableCaptionElement {
927
+ attribute DOMString align;
928
+ };
640
929
 
641
- readonly attribute boolean willValidate;
642
- readonly attribute ValidityState validity;
643
- readonly attribute DOMString validationMessage;
644
- boolean checkValidity();
645
- void setCustomValidity(in DOMString error);
930
+ [Supplemental,TagName=col]
931
+ interface HTMLTableColElement {
932
+ attribute DOMString align;
933
+ attribute DOMString ch;
934
+ attribute DOMString chOff;
935
+ attribute DOMString vAlign;
936
+ attribute DOMString width;
937
+ };
646
938
 
647
- readonly attribute NodeList labels;
939
+ interface HTMLDirectoryElement : HTMLElement {
940
+ attribute boolean compact;
941
+ };
648
942
 
649
- void select();
650
- attribute unsigned long selectionStart;
651
- attribute unsigned long selectionEnd;
652
- void setSelectionRange(in unsigned long start, in unsigned long end);
943
+ [Supplemental,TagName=div]
944
+ interface HTMLDivElement {
945
+ attribute DOMString align;
653
946
  };
654
947
 
948
+ [Supplemental,TagName=dl]
949
+ interface HTMLDListElement {
950
+ attribute boolean compact;
951
+ };
655
952
 
656
- // the-td-element
657
- [TagName=td]
658
- interface HTMLTableDataCellElement : HTMLTableCellElement {};
953
+ [Supplemental,TagName=embed]
954
+ interface HTMLEmbedElement {
955
+ attribute DOMString align;
956
+ attribute DOMString name;
957
+ };
659
958
 
959
+ [TagName=font]
960
+ interface HTMLFontElement : HTMLElement {
961
+ attribute DOMString color;
962
+ attribute DOMString face;
963
+ attribute DOMString size;
964
+ };
660
965
 
661
- // the-canvas-element
662
- [TagName=canvas]
663
- interface HTMLCanvasElement : HTMLElement {
664
- attribute unsigned long width;
665
- attribute unsigned long height;
966
+ [Supplemental,TagName=h1,h2,h3,h4,h5,h6]
967
+ interface HTMLHeadingElement {
968
+ attribute DOMString align;
969
+ };
666
970
 
667
- DOMString toDataURL(in optional DOMString type, in any... args);
971
+ [Supplemental,TagName=hr]
972
+ interface HTMLHRElement {
973
+ attribute DOMString align;
974
+ attribute DOMString color;
975
+ attribute boolean noShade;
976
+ attribute DOMString size;
977
+ attribute DOMString width;
978
+ };
668
979
 
669
- Object getContext(in DOMString contextId);
980
+ [Supplemental,TagName=html]
981
+ interface HTMLHtmlElement {
982
+ attribute DOMString version;
670
983
  };
671
984
 
985
+ [Supplemental,TagName=iframe]
986
+ interface HTMLIFrameElement {
987
+ attribute DOMString align;
988
+ attribute DOMString frameBorder;
989
+ attribute DOMString longDesc;
990
+ attribute DOMString marginHeight;
991
+ attribute DOMString marginWidth;
992
+ attribute DOMString scrolling;
993
+ };
672
994
 
673
- // the-br-element
674
- [TagName=br]
675
- interface HTMLBRElement : HTMLElement {};
995
+ [Supplemental,TagName=img]
996
+ interface HTMLImageElement {
997
+ attribute DOMString name;
998
+ attribute DOMString align;
999
+ attribute DOMString border;
1000
+ attribute unsigned long hspace;
1001
+ attribute DOMString longDesc;
1002
+ attribute unsigned long vspace;
1003
+ };
676
1004
 
1005
+ [Supplemental,TagName=input]
1006
+ interface HTMLInputElement {
1007
+ attribute DOMString align;
1008
+ attribute DOMString useMap;
1009
+ };
677
1010
 
678
- // the-title-element-0
679
- [TagName=title]
680
- interface HTMLTitleElement : HTMLElement {
681
- attribute DOMString text;
1011
+ [Supplemental,TagName=legend]
1012
+ interface HTMLLegendElement {
1013
+ attribute DOMString align;
682
1014
  };
683
1015
 
1016
+ [Supplemental,TagName=li]
1017
+ interface HTMLLIElement {
1018
+ attribute DOMString type;
1019
+ };
684
1020
 
685
- // the-meter-element
686
- [TagName=meter]
687
- interface HTMLMeterElement : HTMLElement {
688
- attribute float value;
689
- attribute float min;
690
- attribute float max;
691
- attribute float low;
692
- attribute float high;
693
- attribute float optimum;
1021
+ [Supplemental,TagName=link]
1022
+ interface HTMLLinkElement {
1023
+ attribute DOMString charset;
1024
+ attribute DOMString rev;
1025
+ attribute DOMString target;
694
1026
  };
695
1027
 
1028
+ [Supplemental,TagName=menu]
1029
+ interface HTMLMenuElement {
1030
+ attribute boolean compact;
1031
+ };
696
1032
 
697
- // the-h1-h2-h3-h4-h5-and-h6-elements
698
- [TagName=h1]
699
- interface HTMLHeadingElement : HTMLElement {};
700
1033
 
1034
+ [Supplemental,TagName=meta]
1035
+ interface HTMLMetaElement {
1036
+ attribute DOMString scheme;
1037
+ };
701
1038
 
702
- // the-base-element
703
- [TagName=base]
704
- interface HTMLBaseElement : HTMLElement {
705
- attribute DOMString href;
706
- attribute DOMString target;
1039
+ [Supplemental,TagName=object]
1040
+ interface HTMLObjectElement {
1041
+ attribute DOMString align;
1042
+ attribute DOMString archive;
1043
+ attribute DOMString border;
1044
+ attribute DOMString code;
1045
+ attribute DOMString codeBase;
1046
+ attribute DOMString codeType;
1047
+ attribute boolean declare;
1048
+ attribute unsigned long hspace;
1049
+ attribute DOMString standby;
1050
+ attribute unsigned long vspace;
707
1051
  };
708
1052
 
709
- interface HTMLUnknownElement : HTMLElement { };
1053
+ [Supplemental,TagName=ol]
1054
+ interface HTMLOListElement {
1055
+ attribute boolean compact;
1056
+ attribute DOMString type;
1057
+ };
710
1058
 
1059
+ [Supplemental,TagName=p]
1060
+ interface HTMLParagraphElement {
1061
+ attribute DOMString align;
1062
+ };
711
1063
 
712
- // the-select-element
713
- [TagName=select]
714
- interface HTMLSelectElement : HTMLElement {
715
- attribute boolean autofocus;
716
- attribute boolean disabled;
717
- readonly attribute HTMLFormElement form;
718
- attribute boolean multiple;
719
- attribute DOMString name;
720
- attribute unsigned long size;
1064
+ [Supplemental,TagName=param]
1065
+ interface HTMLParamElement {
1066
+ attribute DOMString type;
1067
+ attribute DOMString valueType;
1068
+ };
721
1069
 
722
- readonly attribute DOMString type;
1070
+ [Supplemental,TagName=pre]
1071
+ interface HTMLPreElement {
1072
+ attribute unsigned long width;
1073
+ };
723
1074
 
724
- readonly attribute HTMLOptionsCollection options;
725
- attribute unsigned long length;
726
- caller getter any item(in unsigned long index);
727
- caller getter any namedItem(in DOMString name);
728
- void add(in HTMLElement element, in optional HTMLElement before);
729
- void add(in HTMLElement element, in long before);
730
- void remove(in long index);
1075
+ [Supplemental,TagName=script]
1076
+ interface HTMLScriptElement {
1077
+ attribute DOMString event;
1078
+ attribute DOMString htmlFor;
1079
+ };
731
1080
 
732
- readonly attribute HTMLCollection selectedOptions;
733
- attribute long selectedIndex;
734
- attribute DOMString value;
1081
+ [Supplemental,TagName=table]
1082
+ interface HTMLTableElement {
1083
+ attribute DOMString align;
1084
+ attribute DOMString bgColor;
1085
+ attribute DOMString border;
1086
+ attribute DOMString cellPadding;
1087
+ attribute DOMString cellSpacing;
1088
+ attribute DOMString frame;
1089
+ attribute DOMString rules;
1090
+ attribute DOMString width;
1091
+ };
735
1092
 
736
- readonly attribute boolean willValidate;
737
- readonly attribute ValidityState validity;
738
- readonly attribute DOMString validationMessage;
739
- boolean checkValidity();
740
- void setCustomValidity(in DOMString error);
1093
+ [Supplemental,TagName=tbody,tfoot]
1094
+ interface HTMLTableSectionElement {
1095
+ attribute DOMString align;
1096
+ attribute DOMString ch;
1097
+ attribute DOMString chOff;
1098
+ attribute DOMString vAlign;
1099
+ };
741
1100
 
742
- readonly attribute NodeList labels;
1101
+ [Supplemental,TagName=td]
1102
+ interface HTMLTableCellElement {
1103
+ attribute DOMString abbr;
1104
+ attribute DOMString align;
1105
+ attribute DOMString axis;
1106
+ attribute DOMString bgColor;
1107
+ attribute DOMString ch;
1108
+ attribute DOMString chOff;
1109
+ attribute DOMString height;
1110
+ attribute boolean noWrap;
1111
+ attribute DOMString vAlign;
1112
+ attribute DOMString width;
743
1113
  };
744
1114
 
1115
+ [Supplemental,TagName=tr]
1116
+ interface HTMLTableRowElement {
1117
+ attribute DOMString align;
1118
+ attribute DOMString bgColor;
1119
+ attribute DOMString ch;
1120
+ attribute DOMString chOff;
1121
+ attribute DOMString vAlign;
1122
+ };
745
1123
 
746
- // the-label-element
747
- [TagName=label]
748
- interface HTMLLabelElement : HTMLElement {
749
- readonly attribute HTMLFormElement form;
750
- attribute DOMString htmlFor;
751
- readonly attribute HTMLElement control;
1124
+ [Supplemental,TagName=ul]
1125
+ interface HTMLUListElement {
1126
+ attribute boolean compact;
1127
+ attribute DOMString type;
752
1128
  };
753
1129
 
1130
+ // the-thead-element
1131
+ [TagName=thead]
1132
+ interface HTMLTheadElement : HTMLTableSectionElement {};
754
1133
 
755
- // the-keygen-element
756
- [TagName=keygen]
757
- interface HTMLKeygenElement : HTMLElement {
758
- attribute boolean autofocus;
759
- attribute DOMString challenge;
760
- attribute boolean disabled;
761
- readonly attribute HTMLFormElement form;
762
- attribute DOMString keytype;
763
- attribute DOMString name;
1134
+ // the-dd-element
1135
+ [TagName=dd]
1136
+ interface HTMLDdElement : HTMLElement {};
764
1137
 
765
- readonly attribute DOMString type;
1138
+ // the-address-element
1139
+ [TagName=address]
1140
+ interface HTMLAddressElement : HTMLElement {};
766
1141
 
767
- readonly attribute boolean willValidate;
768
- readonly attribute ValidityState validity;
769
- readonly attribute DOMString validationMessage;
770
- boolean checkValidity();
771
- void setCustomValidity(in DOMString error);
1142
+ // the-nav-element
1143
+ [TagName=nav]
1144
+ interface HTMLNavElement : HTMLElement {};
772
1145
 
773
- readonly attribute NodeList labels;
774
- };
1146
+ // the-tfoot-element
1147
+ [TagName=tfoot]
1148
+ interface HTMLTFootElement : HTMLTableSectionElement {};
775
1149
 
1150
+ // the-sub-and-sup-elements
1151
+ [TagName=sub]
1152
+ interface HTMLSubElement : HTMLElement {};
1153
+ [TagName=sup]
1154
+ interface HTMLSupElement : HTMLElement {};
776
1155
 
777
- // the-fieldset-element
778
- [TagName=fieldset]
779
- interface HTMLFieldSetElement : HTMLElement {
780
- attribute boolean disabled;
781
- readonly attribute HTMLFormElement form;
782
- attribute DOMString name;
1156
+ // the-bdo-element
1157
+ [TagName=bdo]
1158
+ interface HTMLBdoElement : HTMLElement {};
783
1159
 
784
- readonly attribute DOMString type;
1160
+ // the-rp-element
1161
+ [TagName=rp]
1162
+ interface HTMLRpElement : HTMLElement {};
785
1163
 
786
- readonly attribute HTMLFormControlsCollection elements;
1164
+ // the-rt-element
1165
+ [TagName=rt]
1166
+ interface HTMLRtElement : HTMLElement {};
787
1167
 
788
- readonly attribute boolean willValidate;
789
- readonly attribute ValidityState validity;
790
- readonly attribute DOMString validationMessage;
791
- boolean checkValidity();
792
- void setCustomValidity(in DOMString error);
793
- };
1168
+ // the-mark-element
1169
+ [TagName=mark]
1170
+ interface HTMLMarkElement : HTMLElement {};
794
1171
 
1172
+ // the-kbd-element
1173
+ [TagName=kbd]
1174
+ interface HTMLKbdElement : HTMLElement {};
795
1175
 
796
- // the-source-element
797
- [TagName=source]
798
- interface HTMLSourceElement : HTMLElement {
799
- attribute DOMString src;
800
- attribute DOMString type;
801
- attribute DOMString media;
802
- };
1176
+ // the-dfn-element
1177
+ [TagName=dfn]
1178
+ interface HTMLDfnElement : HTMLElement {};
803
1179
 
1180
+ // the-cite-element
1181
+ [TagName=cite]
1182
+ interface HTMLCiteElement : HTMLElement {};
804
1183
 
805
- // the-span-element
806
- [TagName=span]
807
- interface HTMLSpanElement : HTMLElement {};
1184
+ // the-ins-element
1185
+ [TagName=ins]
1186
+ interface HTMLInsElement : HTMLModElement {};
808
1187
 
1188
+ // the-b-element
1189
+ [TagName=b]
1190
+ interface HTMLBElement : HTMLElement {};
809
1191
 
810
- // the-ol-element
811
- [TagName=ol]
812
- interface HTMLOListElement : HTMLElement {
813
- attribute boolean reversed;
814
- attribute long start;
815
- };
1192
+ // the-noscript-element
1193
+ [TagName=noscript]
1194
+ interface HTMLNoscriptElement : HTMLElement {};
1195
+
1196
+ // the-figure-element
1197
+ [TagName=figure]
1198
+ interface HTMLFigureElement : HTMLElement {};
1199
+
1200
+ // the-code-element
1201
+ [TagName=code]
1202
+ interface HTMLCodeElement : HTMLElement {};
1203
+
1204
+ // the-q-element
1205
+ [TagName=q]
1206
+ interface HTMLQElement : HTMLQuoteElement {};
1207
+
1208
+ // the-strong-element
1209
+ [TagName=strong]
1210
+ interface HTMLStrongElement : HTMLElement {};
1211
+
1212
+ // the-header-element
1213
+ [TagName=header]
1214
+ interface HTMLHeaderElement : HTMLElement {};
1215
+
1216
+ // the-hgroup-element
1217
+ [TagName=hgroup]
1218
+ interface HTMLHgroupElement : HTMLElement {};
1219
+
1220
+ // the-aside-element
1221
+ [TagName=aside]
1222
+ interface HTMLAsideElement : HTMLElement {};
1223
+
1224
+ // the-samp-element
1225
+ [TagName=samp]
1226
+ interface HTMLSampElement : HTMLElement {};
1227
+
1228
+ // the-section-element
1229
+ [TagName=section]
1230
+ interface HTMLSectionElement : HTMLElement {};
1231
+
1232
+ // the-dt-element
1233
+ [TagName=dt]
1234
+ interface HTMLDtElement : HTMLElement {};
1235
+
1236
+ // the-col-element
1237
+ [TagName=col]
1238
+ interface HTMLColElement : HTMLTableColElement {};
1239
+
1240
+ // the-i-element
1241
+ [TagName=i]
1242
+ interface HTMLIElement : HTMLElement {};
1243
+
1244
+ // the-var-element
1245
+ [TagName=var]
1246
+ interface HTMLVarElement : HTMLElement {};
1247
+
1248
+ // the-abbr-element
1249
+ [TagName=abbr]
1250
+ interface HTMLAbbrElement : HTMLElement {};
1251
+
1252
+ // the-small-element
1253
+ [TagName=small]
1254
+ interface HTMLSmallElement : HTMLElement {};
1255
+
1256
+ // the-footer-element
1257
+ [TagName=footer]
1258
+ interface HTMLFooterElement : HTMLElement {};
1259
+
1260
+ // the-ruby-element
1261
+ [TagName=ruby]
1262
+ interface HTMLRubyElement : HTMLElement {};
1263
+
1264
+ // the-article-element
1265
+ [TagName=article]
1266
+ interface HTMLArticleElement : HTMLElement {};
1267
+
1268
+ // the-del-element
1269
+ [TagName=del]
1270
+ interface HTMLDelElement : HTMLModElement {};
1271
+
1272
+ // the-em-element
1273
+ [TagName=em]
1274
+ interface HTMLEmElement : HTMLElement {};