Convert [HTMLConstructor] as constructor extension

This commit is contained in:
Kagami Sascha Rosylight 2019-10-19 20:26:20 +09:00
parent 175c0d56ca
commit e271edad92
71 changed files with 322 additions and 216 deletions

View file

@ -392,15 +392,19 @@ class Descriptor(DescriptorProvider):
return (self.interface.getUserData("hasConcreteDescendant", False) or return (self.interface.getUserData("hasConcreteDescendant", False) or
self.interface.getUserData("hasProxyDescendant", False)) self.interface.getUserData("hasProxyDescendant", False))
def hasHTMLConstructor(self):
ctor = self.interface.ctor()
return ctor and ctor.isHTMLConstructor()
def shouldHaveGetConstructorObjectMethod(self): def shouldHaveGetConstructorObjectMethod(self):
assert self.interface.hasInterfaceObject() assert self.interface.hasInterfaceObject()
if self.interface.getExtendedAttribute("Inline"): if self.interface.getExtendedAttribute("Inline"):
return False return False
return (self.interface.isCallback() or self.interface.isNamespace() or return (self.interface.isCallback() or self.interface.isNamespace() or
self.hasDescendants() or self.interface.getExtendedAttribute("HTMLConstructor")) self.hasDescendants() or self.hasHTMLConstructor())
def shouldCacheConstructor(self): def shouldCacheConstructor(self):
return self.hasDescendants() or self.interface.getExtendedAttribute("HTMLConstructor") return self.hasDescendants() or self.hasHTMLConstructor()
def isExposedConditionally(self): def isExposedConditionally(self):
return self.interface.isExposedConditionally() return self.interface.isExposedConditionally()

View file

