diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-10-19 11:18:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-19 11:18:05 -0400 |
commit | 55e60f992c0a29dd9c3d168f586b5172e90bd35a (patch) | |
tree | 4420f5db7dc55b7d36f560880b85833ae4d7a696 | |
parent | 175c0d56ca48cea180500931f8a44acd1ac713be (diff) | |
parent | e271edad927c6cfb304e9df8719d7ed5fe0309f9 (diff) | |
download | servo-55e60f992c0a29dd9c3d168f586b5172e90bd35a.tar.gz servo-55e60f992c0a29dd9c3d168f586b5172e90bd35a.zip |
Auto merge of #24506 - saschanaz:htmlconstructor, r=jdm
Convert [HTMLConstructor] as constructor extension
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24505
<!-- Either: -->
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
71 files changed, 323 insertions, 217 deletions
diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py index 1d50c3ed4f7..71c988e5378 100644 --- a/components/script/dom/bindings/codegen/Configuration.py +++ b/components/script/dom/bindings/codegen/Configuration.py @@ -392,15 +392,19 @@ class Descriptor(DescriptorProvider): return (self.interface.getUserData("hasConcreteDescendant", False) or self.interface.getUserData("hasProxyDescendant", False)) + def hasHTMLConstructor(self): + ctor = self.interface.ctor() + return ctor and ctor.isHTMLConstructor() + def shouldHaveGetConstructorObjectMethod(self): assert self.interface.hasInterfaceObject() if self.interface.getExtendedAttribute("Inline"): return False return (self.interface.isCallback() or self.interface.isNamespace() or - self.hasDescendants() or self.interface.getExtendedAttribute("HTMLConstructor")) + self.hasDescendants() or self.hasHTMLConstructor()) def shouldCacheConstructor(self): - return self.hasDescendants() or self.interface.getExtendedAttribute("HTMLConstructor") + return self.hasDescendants() or self.hasHTMLConstructor() def isExposedConditionally(self): return self.interface.isExposedConditionally() diff --git a/components/script/dom/bindings/codegen/parser/WebIDL.py b/components/script/dom/bindings/codegen/parser/WebIDL.py index a36b1b3ecfe..215d9c1212f 100644 --- a/components/script/dom/bindings/codegen/parser/WebIDL.py +++ b/components/script/dom/bindings/codegen/parser/WebIDL.py @@ -1084,18 +1084,11 @@ class IDLInterfaceOrNamespace(IDLInterfaceOrInterfaceMixinOrNamespace): "Can't have both a constructor and [Global]", [self.location, ctor.location]) - assert(len(ctor._exposureGlobalNames) == 0 or - ctor._exposureGlobalNames == self._exposureGlobalNames) + assert(ctor._exposureGlobalNames == self._exposureGlobalNames) ctor._exposureGlobalNames.update(self._exposureGlobalNames) - if ctor in self.members: - # constructor operation. - self.members.remove(ctor) - else: - # extended attribute. This can only happen with - # [HTMLConstructor] and this is the only way we can get into this - # code with len(ctor._exposureGlobalNames) != - # self._exposureGlobalNames. - ctor.finish(scope) + # Remove the constructor operation from our member list so + # it doesn't get in the way later. + self.members.remove(ctor) for ctor in self.namedConstructors: if self.globalNames: @@ -1653,60 +1646,45 @@ class IDLInterface(IDLInterfaceOrNamespace): [attr.location]) self._noInterfaceObject = True - elif identifier == "NamedConstructor" or identifier == "HTMLConstructor": - if identifier == "NamedConstructor" and not attr.hasValue(): + elif identifier == "NamedConstructor": + if not attr.hasValue(): raise WebIDLError("NamedConstructor must either take an identifier or take a named argument list", [attr.location]) - if identifier == "HTMLConstructor": - if not attr.noArguments(): - raise WebIDLError(str(identifier) + " must take no arguments", - [attr.location]) args = attr.args() if attr.hasArgs() else [] retType = IDLWrapperType(self.location, self) - if identifier == "HTMLConstructor": - name = "constructor" - allowForbidden = True - else: - name = attr.value() - allowForbidden = False - - method = IDLConstructor( - attr.location, args, name, - htmlConstructor=(identifier == "HTMLConstructor")) + method = IDLConstructor(attr.location, args, attr.value()) method.reallyInit(self) - # Are always assumed to be able to throw (since there's no way to - # indicate otherwise). + # Named constructors are always assumed to be able to + # throw (since there's no way to indicate otherwise). method.addExtendedAttributes( [IDLExtendedAttribute(self.location, ("Throws",))]) - if identifier == "HTMLConstructor": - method.resolve(self) - else: - # We need to detect conflicts for NamedConstructors across - # interfaces. We first call resolve on the parentScope, - # which will merge all NamedConstructors with the same - # identifier accross interfaces as overloads. - method.resolve(self.parentScope) - - # Then we look up the identifier on the parentScope. If the - # result is the same as the method we're adding then it - # hasn't been added as an overload and it's the first time - # we've encountered a NamedConstructor with that identifier. - # If the result is not the same as the method we're adding - # then it has been added as an overload and we need to check - # whether the result is actually one of our existing - # NamedConstructors. - newMethod = self.parentScope.lookupIdentifier(method.identifier) - if newMethod == method: - self.namedConstructors.append(method) - elif newMethod not in self.namedConstructors: - raise WebIDLError("NamedConstructor conflicts with a NamedConstructor of a different interface", - [method.location, newMethod.location]) + # We need to detect conflicts for NamedConstructors across + # interfaces. We first call resolve on the parentScope, + # which will merge all NamedConstructors with the same + # identifier accross interfaces as overloads. + method.resolve(self.parentScope) + + # Then we look up the identifier on the parentScope. If the + # result is the same as the method we're adding then it + # hasn't been added as an overload and it's the first time + # we've encountered a NamedConstructor with that identifier. + # If the result is not the same as the method we're adding + # then it has been added as an overload and we need to check + # whether the result is actually one of our existing + # NamedConstructors. + newMethod = self.parentScope.lookupIdentifier(method.identifier) + if newMethod == method: + self.namedConstructors.append(method) + elif newMethod not in self.namedConstructors: + raise WebIDLError("NamedConstructor conflicts with a " + "NamedConstructor of a different interface", + [method.location, newMethod.location]) elif (identifier == "ExceptionClass"): if not attr.noArguments(): raise WebIDLError("[ExceptionClass] must take no arguments", @@ -1777,6 +1755,11 @@ class IDLInterface(IDLInterfaceOrNamespace): if not attr.hasValue(): raise WebIDLError("[%s] must have a value" % identifier, [attr.location]) + elif identifier == "InstrumentedProps": + # Known extended attributes that take a list + if not attr.hasArgs(): + raise WebIDLError("[%s] must have arguments" % identifier, + [attr.location]) else: raise WebIDLError("Unknown extended attribute %s on interface" % identifier, [attr.location]) @@ -4884,7 +4867,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope): static=False, getter=False, setter=False, deleter=False, specialType=NamedOrIndexed.Neither, legacycaller=False, stringifier=False, - maplikeOrSetlikeOrIterable=None, htmlConstructor=False): + maplikeOrSetlikeOrIterable=None): # REVIEW: specialType is NamedOrIndexed -- wow, this is messed up. IDLInterfaceMember.__init__(self, location, identifier, IDLInterfaceMember.Tags.Method) @@ -4910,10 +4893,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope): self._stringifier = stringifier assert maplikeOrSetlikeOrIterable is None or isinstance(maplikeOrSetlikeOrIterable, IDLMaplikeOrSetlikeOrIterableBase) self.maplikeOrSetlikeOrIterable = maplikeOrSetlikeOrIterable - assert isinstance(htmlConstructor, bool) - # The identifier of a HTMLConstructor must be 'constructor'. - assert not htmlConstructor or identifier.name == "constructor" - self._htmlConstructor = htmlConstructor + self._htmlConstructor = False self._specialType = specialType self._unforgeable = False self.dependsOn = "Everything" @@ -5408,14 +5388,13 @@ class IDLMethod(IDLInterfaceMember, IDLScope): class IDLConstructor(IDLMethod): - def __init__(self, location, args, name, htmlConstructor=False): + def __init__(self, location, args, name): # We can't actually init our IDLMethod yet, because we do not know the # return type yet. Just save the info we have for now and we will init # it later. self._initLocation = location self._initArgs = args self._initName = name - self._htmlConstructor = htmlConstructor self._inited = False self._initExtendedAttrs = [] @@ -5432,6 +5411,18 @@ class IDLConstructor(IDLMethod): identifier == "SecureContext" or identifier == "Throws"): IDLMethod.handleExtendedAttribute(self, attr) + elif identifier == "HTMLConstructor": + if not attr.noArguments(): + raise WebIDLError("[HTMLConstructor] must take no arguments", + [attr.location]) + # We shouldn't end up here for named constructors. + assert(self.identifier.name == "constructor") + + if any(len(sig[1]) != 0 for sig in self.signatures()): + raise WebIDLError("[HTMLConstructor] must not be applied to a " + "constructor operation that has arguments.", + [attr.location]) + self._htmlConstructor = True else: raise WebIDLError("Unknown extended attribute %s on method" % identifier, [attr.location]) @@ -5442,7 +5433,7 @@ class IDLConstructor(IDLMethod): identifier = IDLUnresolvedIdentifier(location, name, allowForbidden=True) retType = IDLWrapperType(parentInterface.location, parentInterface) IDLMethod.__init__(self, location, identifier, retType, self._initArgs, - static=True, htmlConstructor=self._htmlConstructor) + static=True) self._inited = True; # Propagate through whatever extended attributes we already had self.addExtendedAttributes(self._initExtendedAttrs) @@ -5660,6 +5651,8 @@ class Tokenizer(object): "namespace": "NAMESPACE", "ReadableStream": "READABLESTREAM", "constructor": "CONSTRUCTOR", + "symbol": "SYMBOL", + "async": "ASYNC", } tokens.extend(keywords.values()) @@ -6746,37 +6739,54 @@ class Parser(Tokenizer): def p_ArgumentName(self, p): """ ArgumentName : IDENTIFIER - | ATTRIBUTE - | CALLBACK - | CONST - | CONSTRUCTOR - | DELETER - | DICTIONARY - | ENUM - | EXCEPTION - | GETTER - | INHERIT - | INTERFACE - | ITERABLE - | LEGACYCALLER - | MAPLIKE - | PARTIAL - | REQUIRED - | SERIALIZER - | SETLIKE - | SETTER - | STATIC - | STRINGIFIER - | TYPEDEF - | UNRESTRICTED - | NAMESPACE + | ArgumentNameKeyword + """ + p[0] = p[1] + + def p_ArgumentNameKeyword(self, p): + """ + ArgumentNameKeyword : ASYNC + | ATTRIBUTE + | CALLBACK + | CONST + | CONSTRUCTOR + | DELETER + | DICTIONARY + | ENUM + | EXCEPTION + | GETTER + | INCLUDES + | INHERIT + | INTERFACE + | ITERABLE + | LEGACYCALLER + | MAPLIKE + | MIXIN + | NAMESPACE + | PARTIAL + | READONLY + | REQUIRED + | SERIALIZER + | SETLIKE + | SETTER + | STATIC + | STRINGIFIER + | TYPEDEF + | UNRESTRICTED """ p[0] = p[1] def p_AttributeName(self, p): """ AttributeName : IDENTIFIER - | REQUIRED + | AttributeNameKeyword + """ + p[0] = p[1] + + def p_AttributeNameKeyword(self, p): + """ + AttributeNameKeyword : ASYNC + | REQUIRED """ p[0] = p[1] @@ -6868,36 +6878,27 @@ class Parser(Tokenizer): | BYTESTRING | USVSTRING | JSSTRING + | PROMISE | ANY - | ATTRIBUTE | BOOLEAN | BYTE - | LEGACYCALLER - | CONST - | CONSTRUCTOR - | DELETER | DOUBLE - | EXCEPTION | FALSE | FLOAT - | GETTER - | INHERIT - | INTERFACE | LONG | NULL | OBJECT | OCTET + | OR | OPTIONAL - | SEQUENCE | RECORD - | SETTER + | SEQUENCE | SHORT - | STATIC - | STRINGIFIER + | SYMBOL | TRUE - | TYPEDEF | UNSIGNED | VOID + | ArgumentNameKeyword """ pass diff --git a/components/script/dom/bindings/codegen/parser/tests/test_constructor.py b/components/script/dom/bindings/codegen/parser/tests/test_constructor.py index 20eb152cdab..721f9c2089e 100644 --- a/components/script/dom/bindings/codegen/parser/tests/test_constructor.py +++ b/components/script/dom/bindings/codegen/parser/tests/test_constructor.py @@ -105,8 +105,8 @@ def WebIDLTest(parser, harness): parser = parser.reset() parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructor { + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -138,8 +138,8 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor(DOMString a)] interface TestHTMLConstructorWithArgs { + [HTMLConstructor] constructor(DOMString a); }; """) results = parser.finish() @@ -153,8 +153,8 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] callback interface TestHTMLConstructorOnCallbackInterface { + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -168,9 +168,9 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { constructor(); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -183,10 +183,10 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { [Throws] constructor(); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -200,9 +200,9 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { constructor(DOMString a); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -216,10 +216,10 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { [Throws] constructor(DOMString a); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -235,10 +235,10 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { [ChromeOnly] constructor(); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -252,10 +252,10 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { [Throws, ChromeOnly] constructor(); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -270,10 +270,10 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { [ChromeOnly] constructor(DOMString a); + [HTMLConstructor] constructor(); }; """) results = parser.finish() @@ -288,10 +288,10 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [HTMLConstructor] interface TestHTMLConstructorAndConstructor { [Throws, ChromeOnly] constructor(DOMString a); + [HTMLConstructor] constructor(); }; """) results = parser.finish() diff --git a/components/script/dom/bindings/codegen/parser/tests/test_constructor_global.py b/components/script/dom/bindings/codegen/parser/tests/test_constructor_global.py index 31c5d95317f..b7eabb1e35b 100644 --- a/components/script/dom/bindings/codegen/parser/tests/test_constructor_global.py +++ b/components/script/dom/bindings/codegen/parser/tests/test_constructor_global.py @@ -50,23 +50,9 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [Global, HTMLConstructor, Exposed=TestHTMLConstructorGlobal] - interface TestHTMLConstructorGlobal { - }; - """) - - results = parser.finish() - except: - threw = True - - harness.ok(threw, "Should have thrown.") - - parser = parser.reset() - threw = False - try: - parser.parse(""" - [HTMLConstructor, Global, Exposed=TestHTMLConstructorGlobal] + [Global, Exposed=TestHTMLConstructorGlobal] interface TestHTMLConstructorGlobal { + [HTMLConstructor] constructor(); }; """) diff --git a/components/script/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py b/components/script/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py index d4175094911..24cc36066cd 100644 --- a/components/script/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py +++ b/components/script/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py @@ -28,24 +28,9 @@ def WebIDLTest(parser, harness): threw = False try: parser.parse(""" - [NoInterfaceObject, HTMLConstructor] - interface TestHTMLConstructorNoInterfaceObject { - }; - """) - - results = parser.finish() - except: - threw = True - - harness.ok(threw, "Should have thrown.") - - parser = parser.reset() - - threw = False - try: - parser.parse(""" - [HTMLConstructor, NoInterfaceObject] + [NoInterfaceObject] interface TestHTMLConstructorNoInterfaceObject { + [HTMLConstructor] constructor(); }; """) diff --git a/components/script/dom/webidls/HTMLAnchorElement.webidl b/components/script/dom/webidls/HTMLAnchorElement.webidl index 89d3c863415..f1597112820 100644 --- a/components/script/dom/webidls/HTMLAnchorElement.webidl +++ b/components/script/dom/webidls/HTMLAnchorElement.webidl @@ -11,8 +11,10 @@ */ // https://html.spec.whatwg.org/multipage/#htmlanchorelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLAnchorElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString target; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLAreaElement.webidl b/components/script/dom/webidls/HTMLAreaElement.webidl index c83457c3994..c0e5b27a3bb 100644 --- a/components/script/dom/webidls/HTMLAreaElement.webidl +++ b/components/script/dom/webidls/HTMLAreaElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlareaelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLAreaElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString alt; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLAudioElement.webidl b/components/script/dom/webidls/HTMLAudioElement.webidl index 5af7116e44c..bad06df5cfc 100644 --- a/components/script/dom/webidls/HTMLAudioElement.webidl +++ b/components/script/dom/webidls/HTMLAudioElement.webidl @@ -3,5 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlaudioelement -[Exposed=Window, HTMLConstructor, NamedConstructor=Audio(optional DOMString src)] -interface HTMLAudioElement : HTMLMediaElement {}; +[Exposed=Window, NamedConstructor=Audio(optional DOMString src)] +interface HTMLAudioElement : HTMLMediaElement { + [HTMLConstructor] constructor(); +}; diff --git a/components/script/dom/webidls/HTMLBRElement.webidl b/components/script/dom/webidls/HTMLBRElement.webidl index 9698acad1f8..367f3bd36a9 100644 --- a/components/script/dom/webidls/HTMLBRElement.webidl +++ b/components/script/dom/webidls/HTMLBRElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlbrelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLBRElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLBaseElement.webidl b/components/script/dom/webidls/HTMLBaseElement.webidl index a67a5415139..813a4cffbd1 100644 --- a/components/script/dom/webidls/HTMLBaseElement.webidl +++ b/components/script/dom/webidls/HTMLBaseElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlbaseelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLBaseElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString href; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLBodyElement.webidl b/components/script/dom/webidls/HTMLBodyElement.webidl index 280f387187f..a84d800ff10 100644 --- a/components/script/dom/webidls/HTMLBodyElement.webidl +++ b/components/script/dom/webidls/HTMLBodyElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#the-body-element -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLBodyElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; HTMLBodyElement includes WindowEventHandlers; diff --git a/components/script/dom/webidls/HTMLButtonElement.webidl b/components/script/dom/webidls/HTMLButtonElement.webidl index 999a253d0d2..a5eaebef19e 100644 --- a/components/script/dom/webidls/HTMLButtonElement.webidl +++ b/components/script/dom/webidls/HTMLButtonElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlbuttonelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLButtonElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute boolean autofocus; [CEReactions] diff --git a/components/script/dom/webidls/HTMLCanvasElement.webidl b/components/script/dom/webidls/HTMLCanvasElement.webidl index 5170012ff03..afc10fdd640 100644 --- a/components/script/dom/webidls/HTMLCanvasElement.webidl +++ b/components/script/dom/webidls/HTMLCanvasElement.webidl @@ -5,9 +5,10 @@ // https://html.spec.whatwg.org/multipage/#htmlcanvaselement typedef (CanvasRenderingContext2D or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext; -[Exposed=Window, - HTMLConstructor] +[Exposed=Window] interface HTMLCanvasElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions, Pure] attribute unsigned long width; [CEReactions, Pure] attribute unsigned long height; diff --git a/components/script/dom/webidls/HTMLDListElement.webidl b/components/script/dom/webidls/HTMLDListElement.webidl index a0e859846f5..76cf662620e 100644 --- a/components/script/dom/webidls/HTMLDListElement.webidl +++ b/components/script/dom/webidls/HTMLDListElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldlistelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDListElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLDataElement.webidl b/components/script/dom/webidls/HTMLDataElement.webidl index cab3da5a103..b11368f3de2 100644 --- a/components/script/dom/webidls/HTMLDataElement.webidl +++ b/components/script/dom/webidls/HTMLDataElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldataelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDataElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString value; }; diff --git a/components/script/dom/webidls/HTMLDataListElement.webidl b/components/script/dom/webidls/HTMLDataListElement.webidl index f63ecfdcf77..5bd9ac9d362 100644 --- a/components/script/dom/webidls/HTMLDataListElement.webidl +++ b/components/script/dom/webidls/HTMLDataListElement.webidl @@ -3,7 +3,9 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldatalistelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDataListElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute HTMLCollection options; }; diff --git a/components/script/dom/webidls/HTMLDetailsElement.webidl b/components/script/dom/webidls/HTMLDetailsElement.webidl index 53f1dc3259f..e860186a8ce 100644 --- a/components/script/dom/webidls/HTMLDetailsElement.webidl +++ b/components/script/dom/webidls/HTMLDetailsElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldetailselement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDetailsElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean open; }; diff --git a/components/script/dom/webidls/HTMLDialogElement.webidl b/components/script/dom/webidls/HTMLDialogElement.webidl index 847098850cc..f83f2547a72 100644 --- a/components/script/dom/webidls/HTMLDialogElement.webidl +++ b/components/script/dom/webidls/HTMLDialogElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldialogelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDialogElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean open; attribute DOMString returnValue; diff --git a/components/script/dom/webidls/HTMLDirectoryElement.webidl b/components/script/dom/webidls/HTMLDirectoryElement.webidl index e6ec1ebf109..0fc1a65949c 100644 --- a/components/script/dom/webidls/HTMLDirectoryElement.webidl +++ b/components/script/dom/webidls/HTMLDirectoryElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldirectoryelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDirectoryElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute boolean compact; }; diff --git a/components/script/dom/webidls/HTMLDivElement.webidl b/components/script/dom/webidls/HTMLDivElement.webidl index 23c1051373c..c38127c87eb 100644 --- a/components/script/dom/webidls/HTMLDivElement.webidl +++ b/components/script/dom/webidls/HTMLDivElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmldivelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLDivElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLElement.webidl b/components/script/dom/webidls/HTMLElement.webidl index 2d2b9fe6c68..1d15740f6c7 100644 --- a/components/script/dom/webidls/HTMLElement.webidl +++ b/components/script/dom/webidls/HTMLElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLElement : Element { + [HTMLConstructor] constructor(); + // metadata attributes [CEReactions] attribute DOMString title; diff --git a/components/script/dom/webidls/HTMLEmbedElement.webidl b/components/script/dom/webidls/HTMLEmbedElement.webidl index 94549e3c1c6..50d8ce1a16a 100644 --- a/components/script/dom/webidls/HTMLEmbedElement.webidl +++ b/components/script/dom/webidls/HTMLEmbedElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlembedelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLEmbedElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString src; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLFieldSetElement.webidl b/components/script/dom/webidls/HTMLFieldSetElement.webidl index b7c5e2006c3..c439806c30a 100644 --- a/components/script/dom/webidls/HTMLFieldSetElement.webidl +++ b/components/script/dom/webidls/HTMLFieldSetElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlfieldsetelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLFieldSetElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; diff --git a/components/script/dom/webidls/HTMLFontElement.webidl b/components/script/dom/webidls/HTMLFontElement.webidl index c1eb6683600..c85a3cdd3f2 100644 --- a/components/script/dom/webidls/HTMLFontElement.webidl +++ b/components/script/dom/webidls/HTMLFontElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlfontelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLFontElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute [TreatNullAs=EmptyString] DOMString color; [CEReactions] diff --git a/components/script/dom/webidls/HTMLFormElement.webidl b/components/script/dom/webidls/HTMLFormElement.webidl index b944241093f..f48726c343a 100644 --- a/components/script/dom/webidls/HTMLFormElement.webidl +++ b/components/script/dom/webidls/HTMLFormElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlformelement -[Exposed=Window, /*OverrideBuiltins, */HTMLConstructor] +[Exposed=Window] interface HTMLFormElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString acceptCharset; [CEReactions] diff --git a/components/script/dom/webidls/HTMLFrameElement.webidl b/components/script/dom/webidls/HTMLFrameElement.webidl index 842b3ab1d15..fe6cab1a5c2 100644 --- a/components/script/dom/webidls/HTMLFrameElement.webidl +++ b/components/script/dom/webidls/HTMLFrameElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlframeelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLFrameElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString name; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLFrameSetElement.webidl b/components/script/dom/webidls/HTMLFrameSetElement.webidl index 5aea0929ccc..24aa80dca28 100644 --- a/components/script/dom/webidls/HTMLFrameSetElement.webidl +++ b/components/script/dom/webidls/HTMLFrameSetElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlframesetelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLFrameSetElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString cols; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLHRElement.webidl b/components/script/dom/webidls/HTMLHRElement.webidl index dd9e945fbbc..8963d5e8901 100644 --- a/components/script/dom/webidls/HTMLHRElement.webidl +++ b/components/script/dom/webidls/HTMLHRElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlhrelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLHRElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLHeadElement.webidl b/components/script/dom/webidls/HTMLHeadElement.webidl index 79843dc536c..72fd1f7eb6d 100644 --- a/components/script/dom/webidls/HTMLHeadElement.webidl +++ b/components/script/dom/webidls/HTMLHeadElement.webidl @@ -3,5 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlheadelement -[Exposed=Window, HTMLConstructor] -interface HTMLHeadElement : HTMLElement {}; +[Exposed=Window] +interface HTMLHeadElement : HTMLElement { + [HTMLConstructor] constructor(); +}; diff --git a/components/script/dom/webidls/HTMLHeadingElement.webidl b/components/script/dom/webidls/HTMLHeadingElement.webidl index ad3b44c6218..b2e6be1ca8f 100644 --- a/components/script/dom/webidls/HTMLHeadingElement.webidl +++ b/components/script/dom/webidls/HTMLHeadingElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlheadingelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLHeadingElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLHtmlElement.webidl b/components/script/dom/webidls/HTMLHtmlElement.webidl index 7ffd53f230d..6b25a41ca8d 100644 --- a/components/script/dom/webidls/HTMLHtmlElement.webidl +++ b/components/script/dom/webidls/HTMLHtmlElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlhtmlelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLHtmlElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLIFrameElement.webidl b/components/script/dom/webidls/HTMLIFrameElement.webidl index 00d2218e338..acc4f0f201d 100644 --- a/components/script/dom/webidls/HTMLIFrameElement.webidl +++ b/components/script/dom/webidls/HTMLIFrameElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmliframeelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLIFrameElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString src; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLImageElement.webidl b/components/script/dom/webidls/HTMLImageElement.webidl index 79aafaeb0db..8e37fea4940 100644 --- a/components/script/dom/webidls/HTMLImageElement.webidl +++ b/components/script/dom/webidls/HTMLImageElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlimageelement -[Exposed=Window, HTMLConstructor, NamedConstructor=Image(optional unsigned long width, optional unsigned long height)] +[Exposed=Window, NamedConstructor=Image(optional unsigned long width, optional unsigned long height)] interface HTMLImageElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString alt; [CEReactions] diff --git a/components/script/dom/webidls/HTMLInputElement.webidl b/components/script/dom/webidls/HTMLInputElement.webidl index 8a71320a910..48001bc555c 100644 --- a/components/script/dom/webidls/HTMLInputElement.webidl +++ b/components/script/dom/webidls/HTMLInputElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlinputelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLInputElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString accept; [CEReactions] @@ -109,7 +111,6 @@ interface HTMLInputElement : HTMLElement { // Select with file-system paths for testing purpose [Pref="dom.testing.htmlinputelement.select_files.enabled"] void selectFiles(sequence<DOMString> path); - }; // https://html.spec.whatwg.org/multipage/#HTMLInputElement-partial diff --git a/components/script/dom/webidls/HTMLLIElement.webidl b/components/script/dom/webidls/HTMLLIElement.webidl index fcf034fc1e7..e5c7e68c874 100644 --- a/components/script/dom/webidls/HTMLLIElement.webidl +++ b/components/script/dom/webidls/HTMLLIElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmllielement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLLIElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute long value; diff --git a/components/script/dom/webidls/HTMLLabelElement.webidl b/components/script/dom/webidls/HTMLLabelElement.webidl index f0cb3d219de..228e45fc7c4 100644 --- a/components/script/dom/webidls/HTMLLabelElement.webidl +++ b/components/script/dom/webidls/HTMLLabelElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmllabelelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLLabelElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute HTMLFormElement? form; [CEReactions] attribute DOMString htmlFor; diff --git a/components/script/dom/webidls/HTMLLegendElement.webidl b/components/script/dom/webidls/HTMLLegendElement.webidl index fc4d136aea9..1ef2a8fd701 100644 --- a/components/script/dom/webidls/HTMLLegendElement.webidl +++ b/components/script/dom/webidls/HTMLLegendElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmllegendelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLLegendElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute HTMLFormElement? form; // also has obsolete members diff --git a/components/script/dom/webidls/HTMLLinkElement.webidl b/components/script/dom/webidls/HTMLLinkElement.webidl index dde037463a9..0d04ba3f862 100644 --- a/components/script/dom/webidls/HTMLLinkElement.webidl +++ b/components/script/dom/webidls/HTMLLinkElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmllinkelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLLinkElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString href; [CEReactions] diff --git a/components/script/dom/webidls/HTMLMapElement.webidl b/components/script/dom/webidls/HTMLMapElement.webidl index c3616368551..44c397948fd 100644 --- a/components/script/dom/webidls/HTMLMapElement.webidl +++ b/components/script/dom/webidls/HTMLMapElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlmapelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLMapElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString name; // readonly attribute HTMLCollection areas; diff --git a/components/script/dom/webidls/HTMLMetaElement.webidl b/components/script/dom/webidls/HTMLMetaElement.webidl index eb24222a24d..c8d4faeba5f 100644 --- a/components/script/dom/webidls/HTMLMetaElement.webidl +++ b/components/script/dom/webidls/HTMLMetaElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlmetaelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLMetaElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString name; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLMeterElement.webidl b/components/script/dom/webidls/HTMLMeterElement.webidl index 81208ceba7c..4021d2ec185 100644 --- a/components/script/dom/webidls/HTMLMeterElement.webidl +++ b/components/script/dom/webidls/HTMLMeterElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlmeterelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLMeterElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute double value; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLModElement.webidl b/components/script/dom/webidls/HTMLModElement.webidl index 4a06a1ffa50..6d26249c447 100644 --- a/components/script/dom/webidls/HTMLModElement.webidl +++ b/components/script/dom/webidls/HTMLModElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlmodelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLModElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString cite; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLOListElement.webidl b/components/script/dom/webidls/HTMLOListElement.webidl index f5a720721c6..3739d6d98af 100644 --- a/components/script/dom/webidls/HTMLOListElement.webidl +++ b/components/script/dom/webidls/HTMLOListElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlolistelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLOListElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute boolean reversed; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLObjectElement.webidl b/components/script/dom/webidls/HTMLObjectElement.webidl index 59cbe296df1..c8779cd9921 100644 --- a/components/script/dom/webidls/HTMLObjectElement.webidl +++ b/components/script/dom/webidls/HTMLObjectElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlobjectelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLObjectElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString data; [CEReactions] diff --git a/components/script/dom/webidls/HTMLOptGroupElement.webidl b/components/script/dom/webidls/HTMLOptGroupElement.webidl index faf8fdec803..afa11148cd5 100644 --- a/components/script/dom/webidls/HTMLOptGroupElement.webidl +++ b/components/script/dom/webidls/HTMLOptGroupElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmloptgroupelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLOptGroupElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean disabled; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLOptionElement.webidl b/components/script/dom/webidls/HTMLOptionElement.webidl index 1a618290b65..56a379fc8db 100644 --- a/components/script/dom/webidls/HTMLOptionElement.webidl +++ b/components/script/dom/webidls/HTMLOptionElement.webidl @@ -3,10 +3,12 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmloptionelement -[Exposed=Window, HTMLConstructor/*, NamedConstructor=Option(optional DOMString text = "", optional DOMString value, +[Exposed=Window/*, NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)*/] interface HTMLOptionElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute boolean disabled; readonly attribute HTMLFormElement? form; diff --git a/components/script/dom/webidls/HTMLOutputElement.webidl b/components/script/dom/webidls/HTMLOutputElement.webidl index 3ce003729fb..ac631ab7906 100644 --- a/components/script/dom/webidls/HTMLOutputElement.webidl +++ b/components/script/dom/webidls/HTMLOutputElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmloutputelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLOutputElement : HTMLElement { + [HTMLConstructor] constructor(); + // [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor; readonly attribute HTMLFormElement? form; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLParagraphElement.webidl b/components/script/dom/webidls/HTMLParagraphElement.webidl index 916d8ced83c..d42533b9ef9 100644 --- a/components/script/dom/webidls/HTMLParagraphElement.webidl +++ b/components/script/dom/webidls/HTMLParagraphElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlparagraphelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLParagraphElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLParamElement.webidl b/components/script/dom/webidls/HTMLParamElement.webidl index 232ed733439..4539b3b8474 100644 --- a/components/script/dom/webidls/HTMLParamElement.webidl +++ b/components/script/dom/webidls/HTMLParamElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlparamelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLParamElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString name; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLPictureElement.webidl b/components/script/dom/webidls/HTMLPictureElement.webidl index d63c879f3cd..d03377ee541 100644 --- a/components/script/dom/webidls/HTMLPictureElement.webidl +++ b/components/script/dom/webidls/HTMLPictureElement.webidl @@ -3,5 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlpictureelement -[Exposed=Window, HTMLConstructor] -interface HTMLPictureElement : HTMLElement {}; +[Exposed=Window] +interface HTMLPictureElement : HTMLElement { + [HTMLConstructor] constructor(); +}; diff --git a/components/script/dom/webidls/HTMLPreElement.webidl b/components/script/dom/webidls/HTMLPreElement.webidl index cc3f0c7931c..ecbebb71e38 100644 --- a/components/script/dom/webidls/HTMLPreElement.webidl +++ b/components/script/dom/webidls/HTMLPreElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlpreelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLPreElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLProgressElement.webidl b/components/script/dom/webidls/HTMLProgressElement.webidl index b52c09fe454..c901e379659 100644 --- a/components/script/dom/webidls/HTMLProgressElement.webidl +++ b/components/script/dom/webidls/HTMLProgressElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlprogresselement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLProgressElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute double value; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLQuoteElement.webidl b/components/script/dom/webidls/HTMLQuoteElement.webidl index 4fce3814bc4..d7623fb47b9 100644 --- a/components/script/dom/webidls/HTMLQuoteElement.webidl +++ b/components/script/dom/webidls/HTMLQuoteElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlquoteelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLQuoteElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString cite; }; diff --git a/components/script/dom/webidls/HTMLScriptElement.webidl b/components/script/dom/webidls/HTMLScriptElement.webidl index 5d4f88903f5..f7126b7901b 100644 --- a/components/script/dom/webidls/HTMLScriptElement.webidl +++ b/components/script/dom/webidls/HTMLScriptElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlscriptelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLScriptElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute USVString src; [CEReactions] diff --git a/components/script/dom/webidls/HTMLSelectElement.webidl b/components/script/dom/webidls/HTMLSelectElement.webidl index 3c742aa0855..975d198f764 100644 --- a/components/script/dom/webidls/HTMLSelectElement.webidl +++ b/components/script/dom/webidls/HTMLSelectElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlselectelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLSelectElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute boolean autofocus; [CEReactions] diff --git a/components/script/dom/webidls/HTMLSourceElement.webidl b/components/script/dom/webidls/HTMLSourceElement.webidl index 56fbfb240d9..92f75ff5995 100644 --- a/components/script/dom/webidls/HTMLSourceElement.webidl +++ b/components/script/dom/webidls/HTMLSourceElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlsourceelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLSourceElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString src; [CEReactions] diff --git a/components/script/dom/webidls/HTMLSpanElement.webidl b/components/script/dom/webidls/HTMLSpanElement.webidl index 5a1e32aef15..2645cd7678b 100644 --- a/components/script/dom/webidls/HTMLSpanElement.webidl +++ b/components/script/dom/webidls/HTMLSpanElement.webidl @@ -3,5 +3,7 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlspanelement -[Exposed=Window, HTMLConstructor] -interface HTMLSpanElement : HTMLElement {}; +[Exposed=Window] +interface HTMLSpanElement : HTMLElement { + [HTMLConstructor] constructor(); +}; diff --git a/components/script/dom/webidls/HTMLStyleElement.webidl b/components/script/dom/webidls/HTMLStyleElement.webidl index 3cb783fe3f9..dd68cb6270a 100644 --- a/components/script/dom/webidls/HTMLStyleElement.webidl +++ b/components/script/dom/webidls/HTMLStyleElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlstyleelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLStyleElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString media; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLTableCaptionElement.webidl b/components/script/dom/webidls/HTMLTableCaptionElement.webidl index fbb0dd12071..e834be183c8 100644 --- a/components/script/dom/webidls/HTMLTableCaptionElement.webidl +++ b/components/script/dom/webidls/HTMLTableCaptionElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltablecaptionelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTableCaptionElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLTableCellElement.webidl b/components/script/dom/webidls/HTMLTableCellElement.webidl index cda6fbc3f06..3c955de66b9 100644 --- a/components/script/dom/webidls/HTMLTableCellElement.webidl +++ b/components/script/dom/webidls/HTMLTableCellElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltablecellelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTableCellElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute unsigned long colSpan; [CEReactions] diff --git a/components/script/dom/webidls/HTMLTableColElement.webidl b/components/script/dom/webidls/HTMLTableColElement.webidl index 463c31e4517..1d853643827 100644 --- a/components/script/dom/webidls/HTMLTableColElement.webidl +++ b/components/script/dom/webidls/HTMLTableColElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltablecolelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTableColElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute unsigned long span; diff --git a/components/script/dom/webidls/HTMLTableElement.webidl b/components/script/dom/webidls/HTMLTableElement.webidl index fe3801654b1..05acced2e57 100644 --- a/components/script/dom/webidls/HTMLTableElement.webidl +++ b/components/script/dom/webidls/HTMLTableElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltableelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTableElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute HTMLTableCaptionElement? caption; HTMLTableCaptionElement createCaption(); diff --git a/components/script/dom/webidls/HTMLTableRowElement.webidl b/components/script/dom/webidls/HTMLTableRowElement.webidl index ca823c33496..c51e06e6fdc 100644 --- a/components/script/dom/webidls/HTMLTableRowElement.webidl +++ b/components/script/dom/webidls/HTMLTableRowElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltablerowelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTableRowElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute long rowIndex; readonly attribute long sectionRowIndex; readonly attribute HTMLCollection cells; diff --git a/components/script/dom/webidls/HTMLTableSectionElement.webidl b/components/script/dom/webidls/HTMLTableSectionElement.webidl index f04dc5514fc..e73d16020dc 100644 --- a/components/script/dom/webidls/HTMLTableSectionElement.webidl +++ b/components/script/dom/webidls/HTMLTableSectionElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltablesectionelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTableSectionElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute HTMLCollection rows; [Throws] HTMLElement insertRow(optional long index = -1); diff --git a/components/script/dom/webidls/HTMLTemplateElement.webidl b/components/script/dom/webidls/HTMLTemplateElement.webidl index 73c19357c45..b71d37f4914 100644 --- a/components/script/dom/webidls/HTMLTemplateElement.webidl +++ b/components/script/dom/webidls/HTMLTemplateElement.webidl @@ -3,7 +3,9 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltemplateelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTemplateElement : HTMLElement { + [HTMLConstructor] constructor(); + readonly attribute DocumentFragment content; }; diff --git a/components/script/dom/webidls/HTMLTextAreaElement.webidl b/components/script/dom/webidls/HTMLTextAreaElement.webidl index 88c69ef19aa..d14eacfd99d 100644 --- a/components/script/dom/webidls/HTMLTextAreaElement.webidl +++ b/components/script/dom/webidls/HTMLTextAreaElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltextareaelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTextAreaElement : HTMLElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute DOMString autocomplete; // [CEReactions] diff --git a/components/script/dom/webidls/HTMLTimeElement.webidl b/components/script/dom/webidls/HTMLTimeElement.webidl index b137c99ec1b..27dbf26cb88 100644 --- a/components/script/dom/webidls/HTMLTimeElement.webidl +++ b/components/script/dom/webidls/HTMLTimeElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltimeelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTimeElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString dateTime; }; diff --git a/components/script/dom/webidls/HTMLTitleElement.webidl b/components/script/dom/webidls/HTMLTitleElement.webidl index 8871eca3a70..49fc9e0daf4 100644 --- a/components/script/dom/webidls/HTMLTitleElement.webidl +++ b/components/script/dom/webidls/HTMLTitleElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltitleelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTitleElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions, Pure] attribute DOMString text; }; diff --git a/components/script/dom/webidls/HTMLTrackElement.webidl b/components/script/dom/webidls/HTMLTrackElement.webidl index fb9e616a449..350901cf2e9 100644 --- a/components/script/dom/webidls/HTMLTrackElement.webidl +++ b/components/script/dom/webidls/HTMLTrackElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmltrackelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLTrackElement : HTMLElement { + [HTMLConstructor] constructor(); + [CEReactions] attribute DOMString kind; [CEReactions] diff --git a/components/script/dom/webidls/HTMLUListElement.webidl b/components/script/dom/webidls/HTMLUListElement.webidl index b543c91418c..479e46961c9 100644 --- a/components/script/dom/webidls/HTMLUListElement.webidl +++ b/components/script/dom/webidls/HTMLUListElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlulistelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLUListElement : HTMLElement { + [HTMLConstructor] constructor(); + // also has obsolete members }; diff --git a/components/script/dom/webidls/HTMLVideoElement.webidl b/components/script/dom/webidls/HTMLVideoElement.webidl index 582e017cc71..d9e6b86e4bb 100644 --- a/components/script/dom/webidls/HTMLVideoElement.webidl +++ b/components/script/dom/webidls/HTMLVideoElement.webidl @@ -3,8 +3,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#htmlvideoelement -[Exposed=Window, HTMLConstructor] +[Exposed=Window] interface HTMLVideoElement : HTMLMediaElement { + [HTMLConstructor] constructor(); + // [CEReactions] // attribute unsigned long width; // [CEReactions] |