webidl 0.1.3 → 0.1.4
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.
- data/.gitignore +2 -0
- data/LICENSE +1 -1
- data/README.md +3 -3
- data/lib/webidl.rb +3 -0
- data/lib/webidl/ast/dictionary.rb +2 -1
- data/lib/webidl/ast/enum.rb +16 -0
- data/lib/webidl/parse_tree/argument.rb +13 -8
- data/lib/webidl/parse_tree/definitions.rb +1 -1
- data/lib/webidl/parse_tree/dictionary.rb +8 -4
- data/lib/webidl/parse_tree/enum.rb +11 -0
- data/lib/webidl/parse_tree/interface.rb +7 -9
- data/lib/webidl/parse_tree/partial_dictionary.rb +22 -0
- data/lib/webidl/parse_tree/partial_interface.rb +8 -0
- data/lib/webidl/parse_tree/type.rb +8 -1
- data/lib/webidl/parser/idl.rb +8029 -0
- data/lib/webidl/parser/idl.treetop +152 -34
- data/lib/webidl/version.rb +1 -1
- data/spec/fixtures/html5.idl +182 -170
- metadata +41 -12
@@ -11,11 +11,12 @@ module WebIDL
|
|
11
11
|
rule Definition
|
12
12
|
Module
|
13
13
|
/ Interface
|
14
|
-
/ PartialInterface
|
15
14
|
/ Dictionary
|
15
|
+
/ Partial
|
16
16
|
/ Exception
|
17
17
|
/ TypeDef
|
18
18
|
/ ImplementsStatement
|
19
|
+
/ Enum
|
19
20
|
end
|
20
21
|
|
21
22
|
rule Module
|
@@ -26,8 +27,17 @@ module WebIDL
|
|
26
27
|
"interface" ws name:identifier ws inherits:Inheritance ws "{" ws members:InterfaceMembers ws "}" ws ";" <ParseTree::Interface>
|
27
28
|
end
|
28
29
|
|
30
|
+
rule Partial
|
31
|
+
"partial" ws defn:PartialDefinition { def build(parent) defn.build(parent) end }
|
32
|
+
end
|
33
|
+
|
34
|
+
rule PartialDefinition
|
35
|
+
PartialInterface / PartialDictionary
|
36
|
+
end
|
37
|
+
|
38
|
+
# like an interface, but no inheritance
|
29
39
|
rule PartialInterface
|
30
|
-
"
|
40
|
+
"interface" ws name:identifier ws "{" ws members:InterfaceMembers ws "}" ws ";" <ParseTree::PartialInterface>
|
31
41
|
end
|
32
42
|
|
33
43
|
rule Inheritance
|
@@ -48,21 +58,27 @@ module WebIDL
|
|
48
58
|
"dictionary" ws name:identifier ws inherits:Inheritance ws "{" ws members:DictionaryMembers ws "}" ws ";" <ParseTree::Dictionary>
|
49
59
|
end
|
50
60
|
|
61
|
+
# Like a dictionary, but no inheritance
|
62
|
+
rule PartialDictionary
|
63
|
+
"dictionary" ws name:identifier ws "{" ws members:DictionaryMembers ws "}" ws ";" <ParseTree::PartialDictionary>
|
64
|
+
end
|
65
|
+
|
51
66
|
# [11] DictionaryMembers → ExtendedAttributeList DictionaryMember DictionaryMembers
|
52
67
|
# | ε
|
53
68
|
rule DictionaryMembers
|
54
69
|
(eal:ExtendedAttributeList ws member:DictionaryMember ws members:DictionaryMembers <ParseTree::DictionaryMembers>)?
|
55
70
|
end
|
56
71
|
|
57
|
-
# [12] DictionaryMember → Type identifier DefaultValue ";"
|
58
72
|
rule DictionaryMember
|
59
|
-
type:Type ws name:identifier ws default:
|
73
|
+
type:Type ws name:identifier ws default:Default ws ";" <ParseTree::DictionaryMember>
|
74
|
+
end
|
75
|
+
|
76
|
+
rule Default
|
77
|
+
("=" ws val:DefaultValue { def build() val.build end })?
|
60
78
|
end
|
61
79
|
|
62
|
-
# [13] DefaultValue → "=" ConstValue
|
63
|
-
# | ε
|
64
80
|
rule DefaultValue
|
65
|
-
|
81
|
+
string / ConstValue
|
66
82
|
end
|
67
83
|
|
68
84
|
rule Exception
|
@@ -87,13 +103,52 @@ module WebIDL
|
|
87
103
|
end
|
88
104
|
|
89
105
|
rule ConstValue
|
90
|
-
|
106
|
+
"null" { def build() nil end }
|
107
|
+
/ BooleanLiteral
|
108
|
+
/ FloatLiteral
|
109
|
+
/ integer
|
91
110
|
end
|
92
111
|
|
93
112
|
rule BooleanLiteral
|
94
113
|
("true" / "false") { def build() text_value == "true" end }
|
95
114
|
end
|
96
115
|
|
116
|
+
rule FloatLiteral
|
117
|
+
float
|
118
|
+
/ "-" "Infinity" { def build() -1.0/0 end }
|
119
|
+
/ "Infinity" { def build() 1.0/0 end }
|
120
|
+
/ "NaN" { def build() Float::NAN end }
|
121
|
+
end
|
122
|
+
|
123
|
+
rule Enum
|
124
|
+
"enum" ws id:identifier ws "{" ws values:EnumValueList ws "}" ws ";" <ParseTree::Enum>
|
125
|
+
end
|
126
|
+
|
127
|
+
rule EnumValueList
|
128
|
+
name:string ws
|
129
|
+
vals:EnumValues
|
130
|
+
ws ","? # trailing commas actually not allowed, but in use
|
131
|
+
{
|
132
|
+
def build()
|
133
|
+
res = [name.build]
|
134
|
+
res += vals.build if vals.any?
|
135
|
+
|
136
|
+
res
|
137
|
+
end
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
141
|
+
rule EnumValues
|
142
|
+
("," ws name:string ws vals:EnumValues {
|
143
|
+
def build()
|
144
|
+
res = [name.build]
|
145
|
+
res += vals.build if vals.any?
|
146
|
+
|
147
|
+
res
|
148
|
+
end
|
149
|
+
})?
|
150
|
+
end
|
151
|
+
|
97
152
|
rule AttributeOrOperation
|
98
153
|
StringifierAttributeOrOperation / Attribute / Operation
|
99
154
|
end
|
@@ -163,15 +218,39 @@ module WebIDL
|
|
163
218
|
end
|
164
219
|
|
165
220
|
rule Argument
|
166
|
-
eal:ExtendedAttributeList ws
|
221
|
+
eal:ExtendedAttributeList ws "in"? ws arg:OptionalOrRequiredArgument <ParseTree::Argument>
|
222
|
+
end
|
223
|
+
|
224
|
+
rule OptionalOrRequiredArgument
|
225
|
+
optional:"optional" ws type:Type ws name:ArgumentName ws default:Default
|
226
|
+
/ type:Type ws variadic:Ellipsis ws name:ArgumentName
|
167
227
|
end
|
168
228
|
|
169
|
-
|
170
|
-
|
229
|
+
|
230
|
+
rule ArgumentName
|
231
|
+
ArgumentNameKeyword { def build() text_value end } / identifier
|
171
232
|
end
|
172
233
|
|
173
|
-
rule
|
174
|
-
"
|
234
|
+
rule ArgumentNameKeyword
|
235
|
+
"attribute"
|
236
|
+
/ "callback"
|
237
|
+
/ "const"
|
238
|
+
/ "creator"
|
239
|
+
/ "deleter"
|
240
|
+
/ "dictionary"
|
241
|
+
/ "enum"
|
242
|
+
/ "exception"
|
243
|
+
/ "getter"
|
244
|
+
/ "implements"
|
245
|
+
/ "inherit"
|
246
|
+
/ "interface"
|
247
|
+
/ "legacycaller"
|
248
|
+
/ "partial"
|
249
|
+
/ "setter"
|
250
|
+
/ "static"
|
251
|
+
/ "stringifier"
|
252
|
+
/ "typedef"
|
253
|
+
/ "unrestricted"
|
175
254
|
end
|
176
255
|
|
177
256
|
rule Ellipsis
|
@@ -304,36 +383,61 @@ module WebIDL
|
|
304
383
|
end
|
305
384
|
|
306
385
|
rule Type
|
307
|
-
|
386
|
+
SingleType
|
387
|
+
/ type:UnionType suffix:TypeSuffix <ParseTree::Type>
|
308
388
|
end
|
309
389
|
|
310
|
-
rule
|
311
|
-
|
390
|
+
rule SingleType
|
391
|
+
NonAnyType
|
392
|
+
/ type:"any" suffix:TypeSuffixStartingWithArray <ParseTree::Type>
|
393
|
+
end
|
394
|
+
|
395
|
+
rule UnionType
|
396
|
+
"(" ws UnionMemberType ws "or" ws UnionMemberType ws UnionMemberTypes ws ")"
|
312
397
|
end
|
313
398
|
|
314
|
-
rule
|
315
|
-
|
316
|
-
/ type:
|
399
|
+
rule UnionMemberType
|
400
|
+
NonAnyType
|
401
|
+
/ type:UnionType suffix:TypeSuffix <ParseTree::Type>
|
402
|
+
/ type:"any" suffix:TypeSuffixStartingWithArray <ParseTree::Type>
|
403
|
+
end
|
404
|
+
|
405
|
+
rule UnionMemberTypes
|
406
|
+
("or" ws UnionMemberType ws UnionMemberTypes)?
|
407
|
+
end
|
408
|
+
|
409
|
+
rule NonAnyType
|
410
|
+
type:PrimitiveType suffix:TypeSuffix <ParseTree::Type>
|
411
|
+
# added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other identifiers would break parsing
|
412
|
+
/ type:"DOMString" suffix:TypeSuffix !NonSpace <ParseTree::Type>
|
413
|
+
/ "sequence" ws "<" ws type:Type ws ">" null:Null <ParseTree::SequenceType>
|
317
414
|
/ type:"object" suffix:TypeSuffix <ParseTree::Type>
|
318
415
|
/ type:"Date" suffix:TypeSuffix <ParseTree::Type>
|
319
|
-
/ type:
|
416
|
+
/ type:identifier suffix:TypeSuffix <ParseTree::Type>
|
417
|
+
end
|
418
|
+
|
419
|
+
rule ConstType
|
420
|
+
PrimitiveType Null
|
421
|
+
/ identifier Null
|
320
422
|
end
|
321
423
|
|
322
|
-
# added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other
|
323
|
-
rule
|
424
|
+
# added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other identifiers would break parsing
|
425
|
+
rule PrimitiveType
|
324
426
|
(UnsignedIntegerType
|
325
|
-
/
|
326
|
-
/ "
|
327
|
-
/ "
|
328
|
-
/ "
|
329
|
-
/ "double" !NonSpace
|
330
|
-
/ "DOMString" !NonSpace) {
|
427
|
+
/ UnrestrictedFloatType
|
428
|
+
/ "boolean" !NonSpace
|
429
|
+
/ "byte" !NonSpace
|
430
|
+
/ "octet" !NonSpace) {
|
331
431
|
def build(parent)
|
332
432
|
Ast::Type.new(parent, text_value)
|
333
433
|
end
|
334
434
|
}
|
335
435
|
end
|
336
436
|
|
437
|
+
rule Null
|
438
|
+
"?"?
|
439
|
+
end
|
440
|
+
|
337
441
|
rule TypeSuffix
|
338
442
|
(
|
339
443
|
array:("[" ws "]") suffix:TypeSuffix <ParseTree::TypeSuffix>
|
@@ -349,6 +453,15 @@ module WebIDL
|
|
349
453
|
"unsigned" ws IntegerType / IntegerType
|
350
454
|
end
|
351
455
|
|
456
|
+
rule UnrestrictedFloatType
|
457
|
+
"unrestricted" ws FloatType
|
458
|
+
/ FloatType
|
459
|
+
end
|
460
|
+
|
461
|
+
rule FloatType
|
462
|
+
"float" / "double"
|
463
|
+
end
|
464
|
+
|
352
465
|
rule IntegerType
|
353
466
|
("short" / "long" ws OptionalLong)
|
354
467
|
end
|
@@ -357,10 +470,6 @@ module WebIDL
|
|
357
470
|
"long"?
|
358
471
|
end
|
359
472
|
|
360
|
-
rule Nullable
|
361
|
-
"?"?
|
362
|
-
end
|
363
|
-
|
364
473
|
rule Array
|
365
474
|
("[" ws "]")?
|
366
475
|
end
|
@@ -418,11 +527,20 @@ module WebIDL
|
|
418
527
|
end
|
419
528
|
|
420
529
|
rule identifier
|
421
|
-
[A-Z_a-z] [0-9A-Z_a-z]* { def build() text_value[/^_?(.+)/, 1] end }
|
530
|
+
[A-Z_a-z] [0-9A-Z_a-z]* { def build(parent = nil) text_value[/^_?(.+)/, 1] end }
|
422
531
|
end
|
423
532
|
|
424
533
|
rule string
|
425
|
-
|
534
|
+
# spec only allows double quotes, but single quotes are used in the HTML spec
|
535
|
+
double_quoted_string / single_quoted_string
|
536
|
+
end
|
537
|
+
|
538
|
+
rule double_quoted_string
|
539
|
+
"\"" data:[^"]* "\"" { def build() data.text_value end }
|
540
|
+
end
|
541
|
+
|
542
|
+
rule single_quoted_string
|
543
|
+
"'" data:[^']* "'" { def build() data.text_value end }
|
426
544
|
end
|
427
545
|
|
428
546
|
rule ws
|
data/lib/webidl/version.rb
CHANGED
data/spec/fixtures/html5.idl
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
interface Example {
|
2
|
+
// this is an IDL definition
|
3
|
+
};
|
1
4
|
|
2
5
|
interface HTMLAllCollection : HTMLCollection {
|
3
|
-
// inherits length and item()
|
6
|
+
// inherits length and item(unsigned long index)
|
7
|
+
object? item(DOMString name);
|
4
8
|
legacycaller getter object? namedItem(DOMString name); // overrides inherited namedItem()
|
5
9
|
HTMLAllCollection tags(DOMString tagName);
|
6
10
|
};
|
@@ -19,10 +23,7 @@ interface HTMLOptionsCollection : HTMLCollection {
|
|
19
23
|
attribute unsigned long length; // overrides inherited length
|
20
24
|
legacycaller getter object? namedItem(DOMString name); // overrides inherited namedItem()
|
21
25
|
setter creator void (unsigned long index, HTMLOptionElement option);
|
22
|
-
void add(HTMLOptionElement element, optional HTMLElement? before);
|
23
|
-
void add(HTMLOptGroupElement element, optional HTMLElement? before);
|
24
|
-
void add(HTMLOptionElement element, long before);
|
25
|
-
void add(HTMLOptGroupElement element, long before);
|
26
|
+
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
|
26
27
|
void remove(long index);
|
27
28
|
attribute long selectedIndex;
|
28
29
|
};
|
@@ -108,10 +109,12 @@ partial interface Document {
|
|
108
109
|
// event handler IDL attributes
|
109
110
|
[TreatNonCallableAsNull] attribute Function? onabort;
|
110
111
|
[TreatNonCallableAsNull] attribute Function? onblur;
|
112
|
+
[TreatNonCallableAsNull] attribute Function? oncancel;
|
111
113
|
[TreatNonCallableAsNull] attribute Function? oncanplay;
|
112
114
|
[TreatNonCallableAsNull] attribute Function? oncanplaythrough;
|
113
115
|
[TreatNonCallableAsNull] attribute Function? onchange;
|
114
116
|
[TreatNonCallableAsNull] attribute Function? onclick;
|
117
|
+
[TreatNonCallableAsNull] attribute Function? onclose;
|
115
118
|
[TreatNonCallableAsNull] attribute Function? oncontextmenu;
|
116
119
|
[TreatNonCallableAsNull] attribute Function? oncuechange;
|
117
120
|
[TreatNonCallableAsNull] attribute Function? ondblclick;
|
@@ -172,6 +175,7 @@ interface HTMLElement : Element {
|
|
172
175
|
// metadata attributes
|
173
176
|
attribute DOMString title;
|
174
177
|
attribute DOMString lang;
|
178
|
+
attribute boolean translate;
|
175
179
|
attribute DOMString dir;
|
176
180
|
attribute DOMString className;
|
177
181
|
readonly attribute DOMTokenList classList;
|
@@ -215,10 +219,12 @@ interface HTMLElement : Element {
|
|
215
219
|
// event handler IDL attributes
|
216
220
|
[TreatNonCallableAsNull] attribute Function? onabort;
|
217
221
|
[TreatNonCallableAsNull] attribute Function? onblur;
|
222
|
+
[TreatNonCallableAsNull] attribute Function? oncancel;
|
218
223
|
[TreatNonCallableAsNull] attribute Function? oncanplay;
|
219
224
|
[TreatNonCallableAsNull] attribute Function? oncanplaythrough;
|
220
225
|
[TreatNonCallableAsNull] attribute Function? onchange;
|
221
226
|
[TreatNonCallableAsNull] attribute Function? onclick;
|
227
|
+
[TreatNonCallableAsNull] attribute Function? onclose;
|
222
228
|
[TreatNonCallableAsNull] attribute Function? oncontextmenu;
|
223
229
|
[TreatNonCallableAsNull] attribute Function? oncuechange;
|
224
230
|
[TreatNonCallableAsNull] attribute Function? ondblclick;
|
@@ -396,6 +402,10 @@ interface HTMLDataElement : HTMLElement {
|
|
396
402
|
attribute DOMString value;
|
397
403
|
};
|
398
404
|
|
405
|
+
interface HTMLTimeElement : HTMLElement {
|
406
|
+
attribute DOMString datetime;
|
407
|
+
};
|
408
|
+
|
399
409
|
interface HTMLSpanElement : HTMLElement {};
|
400
410
|
|
401
411
|
interface HTMLBRElement : HTMLElement {};
|
@@ -438,6 +448,7 @@ interface HTMLEmbedElement : HTMLElement {
|
|
438
448
|
attribute DOMString type;
|
439
449
|
attribute DOMString width;
|
440
450
|
attribute DOMString height;
|
451
|
+
legacycaller any (any... arguments);
|
441
452
|
};
|
442
453
|
|
443
454
|
interface HTMLObjectElement : HTMLElement {
|
@@ -457,6 +468,8 @@ interface HTMLObjectElement : HTMLElement {
|
|
457
468
|
readonly attribute DOMString validationMessage;
|
458
469
|
boolean checkValidity();
|
459
470
|
void setCustomValidity(DOMString error);
|
471
|
+
|
472
|
+
legacycaller any (any... arguments);
|
460
473
|
};
|
461
474
|
|
462
475
|
interface HTMLParamElement : HTMLElement {
|
@@ -528,9 +541,8 @@ interface HTMLMediaElement : HTMLElement {
|
|
528
541
|
|
529
542
|
// playback state
|
530
543
|
attribute double currentTime;
|
531
|
-
readonly attribute double initialTime;
|
532
544
|
readonly attribute double duration;
|
533
|
-
readonly attribute Date
|
545
|
+
readonly attribute Date startDate;
|
534
546
|
readonly attribute boolean paused;
|
535
547
|
attribute double defaultPlaybackRate;
|
536
548
|
attribute double playbackRate;
|
@@ -567,7 +579,7 @@ interface MediaError {
|
|
567
579
|
readonly attribute unsigned short code;
|
568
580
|
};
|
569
581
|
|
570
|
-
interface AudioTrackList {
|
582
|
+
interface AudioTrackList : EventTarget {
|
571
583
|
readonly attribute unsigned long length;
|
572
584
|
getter AudioTrack (unsigned long index);
|
573
585
|
AudioTrack? getTrackById(DOMString id);
|
@@ -584,7 +596,7 @@ interface AudioTrack {
|
|
584
596
|
attribute boolean enabled;
|
585
597
|
};
|
586
598
|
|
587
|
-
interface VideoTrackList {
|
599
|
+
interface VideoTrackList : EventTarget {
|
588
600
|
readonly attribute unsigned long length;
|
589
601
|
getter VideoTrack (unsigned long index);
|
590
602
|
VideoTrack? getTrackById(DOMString id);
|
@@ -637,22 +649,20 @@ interface MediaController {
|
|
637
649
|
[TreatNonCallableAsNull] attribute Function? onvolumechange;
|
638
650
|
};
|
639
651
|
|
640
|
-
interface TextTrackList {
|
652
|
+
interface TextTrackList : EventTarget {
|
641
653
|
readonly attribute unsigned long length;
|
642
654
|
getter TextTrack (unsigned long index);
|
643
655
|
|
644
656
|
[TreatNonCallableAsNull] attribute Function? onaddtrack;
|
645
657
|
};
|
646
658
|
|
659
|
+
enum TextTrackMode { "disabled", "hidden", "showing" };
|
647
660
|
interface TextTrack : EventTarget {
|
648
661
|
readonly attribute DOMString kind;
|
649
662
|
readonly attribute DOMString label;
|
650
663
|
readonly attribute DOMString language;
|
651
664
|
|
652
|
-
|
653
|
-
const unsigned short HIDDEN = 1;
|
654
|
-
const unsigned short SHOWING = 2;
|
655
|
-
attribute unsigned short mode;
|
665
|
+
attribute TextTrackMode mode;
|
656
666
|
|
657
667
|
readonly attribute TextTrackCueList? cues;
|
658
668
|
readonly attribute TextTrackCueList? activeCues;
|
@@ -678,13 +688,13 @@ interface TextTrackCue : EventTarget {
|
|
678
688
|
attribute double startTime;
|
679
689
|
attribute double endTime;
|
680
690
|
attribute boolean pauseOnExit;
|
681
|
-
attribute DOMString
|
691
|
+
attribute DOMString vertical;
|
682
692
|
attribute boolean snapToLines;
|
683
|
-
attribute long
|
684
|
-
attribute long
|
693
|
+
attribute long line;
|
694
|
+
attribute long position;
|
685
695
|
attribute long size;
|
686
|
-
attribute DOMString
|
687
|
-
attribute DOMString
|
696
|
+
attribute DOMString align;
|
697
|
+
attribute DOMString text;
|
688
698
|
DocumentFragment getCueAsHTML();
|
689
699
|
|
690
700
|
[TreatNonCallableAsNull] attribute Function? onenter;
|
@@ -703,7 +713,7 @@ interface TrackEvent : Event {
|
|
703
713
|
};
|
704
714
|
|
705
715
|
dictionary TrackEventInit : EventInit {
|
706
|
-
object?
|
716
|
+
object? track;
|
707
717
|
};
|
708
718
|
|
709
719
|
interface HTMLCanvasElement : HTMLElement {
|
@@ -711,7 +721,7 @@ interface HTMLCanvasElement : HTMLElement {
|
|
711
721
|
attribute unsigned long height;
|
712
722
|
|
713
723
|
DOMString toDataURL(optional DOMString type, any... args);
|
714
|
-
void toBlob(FileCallback?
|
724
|
+
void toBlob(FileCallback? _callback, optional DOMString type, any... args);
|
715
725
|
|
716
726
|
object? getContext(DOMString contextId, any... args);
|
717
727
|
};
|
@@ -726,30 +736,24 @@ interface CanvasRenderingContext2D {
|
|
726
736
|
void restore(); // pop state stack and restore state
|
727
737
|
|
728
738
|
// transformations (default transform is the identity matrix)
|
739
|
+
attribute SVGMatrix currentTransform;
|
729
740
|
void scale(double x, double y);
|
730
741
|
void rotate(double angle);
|
731
742
|
void translate(double x, double y);
|
732
743
|
void transform(double a, double b, double c, double d, double e, double f);
|
733
744
|
void setTransform(double a, double b, double c, double d, double e, double f);
|
745
|
+
void resetTransform();
|
734
746
|
|
735
747
|
// compositing
|
736
748
|
attribute double globalAlpha; // (default 1.0)
|
737
749
|
attribute DOMString globalCompositeOperation; // (default source-over)
|
738
750
|
|
739
|
-
// colors and styles
|
751
|
+
// colors and styles (see also the CanvasDrawingStyles interface)
|
740
752
|
attribute any strokeStyle; // (default black)
|
741
753
|
attribute any fillStyle; // (default black)
|
742
754
|
CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
|
743
755
|
CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
|
744
|
-
CanvasPattern createPattern(HTMLImageElement image, DOMString repetition);
|
745
|
-
CanvasPattern createPattern(HTMLCanvasElement image, DOMString repetition);
|
746
|
-
CanvasPattern createPattern(HTMLVideoElement image, DOMString repetition);
|
747
|
-
|
748
|
-
// line caps/joins
|
749
|
-
attribute double lineWidth; // (default 1)
|
750
|
-
attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
|
751
|
-
attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
|
752
|
-
attribute double miterLimit; // (default 10)
|
756
|
+
CanvasPattern createPattern((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, DOMString repetition);
|
753
757
|
|
754
758
|
// shadows
|
755
759
|
attribute double shadowOffsetX; // (default 0)
|
@@ -762,42 +766,37 @@ interface CanvasRenderingContext2D {
|
|
762
766
|
void fillRect(double x, double y, double w, double h);
|
763
767
|
void strokeRect(double x, double y, double w, double h);
|
764
768
|
|
765
|
-
// path API
|
769
|
+
// path API (see also CanvasPathMethods)
|
766
770
|
void beginPath();
|
767
|
-
void closePath();
|
768
|
-
void moveTo(double x, double y);
|
769
|
-
void lineTo(double x, double y);
|
770
|
-
void quadraticCurveTo(double cpx, double cpy, double x, double y);
|
771
|
-
void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
|
772
|
-
void arcTo(double x1, double y1, double x2, double y2, double radius);
|
773
|
-
void rect(double x, double y, double w, double h);
|
774
|
-
void arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean anticlockwise);
|
775
771
|
void fill();
|
772
|
+
void fill(Path path);
|
776
773
|
void stroke();
|
774
|
+
void stroke(Path path);
|
777
775
|
void drawSystemFocusRing(Element element);
|
776
|
+
void drawSystemFocusRing(Path path, Element element);
|
778
777
|
boolean drawCustomFocusRing(Element element);
|
778
|
+
boolean drawCustomFocusRing(Path path, Element element);
|
779
779
|
void scrollPathIntoView();
|
780
|
+
void scrollPathIntoView(Path path);
|
780
781
|
void clip();
|
782
|
+
void clip(Path path);
|
783
|
+
void resetClip();
|
781
784
|
boolean isPointInPath(double x, double y);
|
785
|
+
boolean isPointInPath(Path path, double x, double y);
|
782
786
|
|
783
|
-
// text
|
784
|
-
attribute DOMString font; // (default 10px sans-serif)
|
785
|
-
attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
|
786
|
-
attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
|
787
|
+
// text (see also the CanvasDrawingStyles interface)
|
787
788
|
void fillText(DOMString text, double x, double y, optional double maxWidth);
|
788
789
|
void strokeText(DOMString text, double x, double y, optional double maxWidth);
|
789
790
|
TextMetrics measureText(DOMString text);
|
790
791
|
|
791
792
|
// drawing images
|
792
|
-
|
793
|
-
void drawImage(HTMLImageElement
|
794
|
-
void drawImage(HTMLImageElement
|
795
|
-
void drawImage(HTMLCanvasElement image, double dx, double dy);
|
796
|
-
|
797
|
-
|
798
|
-
void
|
799
|
-
void drawImage(HTMLVideoElement image, double dx, double dy, double dw, double dh);
|
800
|
-
void drawImage(HTMLVideoElement image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
|
793
|
+
attribute boolean imageSmoothingEnabled; // (default true)
|
794
|
+
void drawImage((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, double dx, double dy);
|
795
|
+
void drawImage((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, double dx, double dy, double dw, double dh);
|
796
|
+
void drawImage((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
|
797
|
+
|
798
|
+
// hit regions
|
799
|
+
void addHitRegion(HitRegionOptions options);
|
801
800
|
|
802
801
|
// pixel manipulation
|
803
802
|
ImageData createImageData(double sw, double sh);
|
@@ -806,6 +805,42 @@ interface CanvasRenderingContext2D {
|
|
806
805
|
void putImageData(ImageData imagedata, double dx, double dy);
|
807
806
|
void putImageData(ImageData imagedata, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight);
|
808
807
|
};
|
808
|
+
CanvasRenderingContext2D implements CanvasDrawingStyles;
|
809
|
+
CanvasRenderingContext2D implements CanvasPathMethods;
|
810
|
+
|
811
|
+
[NoInterfaceObject]
|
812
|
+
interface CanvasDrawingStyles {
|
813
|
+
// line caps/joins
|
814
|
+
attribute double lineWidth; // (default 1)
|
815
|
+
attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
|
816
|
+
attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
|
817
|
+
attribute double miterLimit; // (default 10)
|
818
|
+
|
819
|
+
// dashed lines
|
820
|
+
void setLineDash(sequence<double> segments); // default empty
|
821
|
+
sequence<double> getLineDash();
|
822
|
+
attribute double lineDashOffset;
|
823
|
+
|
824
|
+
// text
|
825
|
+
attribute DOMString font; // (default 10px sans-serif)
|
826
|
+
attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
|
827
|
+
attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
|
828
|
+
};
|
829
|
+
|
830
|
+
[NoInterfaceObject]
|
831
|
+
interface CanvasPathMethods {
|
832
|
+
// shared path API methods
|
833
|
+
void closePath();
|
834
|
+
void moveTo(double x, double y);
|
835
|
+
void lineTo(double x, double y);
|
836
|
+
void quadraticCurveTo(double cpx, double cpy, double x, double y);
|
837
|
+
void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
|
838
|
+
void arcTo(double x1, double y1, double x2, double y2, double radius);
|
839
|
+
void arcTo(double x1, double y1, double x2, double y2, double radiusX, double radiusY, double rotation);
|
840
|
+
void rect(double x, double y, double w, double h);
|
841
|
+
void arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean anticlockwise = false);
|
842
|
+
void ellipse(double x, double y, double radiusX, double radiusY, double rotation, double startAngle, double endAngle, boolean anticlockwise);
|
843
|
+
};
|
809
844
|
|
810
845
|
interface CanvasGradient {
|
811
846
|
// opaque object
|
@@ -814,10 +849,37 @@ interface CanvasGradient {
|
|
814
849
|
|
815
850
|
interface CanvasPattern {
|
816
851
|
// opaque object
|
852
|
+
void setTransform(SVGMatrix transform);
|
817
853
|
};
|
818
854
|
|
819
855
|
interface TextMetrics {
|
820
|
-
|
856
|
+
// x-direction
|
857
|
+
readonly attribute double width; // advance width
|
858
|
+
readonly attribute double actualBoundingBoxLeft;
|
859
|
+
readonly attribute double actualBoundingBoxRight;
|
860
|
+
|
861
|
+
// y-direction
|
862
|
+
readonly attribute double fontBoundingBoxAscent;
|
863
|
+
readonly attribute double fontBoundingBoxDescent;
|
864
|
+
readonly attribute double actualBoundingBoxAscent;
|
865
|
+
readonly attribute double actualBoundingBoxDescent;
|
866
|
+
readonly attribute double emHeightAscent;
|
867
|
+
readonly attribute double emHeightDescent;
|
868
|
+
readonly attribute double hangingBaseline;
|
869
|
+
readonly attribute double alphabeticBaseline;
|
870
|
+
readonly attribute double ideographicBaseline;
|
871
|
+
};
|
872
|
+
|
873
|
+
dictionary HitRegionOptions {
|
874
|
+
Path? path = null;
|
875
|
+
DOMString id = '';
|
876
|
+
DOMString? parentID = null;
|
877
|
+
DOMString cursor = 'inherit';
|
878
|
+
// for control-backed regions:
|
879
|
+
Element? control = null;
|
880
|
+
// for unbacked regions:
|
881
|
+
DOMString? label = null;
|
882
|
+
DOMString? role = null;
|
821
883
|
};
|
822
884
|
|
823
885
|
interface ImageData {
|
@@ -826,6 +888,31 @@ interface ImageData {
|
|
826
888
|
readonly attribute Uint8ClampedArray data;
|
827
889
|
};
|
828
890
|
|
891
|
+
[Constructor(optional Element scope)]
|
892
|
+
interface DrawingStyle { };
|
893
|
+
DrawingStyle implements CanvasDrawingStyles;
|
894
|
+
|
895
|
+
[Constructor,
|
896
|
+
Constructor(Path path),
|
897
|
+
Constructor(DOMString d)]
|
898
|
+
interface Path {
|
899
|
+
void addPath(Path path, SVGMatrix? transformation);
|
900
|
+
void addPathByStrokingPath(Path path, CanvasDrawingStyles styles, SVGMatrix? transformation);
|
901
|
+
void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, double x, double y, optional double maxWidth);
|
902
|
+
void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, double x, double y, optional double maxWidth);
|
903
|
+
void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path path, optional double maxWidth);
|
904
|
+
void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path path, optional double maxWidth);
|
905
|
+
};
|
906
|
+
Path implements CanvasPathMethods;
|
907
|
+
|
908
|
+
partial interface MouseEvent {
|
909
|
+
readonly attribute DOMString? region;
|
910
|
+
};
|
911
|
+
|
912
|
+
partial dictionary MouseEventInit {
|
913
|
+
DOMString? region;
|
914
|
+
};
|
915
|
+
|
829
916
|
interface HTMLMapElement : HTMLElement {
|
830
917
|
attribute DOMString name;
|
831
918
|
readonly attribute HTMLCollection areas;
|
@@ -991,7 +1078,7 @@ interface HTMLInputElement : HTMLElement {
|
|
991
1078
|
attribute DOMString type;
|
992
1079
|
attribute DOMString defaultValue;
|
993
1080
|
attribute DOMString value;
|
994
|
-
attribute Date valueAsDate;
|
1081
|
+
attribute Date? valueAsDate;
|
995
1082
|
attribute double valueAsNumber;
|
996
1083
|
attribute unsigned long width;
|
997
1084
|
|
@@ -1010,6 +1097,10 @@ interface HTMLInputElement : HTMLElement {
|
|
1010
1097
|
attribute unsigned long selectionStart;
|
1011
1098
|
attribute unsigned long selectionEnd;
|
1012
1099
|
attribute DOMString selectionDirection;
|
1100
|
+
|
1101
|
+
void setRangeText(DOMString replacement);
|
1102
|
+
void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode);
|
1103
|
+
|
1013
1104
|
void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
|
1014
1105
|
};
|
1015
1106
|
|
@@ -1050,10 +1141,7 @@ interface HTMLSelectElement : HTMLElement {
|
|
1050
1141
|
attribute unsigned long length;
|
1051
1142
|
getter Element item(unsigned long index);
|
1052
1143
|
object namedItem(DOMString name);
|
1053
|
-
void add(HTMLOptionElement element, optional HTMLElement? before);
|
1054
|
-
void add(HTMLOptGroupElement element, optional HTMLElement? before);
|
1055
|
-
void add(HTMLOptionElement element, long before);
|
1056
|
-
void add(HTMLOptGroupElement element, long before);
|
1144
|
+
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
|
1057
1145
|
void remove(long index);
|
1058
1146
|
setter creator void (unsigned long index, HTMLOptionElement option);
|
1059
1147
|
|
@@ -1127,6 +1215,10 @@ interface HTMLTextAreaElement : HTMLElement {
|
|
1127
1215
|
attribute unsigned long selectionStart;
|
1128
1216
|
attribute unsigned long selectionEnd;
|
1129
1217
|
attribute DOMString selectionDirection;
|
1218
|
+
|
1219
|
+
void setRangeText(DOMString replacement);
|
1220
|
+
void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode);
|
1221
|
+
|
1130
1222
|
void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
|
1131
1223
|
};
|
1132
1224
|
|
@@ -1184,6 +1276,14 @@ interface HTMLMeterElement : HTMLElement {
|
|
1184
1276
|
readonly attribute NodeList labels;
|
1185
1277
|
};
|
1186
1278
|
|
1279
|
+
|
1280
|
+
enum SelectionMode {
|
1281
|
+
'select',
|
1282
|
+
'start',
|
1283
|
+
'end',
|
1284
|
+
'preserve',
|
1285
|
+
};
|
1286
|
+
|
1187
1287
|
interface ValidityState {
|
1188
1288
|
readonly attribute boolean valueMissing;
|
1189
1289
|
readonly attribute boolean typeMismatch;
|
@@ -1207,6 +1307,7 @@ interface HTMLCommandElement : HTMLElement {
|
|
1207
1307
|
attribute boolean disabled;
|
1208
1308
|
attribute boolean checked;
|
1209
1309
|
attribute DOMString radiogroup;
|
1310
|
+
readonly attribute HTMLElement? command;
|
1210
1311
|
};
|
1211
1312
|
|
1212
1313
|
interface HTMLMenuElement : HTMLElement {
|
@@ -1214,6 +1315,14 @@ interface HTMLMenuElement : HTMLElement {
|
|
1214
1315
|
attribute DOMString label;
|
1215
1316
|
};
|
1216
1317
|
|
1318
|
+
interface HTMLDialogElement : HTMLElement {
|
1319
|
+
attribute boolean open;
|
1320
|
+
attribute DOMString returnValue;
|
1321
|
+
void show(optional (MouseEvent or Element) anchor);
|
1322
|
+
void showModal(optional (MouseEvent or Element) anchor);
|
1323
|
+
void close(optional DOMString returnValue);
|
1324
|
+
};
|
1325
|
+
|
1217
1326
|
[ReplaceableNamedProperties]
|
1218
1327
|
interface Window : EventTarget {
|
1219
1328
|
// the current browsing context
|
@@ -1242,7 +1351,7 @@ interface Window : EventTarget {
|
|
1242
1351
|
[Replaceable] readonly attribute WindowProxy frames;
|
1243
1352
|
[Replaceable] readonly attribute unsigned long length;
|
1244
1353
|
[Unforgeable] readonly attribute WindowProxy top;
|
1245
|
-
attribute WindowProxy opener;
|
1354
|
+
attribute WindowProxy? opener;
|
1246
1355
|
readonly attribute WindowProxy parent;
|
1247
1356
|
readonly attribute Element? frameElement;
|
1248
1357
|
WindowProxy open(optional DOMString url, optional DOMString target, optional DOMString features, optional boolean replace);
|
@@ -1270,10 +1379,12 @@ interface Window : EventTarget {
|
|
1270
1379
|
[TreatNonCallableAsNull] attribute Function? onbeforeprint;
|
1271
1380
|
[TreatNonCallableAsNull] attribute Function? onbeforeunload;
|
1272
1381
|
[TreatNonCallableAsNull] attribute Function? onblur;
|
1382
|
+
[TreatNonCallableAsNull] attribute Function? oncancel;
|
1273
1383
|
[TreatNonCallableAsNull] attribute Function? oncanplay;
|
1274
1384
|
[TreatNonCallableAsNull] attribute Function? oncanplaythrough;
|
1275
1385
|
[TreatNonCallableAsNull] attribute Function? onchange;
|
1276
1386
|
[TreatNonCallableAsNull] attribute Function? onclick;
|
1387
|
+
[TreatNonCallableAsNull] attribute Function? onclose;
|
1277
1388
|
[TreatNonCallableAsNull] attribute Function? oncontextmenu;
|
1278
1389
|
[TreatNonCallableAsNull] attribute Function? oncuechange;
|
1279
1390
|
[TreatNonCallableAsNull] attribute Function? ondblclick;
|
@@ -1523,11 +1634,11 @@ interface DataTransferItemList {
|
|
1523
1634
|
interface DataTransferItem {
|
1524
1635
|
readonly attribute DOMString kind;
|
1525
1636
|
readonly attribute DOMString type;
|
1526
|
-
void getAsString(FunctionStringCallback?
|
1637
|
+
void getAsString(FunctionStringCallback? _callback);
|
1527
1638
|
File? getAsFile();
|
1528
1639
|
};
|
1529
1640
|
|
1530
|
-
[Callback
|
1641
|
+
[Callback, NoInterfaceObject]
|
1531
1642
|
interface FunctionStringCallback {
|
1532
1643
|
void handleEvent(DOMString data);
|
1533
1644
|
};
|
@@ -1541,104 +1652,6 @@ dictionary DragEventInit : MouseEventInit {
|
|
1541
1652
|
DataTransfer? dataTransfer;
|
1542
1653
|
};
|
1543
1654
|
|
1544
|
-
[NoInterfaceObject]
|
1545
|
-
interface NavigatorUserMedia {
|
1546
|
-
void getUserMedia(DOMString options, NavigatorUserMediaSuccessCallback? successCallback, optional NavigatorUserMediaErrorCallback? errorCallback);
|
1547
|
-
};
|
1548
|
-
Navigator implements NavigatorUserMedia;
|
1549
|
-
|
1550
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1551
|
-
interface NavigatorUserMediaSuccessCallback {
|
1552
|
-
void handleEvent(LocalMediaStream stream);
|
1553
|
-
};
|
1554
|
-
|
1555
|
-
[NoInterfaceObject]
|
1556
|
-
interface NavigatorUserMediaError {
|
1557
|
-
const unsigned short PERMISSION_DENIED = 1;
|
1558
|
-
readonly attribute unsigned short code;
|
1559
|
-
};
|
1560
|
-
|
1561
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1562
|
-
interface NavigatorUserMediaErrorCallback {
|
1563
|
-
void handleEvent(NavigatorUserMediaError error);
|
1564
|
-
};
|
1565
|
-
|
1566
|
-
[Constructor(MediaStream parentStream)]
|
1567
|
-
interface MediaStream : EventTarget {
|
1568
|
-
readonly attribute DOMString label;
|
1569
|
-
readonly attribute MediaStreamTrack[] tracks;
|
1570
|
-
|
1571
|
-
MediaStreamRecorder record();
|
1572
|
-
|
1573
|
-
const unsigned short LIVE = 1;
|
1574
|
-
const unsigned short ENDED = 2;
|
1575
|
-
readonly attribute unsigned short readyState;
|
1576
|
-
[TreatNonCallableAsNull] attribute Function? onended;
|
1577
|
-
};
|
1578
|
-
|
1579
|
-
interface LocalMediaStream : MediaStream {
|
1580
|
-
void stop();
|
1581
|
-
};
|
1582
|
-
|
1583
|
-
interface MediaStreamTrack {
|
1584
|
-
readonly attribute DOMString kind;
|
1585
|
-
readonly attribute DOMString label;
|
1586
|
-
attribute boolean enabled;
|
1587
|
-
};
|
1588
|
-
|
1589
|
-
interface MediaStreamRecorder {
|
1590
|
-
void getRecordedData(BlobCallback? callback);
|
1591
|
-
};
|
1592
|
-
|
1593
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1594
|
-
interface BlobCallback {
|
1595
|
-
void handleEvent(Blob blob);
|
1596
|
-
};
|
1597
|
-
|
1598
|
-
partial interface URL {
|
1599
|
-
static DOMString createObjectURL(MediaStream stream);
|
1600
|
-
};
|
1601
|
-
|
1602
|
-
[Constructor(DOMString serverConfiguration, SignalingCallback signalingCallback)]
|
1603
|
-
interface PeerConnection : EventTarget {
|
1604
|
-
void processSignalingMessage(DOMString message);
|
1605
|
-
|
1606
|
-
const unsigned short NEW = 0;
|
1607
|
-
const unsigned short NEGOTIATING = 1;
|
1608
|
-
const unsigned short ACTIVE = 2;
|
1609
|
-
const unsigned short CLOSED = 3;
|
1610
|
-
readonly attribute unsigned short readyState;
|
1611
|
-
|
1612
|
-
void send(DOMString text);
|
1613
|
-
void addStream(MediaStream stream);
|
1614
|
-
void removeStream(MediaStream stream);
|
1615
|
-
readonly attribute MediaStream[] localStreams;
|
1616
|
-
readonly attribute MediaStream[] remoteStreams;
|
1617
|
-
|
1618
|
-
void close();
|
1619
|
-
|
1620
|
-
// connection quality information
|
1621
|
-
[TreatNonCallableAsNull] attribute Function? onconnecting;
|
1622
|
-
[TreatNonCallableAsNull] attribute Function? onopen;
|
1623
|
-
[TreatNonCallableAsNull] attribute Function? onmessage;
|
1624
|
-
[TreatNonCallableAsNull] attribute Function? onaddstream;
|
1625
|
-
[TreatNonCallableAsNull] attribute Function? onremovestream;
|
1626
|
-
};
|
1627
|
-
|
1628
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1629
|
-
interface SignalingCallback {
|
1630
|
-
void handleEvent(DOMString message, PeerConnection source);
|
1631
|
-
};
|
1632
|
-
|
1633
|
-
[Constructor(DOMString type, optional MediaStreamEventInit eventInitDict)]
|
1634
|
-
interface MediaStreamEvent : Event {
|
1635
|
-
readonly attribute MediaStream? stream;
|
1636
|
-
};
|
1637
|
-
|
1638
|
-
dictionary MediaStreamEventInit : EventInit {
|
1639
|
-
// DOMString MediaStream? stream;
|
1640
|
-
};
|
1641
|
-
|
1642
1655
|
interface WorkerGlobalScope : EventTarget {
|
1643
1656
|
readonly attribute WorkerGlobalScope self;
|
1644
1657
|
readonly attribute WorkerLocation location;
|
@@ -1650,13 +1663,11 @@ interface WorkerGlobalScope : EventTarget {
|
|
1650
1663
|
};
|
1651
1664
|
WorkerGlobalScope implements WorkerUtils;
|
1652
1665
|
|
1653
|
-
[Supplemental, NoInterfaceObject]
|
1654
1666
|
interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
|
1655
1667
|
void postMessage(any message, optional sequence<Transferable> transfer);
|
1656
1668
|
[TreatNonCallableAsNull] attribute Function? onmessage;
|
1657
1669
|
};
|
1658
1670
|
|
1659
|
-
[Supplemental, NoInterfaceObject]
|
1660
1671
|
interface SharedWorkerGlobalScope : WorkerGlobalScope {
|
1661
1672
|
readonly attribute DOMString name;
|
1662
1673
|
readonly attribute ApplicationCache applicationCache;
|
@@ -1676,24 +1687,26 @@ dictionary ErrorEventInit : EventInit {
|
|
1676
1687
|
unsigned long lineno;
|
1677
1688
|
};
|
1678
1689
|
|
1679
|
-
[
|
1680
|
-
interface AbstractWorker
|
1690
|
+
[NoInterfaceObject]
|
1691
|
+
interface AbstractWorker {
|
1681
1692
|
[TreatNonCallableAsNull] attribute Function? onerror;
|
1682
1693
|
|
1683
1694
|
};
|
1684
1695
|
|
1685
1696
|
[Constructor(DOMString scriptURL)]
|
1686
|
-
interface Worker :
|
1697
|
+
interface Worker : EventTarget {
|
1687
1698
|
void terminate();
|
1688
1699
|
|
1689
1700
|
void postMessage(any message, optional sequence<Transferable> transfer);
|
1690
1701
|
[TreatNonCallableAsNull] attribute Function? onmessage;
|
1691
1702
|
};
|
1703
|
+
Worker implements AbstractWorker;
|
1692
1704
|
|
1693
1705
|
[Constructor(DOMString scriptURL, optional DOMString name)]
|
1694
|
-
interface SharedWorker :
|
1706
|
+
interface SharedWorker : EventTarget {
|
1695
1707
|
readonly attribute MessagePort port;
|
1696
1708
|
};
|
1709
|
+
SharedWorker implements AbstractWorker;
|
1697
1710
|
|
1698
1711
|
[NoInterfaceObject]
|
1699
1712
|
interface WorkerUtils {
|
@@ -1758,8 +1771,7 @@ dictionary EventSourceInit {
|
|
1758
1771
|
boolean withCredentials = false;
|
1759
1772
|
};
|
1760
1773
|
|
1761
|
-
[Constructor(DOMString url, optional DOMString protocols)
|
1762
|
-
Constructor(DOMString url, optional DOMString[] protocols)]
|
1774
|
+
[Constructor(DOMString url, optional (DOMString or DOMString[]) protocols)]
|
1763
1775
|
interface WebSocket : EventTarget {
|
1764
1776
|
readonly attribute DOMString url;
|
1765
1777
|
|
@@ -1839,7 +1851,7 @@ Window implements WindowLocalStorage;
|
|
1839
1851
|
|
1840
1852
|
[Constructor(DOMString type, optional StorageEventInit eventInitDict)]
|
1841
1853
|
interface StorageEvent : Event {
|
1842
|
-
readonly attribute DOMString key;
|
1854
|
+
readonly attribute DOMString? key;
|
1843
1855
|
readonly attribute DOMString? oldValue;
|
1844
1856
|
readonly attribute DOMString? newValue;
|
1845
1857
|
readonly attribute DOMString url;
|
@@ -1847,7 +1859,7 @@ interface StorageEvent : Event {
|
|
1847
1859
|
};
|
1848
1860
|
|
1849
1861
|
dictionary StorageEventInit : EventInit {
|
1850
|
-
DOMString key;
|
1862
|
+
DOMString? key;
|
1851
1863
|
DOMString? oldValue;
|
1852
1864
|
DOMString? newValue;
|
1853
1865
|
DOMString url;
|