watir-webdriver 0.0.1.dev5 → 0.0.1.dev6

Sign up to get free protection for your applications and to get access to all the features.
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 {};