@ -1084,18 +1084,11 @@ class IDLInterfaceOrNamespace(IDLInterfaceOrInterfaceMixinOrNamespace):
"Can't have both a constructor and [Global]", "Can't have both a constructor and [Global]",
[self.location, ctor.location]) [self.location, ctor.location])
assert(len(ctor._exposureGlobalNames) == 0 or assert(ctor._exposureGlobalNames == self._exposureGlobalNames)
ctor._exposureGlobalNames == self._exposureGlobalNames)
ctor._exposureGlobalNames.update(self._exposureGlobalNames) ctor._exposureGlobalNames.update(self._exposureGlobalNames)
if ctor in self.members: # Remove the constructor operation from our member list so
# constructor operation. # it doesn't get in the way later.
self.members.remove(ctor) 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)
for ctor in self.namedConstructors: for ctor in self.namedConstructors:
if self.globalNames: if self.globalNames:
@ -1653,60 +1646,45 @@ class IDLInterface(IDLInterfaceOrNamespace):
[attr.location]) [attr.location])
self._noInterfaceObject = True self._noInterfaceObject = True
elif identifier == "NamedConstructor" or identifier == "HTMLConstructor": elif identifier == "NamedConstructor":
if identifier == "NamedConstructor" and not attr.hasValue(): if not attr.hasValue():
raise WebIDLError("NamedConstructor must either take an identifier or take a named argument list", raise WebIDLError("NamedConstructor must either take an identifier or take a named argument list",
[attr.location]) [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 [] args = attr.args() if attr.hasArgs() else []
retType = IDLWrapperType(self.location, self) retType = IDLWrapperType(self.location, self)
if identifier == "HTMLConstructor": method = IDLConstructor(attr.location, args, attr.value())
name = "constructor"
allowForbidden = True
else:
name = attr.value()
allowForbidden = False
method = IDLConstructor(
attr.location, args, name,
htmlConstructor=(identifier == "HTMLConstructor"))
method.reallyInit(self) method.reallyInit(self)
# Are always assumed to be able to throw (since there's no way to # Named constructors are always assumed to be able to
# indicate otherwise). # throw (since there's no way to indicate otherwise).
method.addExtendedAttributes( method.addExtendedAttributes(
[IDLExtendedAttribute(self.location, ("Throws",))]) [IDLExtendedAttribute(self.location, ("Throws",))])
if identifier == "HTMLConstructor": # We need to detect conflicts for NamedConstructors across
method.resolve(self) # interfaces. We first call resolve on the parentScope,
else: # which will merge all NamedConstructors with the same
# We need to detect conflicts for NamedConstructors across # identifier accross interfaces as overloads.
# interfaces. We first call resolve on the parentScope, method.resolve(self.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 # Then we look up the identifier on the parentScope. If the
# result is the same as the method we're adding then it # 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 # hasn't been added as an overload and it's the first time
# we've encountered a NamedConstructor with that identifier. # we've encountered a NamedConstructor with that identifier.
# If the result is not the same as the method we're adding # 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 # then it has been added as an overload and we need to check
# whether the result is actually one of our existing # whether the result is actually one of our existing
# NamedConstructors. # NamedConstructors.
newMethod = self.parentScope.lookupIdentifier(method.identifier) newMethod = self.parentScope.lookupIdentifier(method.identifier)
if newMethod == method: if newMethod == method:
self.namedConstructors.append(method) self.namedConstructors.append(method)
elif newMethod not in self.namedConstructors: elif newMethod not in self.namedConstructors:
raise WebIDLError("NamedConstructor conflicts with a NamedConstructor of a different interface", raise WebIDLError("NamedConstructor conflicts with a "
[method.location, newMethod.location]) "NamedConstructor of a different interface",
[method.location, newMethod.location])
elif (identifier == "ExceptionClass"): elif (identifier == "ExceptionClass"):
if not attr.noArguments(): if not attr.noArguments():
raise WebIDLError("[ExceptionClass] must take no arguments", raise WebIDLError("[ExceptionClass] must take no arguments",
@ -1777,6 +1755,11 @@ class IDLInterface(IDLInterfaceOrNamespace):
if not attr.hasValue(): if not attr.hasValue():
raise WebIDLError("[%s] must have a value" % identifier, raise WebIDLError("[%s] must have a value" % identifier,
[attr.location]) [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: else:
raise WebIDLError("Unknown extended attribute %s on interface" % identifier, raise WebIDLError("Unknown extended attribute %s on interface" % identifier,
[attr.location]) [attr.location])
@ -4884,7 +4867,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
static=False, getter=False, setter=False, static=False, getter=False, setter=False,
deleter=False, specialType=NamedOrIndexed.Neither, deleter=False, specialType=NamedOrIndexed.Neither,
legacycaller=False, stringifier=False, legacycaller=False, stringifier=False,
maplikeOrSetlikeOrIterable=None, htmlConstructor=False): maplikeOrSetlikeOrIterable=None):
# REVIEW: specialType is NamedOrIndexed -- wow, this is messed up. # REVIEW: specialType is NamedOrIndexed -- wow, this is messed up.
IDLInterfaceMember.__init__(self, location, identifier, IDLInterfaceMember.__init__(self, location, identifier,
IDLInterfaceMember.Tags.Method) IDLInterfaceMember.Tags.Method)
@ -4910,10 +4893,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
self._stringifier = stringifier self._stringifier = stringifier
assert maplikeOrSetlikeOrIterable is None or isinstance(maplikeOrSetlikeOrIterable, IDLMaplikeOrSetlikeOrIterableBase) assert maplikeOrSetlikeOrIterable is None or isinstance(maplikeOrSetlikeOrIterable, IDLMaplikeOrSetlikeOrIterableBase)
self.maplikeOrSetlikeOrIterable = maplikeOrSetlikeOrIterable self.maplikeOrSetlikeOrIterable = maplikeOrSetlikeOrIterable
assert isinstance(htmlConstructor, bool) self._htmlConstructor = False
# The identifier of a HTMLConstructor must be 'constructor'.
assert not htmlConstructor or identifier.name == "constructor"
self._htmlConstructor = htmlConstructor
self._specialType = specialType self._specialType = specialType
self._unforgeable = False self._unforgeable = False
self.dependsOn = "Everything" self.dependsOn = "Everything"
@ -5408,14 +5388,13 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
class IDLConstructor(IDLMethod): 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 # 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 # return type yet. Just save the info we have for now and we will init
# it later. # it later.
self._initLocation = location self._initLocation = location
self._initArgs = args self._initArgs = args
self._initName = name self._initName = name
self._htmlConstructor = htmlConstructor
self._inited = False self._inited = False
self._initExtendedAttrs = [] self._initExtendedAttrs = []
@ -5432,6 +5411,18 @@ class IDLConstructor(IDLMethod):
identifier == "SecureContext" or identifier == "SecureContext" or
identifier == "Throws"): identifier == "Throws"):
IDLMethod.handleExtendedAttribute(self, attr) 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: else:
raise WebIDLError("Unknown extended attribute %s on method" % identifier, raise WebIDLError("Unknown extended attribute %s on method" % identifier,
[attr.location]) [attr.location])
@ -5442,7 +5433,7 @@ class IDLConstructor(IDLMethod):
identifier = IDLUnresolvedIdentifier(location, name, allowForbidden=True) identifier = IDLUnresolvedIdentifier(location, name, allowForbidden=True)
retType = IDLWrapperType(parentInterface.location, parentInterface) retType = IDLWrapperType(parentInterface.location, parentInterface)
IDLMethod.__init__(self, location, identifier, retType, self._initArgs, IDLMethod.__init__(self, location, identifier, retType, self._initArgs,
static=True, htmlConstructor=self._htmlConstructor) static=True)
self._inited = True; self._inited = True;
# Propagate through whatever extended attributes we already had # Propagate through whatever extended attributes we already had
self.addExtendedAttributes(self._initExtendedAttrs) self.addExtendedAttributes(self._initExtendedAttrs)
@ -5660,6 +5651,8 @@ class Tokenizer(object):
"namespace": "NAMESPACE", "namespace": "NAMESPACE",
"ReadableStream": "READABLESTREAM", "ReadableStream": "READABLESTREAM",
"constructor": "CONSTRUCTOR", "constructor": "CONSTRUCTOR",
"symbol": "SYMBOL",
"async": "ASYNC",
} }
tokens.extend(keywords.values()) tokens.extend(keywords.values())
@ -6746,37 +6739,54 @@ class Parser(Tokenizer):
def p_ArgumentName(self, p): def p_ArgumentName(self, p):
""" """
ArgumentName : IDENTIFIER ArgumentName : IDENTIFIER
| ATTRIBUTE | ArgumentNameKeyword
| CALLBACK """
| CONST p[0] = p[1]
| CONSTRUCTOR
| DELETER def p_ArgumentNameKeyword(self, p):
| DICTIONARY """
| ENUM ArgumentNameKeyword : ASYNC
| EXCEPTION | ATTRIBUTE
| GETTER | CALLBACK
| INHERIT | CONST
| INTERFACE | CONSTRUCTOR
| ITERABLE | DELETER
| LEGACYCALLER | DICTIONARY
| MAPLIKE | ENUM
| PARTIAL | EXCEPTION
| REQUIRED | GETTER
| SERIALIZER | INCLUDES
| SETLIKE | INHERIT
| SETTER | INTERFACE
| STATIC | ITERABLE
| STRINGIFIER | LEGACYCALLER
| TYPEDEF | MAPLIKE
| UNRESTRICTED | MIXIN
| NAMESPACE | NAMESPACE
| PARTIAL
| READONLY
| REQUIRED
| SERIALIZER
| SETLIKE
| SETTER
| STATIC
| STRINGIFIER
| TYPEDEF
| UNRESTRICTED
""" """
p[0] = p[1] p[0] = p[1]
def p_AttributeName(self, p): def p_AttributeName(self, p):
""" """
AttributeName : IDENTIFIER AttributeName : IDENTIFIER
| REQUIRED | AttributeNameKeyword
"""
p[0] = p[1]
def p_AttributeNameKeyword(self, p):
"""
AttributeNameKeyword : ASYNC
| REQUIRED
""" """
p[0] = p[1] p[0] = p[1]
@ -6868,36 +6878,27 @@ class Parser(Tokenizer):
| BYTESTRING | BYTESTRING
| USVSTRING | USVSTRING
| JSSTRING | JSSTRING
| PROMISE
| ANY | ANY
| ATTRIBUTE
| BOOLEAN | BOOLEAN
| BYTE | BYTE
| LEGACYCALLER
| CONST
| CONSTRUCTOR
| DELETER
| DOUBLE | DOUBLE
| EXCEPTION
| FALSE | FALSE
| FLOAT | FLOAT
| GETTER
| INHERIT
| INTERFACE
| LONG | LONG
| NULL | NULL
| OBJECT | OBJECT
| OCTET | OCTET
| OR
| OPTIONAL | OPTIONAL
| SEQUENCE
| RECORD | RECORD
| SETTER | SEQUENCE
| SHORT | SHORT
| STATIC | SYMBOL
| STRINGIFIER
| TRUE | TRUE
| TYPEDEF
| UNSIGNED | UNSIGNED
| VOID | VOID
| ArgumentNameKeyword
""" """
pass pass

