aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-10-19 11:18:05 -0400
committerGitHub <noreply@github.com>2019-10-19 11:18:05 -0400
commit55e60f992c0a29dd9c3d168f586b5172e90bd35a (patch)
tree4420f5db7dc55b7d36f560880b85833ae4d7a696
parent175c0d56ca48cea180500931f8a44acd1ac713be (diff)
parente271edad927c6cfb304e9df8719d7ed5fe0309f9 (diff)
downloadservo-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. -->
-rw-r--r--components/script/dom/bindings/codegen/Configuration.py8
-rw-r--r--components/script/dom/bindings/codegen/parser/WebIDL.py199
-rw-r--r--components/script/dom/bindings/codegen/parser/tests/test_constructor.py22
-rw-r--r--components/script/dom/bindings/codegen/parser/tests/test_constructor_global.py18
-rw-r--r--components/script/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py19
-rw-r--r--components/script/dom/webidls/HTMLAnchorElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLAreaElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLAudioElement.webidl6
-rw-r--r--components/script/dom/webidls/HTMLBRElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLBaseElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLBodyElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLButtonElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLCanvasElement.webidl5
-rw-r--r--components/script/dom/webidls/HTMLDListElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLDataElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLDataListElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLDetailsElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLDialogElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLDirectoryElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLDivElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLEmbedElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLFieldSetElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLFontElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLFormElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLFrameElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLFrameSetElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLHRElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLHeadElement.webidl6
-rw-r--r--components/script/dom/webidls/HTMLHeadingElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLHtmlElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLIFrameElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLImageElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLInputElement.webidl5
-rw-r--r--components/script/dom/webidls/HTMLLIElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLLabelElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLLegendElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLLinkElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLMapElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLMetaElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLMeterElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLModElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLOListElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLObjectElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLOptGroupElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLOptionElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLOutputElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLParagraphElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLParamElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLPictureElement.webidl6
-rw-r--r--components/script/dom/webidls/HTMLPreElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLProgressElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLQuoteElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLScriptElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLSelectElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLSourceElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLSpanElement.webidl6
-rw-r--r--components/script/dom/webidls/HTMLStyleElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableCaptionElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableCellElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableColElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableRowElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTableSectionElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTemplateElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTextAreaElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTimeElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTitleElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLTrackElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLUListElement.webidl4
-rw-r--r--components/script/dom/webidls/HTMLVideoElement.webidl4
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]