View file

@ -105,8 +105,8 @@ def WebIDLTest(parser, harness):
parser = parser.reset() parser = parser.reset()
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructor { interface TestHTMLConstructor {
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -138,8 +138,8 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor(DOMString a)]
interface TestHTMLConstructorWithArgs { interface TestHTMLConstructorWithArgs {
[HTMLConstructor] constructor(DOMString a);
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -153,8 +153,8 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
callback interface TestHTMLConstructorOnCallbackInterface { callback interface TestHTMLConstructorOnCallbackInterface {
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -168,9 +168,9 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
constructor(); constructor();
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -183,10 +183,10 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
[Throws] [Throws]
constructor(); constructor();
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -200,9 +200,9 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
constructor(DOMString a); constructor(DOMString a);
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -216,10 +216,10 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
[Throws] [Throws]
constructor(DOMString a); constructor(DOMString a);
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -235,10 +235,10 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
[ChromeOnly] [ChromeOnly]
constructor(); constructor();
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -252,10 +252,10 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
[Throws, ChromeOnly] [Throws, ChromeOnly]
constructor(); constructor();
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -270,10 +270,10 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
[ChromeOnly] [ChromeOnly]
constructor(DOMString a); constructor(DOMString a);
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()
@ -288,10 +288,10 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[HTMLConstructor]
interface TestHTMLConstructorAndConstructor { interface TestHTMLConstructorAndConstructor {
[Throws, ChromeOnly] [Throws, ChromeOnly]
constructor(DOMString a); constructor(DOMString a);
[HTMLConstructor] constructor();
}; };
""") """)
results = parser.finish() results = parser.finish()

View file

@ -50,23 +50,9 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[Global, HTMLConstructor, Exposed=TestHTMLConstructorGlobal] [Global, 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]
interface TestHTMLConstructorGlobal { interface TestHTMLConstructorGlobal {
[HTMLConstructor] constructor();
}; };
""") """)

View file

@ -28,24 +28,9 @@ def WebIDLTest(parser, harness):
threw = False threw = False
try: try:
parser.parse(""" parser.parse("""
[NoInterfaceObject, HTMLConstructor] [NoInterfaceObject]
interface TestHTMLConstructorNoInterfaceObject {
};
""")
results = parser.finish()
except:
threw = True
harness.ok(threw, "Should have thrown.")
parser = parser.reset()
threw = False
try:
parser.parse("""
[HTMLConstructor, NoInterfaceObject]
interface TestHTMLConstructorNoInterfaceObject { interface TestHTMLConstructorNoInterfaceObject {
[HTMLConstructor] constructor();
}; };
""") """)

View file

@ -11,8 +11,10 @@
*/ */
// https://html.spec.whatwg.org/multipage/#htmlanchorelement // https://html.spec.whatwg.org/multipage/#htmlanchorelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLAnchorElement : HTMLElement { interface HTMLAnchorElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString target; attribute DOMString target;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlareaelement // https://html.spec.whatwg.org/multipage/#htmlareaelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLAreaElement : HTMLElement { interface HTMLAreaElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString alt; // attribute DOMString alt;
// [CEReactions] // [CEReactions]

View file

@ -3,5 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlaudioelement // https://html.spec.whatwg.org/multipage/#htmlaudioelement
[Exposed=Window, HTMLConstructor, NamedConstructor=Audio(optional DOMString src)] [Exposed=Window, NamedConstructor=Audio(optional DOMString src)]
interface HTMLAudioElement : HTMLMediaElement {}; interface HTMLAudioElement : HTMLMediaElement {
[HTMLConstructor] constructor();
};

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlbrelement // https://html.spec.whatwg.org/multipage/#htmlbrelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLBRElement : HTMLElement { interface HTMLBRElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlbaseelement // https://html.spec.whatwg.org/multipage/#htmlbaseelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLBaseElement : HTMLElement { interface HTMLBaseElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString href; attribute DOMString href;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#the-body-element // https://html.spec.whatwg.org/multipage/#the-body-element
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLBodyElement : HTMLElement { interface HTMLBodyElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };
HTMLBodyElement includes WindowEventHandlers; HTMLBodyElement includes WindowEventHandlers;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlbuttonelement // https://html.spec.whatwg.org/multipage/#htmlbuttonelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLButtonElement : HTMLElement { interface HTMLButtonElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute boolean autofocus; // attribute boolean autofocus;
[CEReactions] [CEReactions]

View file

@ -5,9 +5,10 @@
// https://html.spec.whatwg.org/multipage/#htmlcanvaselement // https://html.spec.whatwg.org/multipage/#htmlcanvaselement
typedef (CanvasRenderingContext2D or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext; typedef (CanvasRenderingContext2D or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext;
[Exposed=Window, [Exposed=Window]
HTMLConstructor]
interface HTMLCanvasElement : HTMLElement { interface HTMLCanvasElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions, Pure] attribute unsigned long width; [CEReactions, Pure] attribute unsigned long width;
[CEReactions, Pure] attribute unsigned long height; [CEReactions, Pure] attribute unsigned long height;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldlistelement // https://html.spec.whatwg.org/multipage/#htmldlistelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDListElement : HTMLElement { interface HTMLDListElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldataelement // https://html.spec.whatwg.org/multipage/#htmldataelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDataElement : HTMLElement { interface HTMLDataElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString value; attribute DOMString value;
}; };

View file

@ -3,7 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldatalistelement // https://html.spec.whatwg.org/multipage/#htmldatalistelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDataListElement : HTMLElement { interface HTMLDataListElement : HTMLElement {
[HTMLConstructor] constructor();
readonly attribute HTMLCollection options; readonly attribute HTMLCollection options;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldetailselement // https://html.spec.whatwg.org/multipage/#htmldetailselement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDetailsElement : HTMLElement { interface HTMLDetailsElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute boolean open; attribute boolean open;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldialogelement // https://html.spec.whatwg.org/multipage/#htmldialogelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDialogElement : HTMLElement { interface HTMLDialogElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute boolean open; attribute boolean open;
attribute DOMString returnValue; attribute DOMString returnValue;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldirectoryelement // https://html.spec.whatwg.org/multipage/#htmldirectoryelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDirectoryElement : HTMLElement { interface HTMLDirectoryElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute boolean compact; // attribute boolean compact;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmldivelement // https://html.spec.whatwg.org/multipage/#htmldivelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLDivElement : HTMLElement { interface HTMLDivElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlelement // https://html.spec.whatwg.org/multipage/#htmlelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLElement : Element { interface HTMLElement : Element {
[HTMLConstructor] constructor();
// metadata attributes // metadata attributes
[CEReactions] [CEReactions]
attribute DOMString title; attribute DOMString title;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlembedelement // https://html.spec.whatwg.org/multipage/#htmlembedelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLEmbedElement : HTMLElement { interface HTMLEmbedElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString src; // attribute DOMString src;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlfieldsetelement // https://html.spec.whatwg.org/multipage/#htmlfieldsetelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLFieldSetElement : HTMLElement { interface HTMLFieldSetElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute boolean disabled; attribute boolean disabled;
readonly attribute HTMLFormElement? form; readonly attribute HTMLFormElement? form;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlfontelement // https://html.spec.whatwg.org/multipage/#htmlfontelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLFontElement : HTMLElement { interface HTMLFontElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute [TreatNullAs=EmptyString] DOMString color; attribute [TreatNullAs=EmptyString] DOMString color;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlformelement // https://html.spec.whatwg.org/multipage/#htmlformelement
[Exposed=Window, /*OverrideBuiltins, */HTMLConstructor] [Exposed=Window]
interface HTMLFormElement : HTMLElement { interface HTMLFormElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString acceptCharset; attribute DOMString acceptCharset;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlframeelement // https://html.spec.whatwg.org/multipage/#htmlframeelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLFrameElement : HTMLElement { interface HTMLFrameElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString name; // attribute DOMString name;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlframesetelement // https://html.spec.whatwg.org/multipage/#htmlframesetelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLFrameSetElement : HTMLElement { interface HTMLFrameSetElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString cols; // attribute DOMString cols;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlhrelement // https://html.spec.whatwg.org/multipage/#htmlhrelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLHRElement : HTMLElement { interface HTMLHRElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,5 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlheadelement // https://html.spec.whatwg.org/multipage/#htmlheadelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLHeadElement : HTMLElement {}; interface HTMLHeadElement : HTMLElement {
[HTMLConstructor] constructor();
};

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlheadingelement // https://html.spec.whatwg.org/multipage/#htmlheadingelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLHeadingElement : HTMLElement { interface HTMLHeadingElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlhtmlelement // https://html.spec.whatwg.org/multipage/#htmlhtmlelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLHtmlElement : HTMLElement { interface HTMLHtmlElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmliframeelement // https://html.spec.whatwg.org/multipage/#htmliframeelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLIFrameElement : HTMLElement { interface HTMLIFrameElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute USVString src; attribute USVString src;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlimageelement // 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 { interface HTMLImageElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString alt; attribute DOMString alt;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlinputelement // https://html.spec.whatwg.org/multipage/#htmlinputelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLInputElement : HTMLElement { interface HTMLInputElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString accept; attribute DOMString accept;
[CEReactions] [CEReactions]
@ -109,7 +111,6 @@ interface HTMLInputElement : HTMLElement {
// Select with file-system paths for testing purpose // Select with file-system paths for testing purpose
[Pref="dom.testing.htmlinputelement.select_files.enabled"] [Pref="dom.testing.htmlinputelement.select_files.enabled"]
void selectFiles(sequence<DOMString> path); void selectFiles(sequence<DOMString> path);
}; };
// https://html.spec.whatwg.org/multipage/#HTMLInputElement-partial // https://html.spec.whatwg.org/multipage/#HTMLInputElement-partial

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmllielement // https://html.spec.whatwg.org/multipage/#htmllielement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLLIElement : HTMLElement { interface HTMLLIElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute long value; attribute long value;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmllabelelement // https://html.spec.whatwg.org/multipage/#htmllabelelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLLabelElement : HTMLElement { interface HTMLLabelElement : HTMLElement {
[HTMLConstructor] constructor();
readonly attribute HTMLFormElement? form; readonly attribute HTMLFormElement? form;
[CEReactions] [CEReactions]
attribute DOMString htmlFor; attribute DOMString htmlFor;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmllegendelement // https://html.spec.whatwg.org/multipage/#htmllegendelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLLegendElement : HTMLElement { interface HTMLLegendElement : HTMLElement {
[HTMLConstructor] constructor();
readonly attribute HTMLFormElement? form; readonly attribute HTMLFormElement? form;
// also has obsolete members // also has obsolete members

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmllinkelement // https://html.spec.whatwg.org/multipage/#htmllinkelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLLinkElement : HTMLElement { interface HTMLLinkElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute USVString href; attribute USVString href;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlmapelement // https://html.spec.whatwg.org/multipage/#htmlmapelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLMapElement : HTMLElement { interface HTMLMapElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString name; // attribute DOMString name;
// readonly attribute HTMLCollection areas; // readonly attribute HTMLCollection areas;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlmetaelement // https://html.spec.whatwg.org/multipage/#htmlmetaelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLMetaElement : HTMLElement { interface HTMLMetaElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString name; attribute DOMString name;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlmeterelement // https://html.spec.whatwg.org/multipage/#htmlmeterelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLMeterElement : HTMLElement { interface HTMLMeterElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute double value; // attribute double value;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlmodelement // https://html.spec.whatwg.org/multipage/#htmlmodelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLModElement : HTMLElement { interface HTMLModElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString cite; // attribute DOMString cite;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlolistelement // https://html.spec.whatwg.org/multipage/#htmlolistelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLOListElement : HTMLElement { interface HTMLOListElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute boolean reversed; // attribute boolean reversed;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlobjectelement // https://html.spec.whatwg.org/multipage/#htmlobjectelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLObjectElement : HTMLElement { interface HTMLObjectElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString data; // attribute DOMString data;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmloptgroupelement // https://html.spec.whatwg.org/multipage/#htmloptgroupelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLOptGroupElement : HTMLElement { interface HTMLOptGroupElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute boolean disabled; attribute boolean disabled;
// [CEReactions] // [CEReactions]

View file

@ -3,10 +3,12 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmloptionelement // 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 defaultSelected = false,
optional boolean selected = false)*/] optional boolean selected = false)*/]
interface HTMLOptionElement : HTMLElement { interface HTMLOptionElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute boolean disabled; attribute boolean disabled;
readonly attribute HTMLFormElement? form; readonly attribute HTMLFormElement? form;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmloutputelement // https://html.spec.whatwg.org/multipage/#htmloutputelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLOutputElement : HTMLElement { interface HTMLOutputElement : HTMLElement {
[HTMLConstructor] constructor();
// [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor; // [SameObject, PutForwards=value] readonly attribute DOMTokenList htmlFor;
readonly attribute HTMLFormElement? form; readonly attribute HTMLFormElement? form;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlparagraphelement // https://html.spec.whatwg.org/multipage/#htmlparagraphelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLParagraphElement : HTMLElement { interface HTMLParagraphElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlparamelement // https://html.spec.whatwg.org/multipage/#htmlparamelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLParamElement : HTMLElement { interface HTMLParamElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString name; // attribute DOMString name;
// [CEReactions] // [CEReactions]

View file

@ -3,5 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlpictureelement // https://html.spec.whatwg.org/multipage/#htmlpictureelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLPictureElement : HTMLElement {}; interface HTMLPictureElement : HTMLElement {
[HTMLConstructor] constructor();
};

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlpreelement // https://html.spec.whatwg.org/multipage/#htmlpreelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLPreElement : HTMLElement { interface HTMLPreElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlprogresselement // https://html.spec.whatwg.org/multipage/#htmlprogresselement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLProgressElement : HTMLElement { interface HTMLProgressElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute double value; // attribute double value;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlquoteelement // https://html.spec.whatwg.org/multipage/#htmlquoteelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLQuoteElement : HTMLElement { interface HTMLQuoteElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString cite; // attribute DOMString cite;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlscriptelement // https://html.spec.whatwg.org/multipage/#htmlscriptelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLScriptElement : HTMLElement { interface HTMLScriptElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute USVString src; attribute USVString src;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlselectelement // https://html.spec.whatwg.org/multipage/#htmlselectelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLSelectElement : HTMLElement { interface HTMLSelectElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute boolean autofocus; // attribute boolean autofocus;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlsourceelement // https://html.spec.whatwg.org/multipage/#htmlsourceelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLSourceElement : HTMLElement { interface HTMLSourceElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString src; attribute DOMString src;
[CEReactions] [CEReactions]

View file

@ -3,5 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlspanelement // https://html.spec.whatwg.org/multipage/#htmlspanelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLSpanElement : HTMLElement {}; interface HTMLSpanElement : HTMLElement {
[HTMLConstructor] constructor();
};

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlstyleelement // https://html.spec.whatwg.org/multipage/#htmlstyleelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLStyleElement : HTMLElement { interface HTMLStyleElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString media; // attribute DOMString media;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltablecaptionelement // https://html.spec.whatwg.org/multipage/#htmltablecaptionelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTableCaptionElement : HTMLElement { interface HTMLTableCaptionElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltablecellelement // https://html.spec.whatwg.org/multipage/#htmltablecellelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTableCellElement : HTMLElement { interface HTMLTableCellElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute unsigned long colSpan; attribute unsigned long colSpan;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltablecolelement // https://html.spec.whatwg.org/multipage/#htmltablecolelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTableColElement : HTMLElement { interface HTMLTableColElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute unsigned long span; // attribute unsigned long span;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltableelement // https://html.spec.whatwg.org/multipage/#htmltableelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTableElement : HTMLElement { interface HTMLTableElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute HTMLTableCaptionElement? caption; attribute HTMLTableCaptionElement? caption;
HTMLTableCaptionElement createCaption(); HTMLTableCaptionElement createCaption();

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltablerowelement // https://html.spec.whatwg.org/multipage/#htmltablerowelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTableRowElement : HTMLElement { interface HTMLTableRowElement : HTMLElement {
[HTMLConstructor] constructor();
readonly attribute long rowIndex; readonly attribute long rowIndex;
readonly attribute long sectionRowIndex; readonly attribute long sectionRowIndex;
readonly attribute HTMLCollection cells; readonly attribute HTMLCollection cells;

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltablesectionelement // https://html.spec.whatwg.org/multipage/#htmltablesectionelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTableSectionElement : HTMLElement { interface HTMLTableSectionElement : HTMLElement {
[HTMLConstructor] constructor();
readonly attribute HTMLCollection rows; readonly attribute HTMLCollection rows;
[Throws] [Throws]
HTMLElement insertRow(optional long index = -1); HTMLElement insertRow(optional long index = -1);

View file

@ -3,7 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltemplateelement // https://html.spec.whatwg.org/multipage/#htmltemplateelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTemplateElement : HTMLElement { interface HTMLTemplateElement : HTMLElement {
[HTMLConstructor] constructor();
readonly attribute DocumentFragment content; readonly attribute DocumentFragment content;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltextareaelement // https://html.spec.whatwg.org/multipage/#htmltextareaelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTextAreaElement : HTMLElement { interface HTMLTextAreaElement : HTMLElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute DOMString autocomplete; // attribute DOMString autocomplete;
// [CEReactions] // [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltimeelement // https://html.spec.whatwg.org/multipage/#htmltimeelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTimeElement : HTMLElement { interface HTMLTimeElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString dateTime; attribute DOMString dateTime;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltitleelement // https://html.spec.whatwg.org/multipage/#htmltitleelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTitleElement : HTMLElement { interface HTMLTitleElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions, Pure] [CEReactions, Pure]
attribute DOMString text; attribute DOMString text;
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmltrackelement // https://html.spec.whatwg.org/multipage/#htmltrackelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLTrackElement : HTMLElement { interface HTMLTrackElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] [CEReactions]
attribute DOMString kind; attribute DOMString kind;
[CEReactions] [CEReactions]

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlulistelement // https://html.spec.whatwg.org/multipage/#htmlulistelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLUListElement : HTMLElement { interface HTMLUListElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members // also has obsolete members
}; };

View file

@ -3,8 +3,10 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlvideoelement // https://html.spec.whatwg.org/multipage/#htmlvideoelement
[Exposed=Window, HTMLConstructor] [Exposed=Window]
interface HTMLVideoElement : HTMLMediaElement { interface HTMLVideoElement : HTMLMediaElement {
[HTMLConstructor] constructor();
// [CEReactions] // [CEReactions]
// attribute unsigned long width; // attribute unsigned long width;
// [CEReactions] // [CEReactions]