зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1423562 part 3. Remove [PrimaryGlobal] and require explicit [Exposed] annotations on everything. r=edgar
For review purposes, the important changes are in dom/bindings/Configuration.py and dom/bindings/parser. The changes to the IDL files were done by running these in dom/webidl and dom/bindings/test: perl -pi -e 's/^interface ([A-Za-z0-9_]+)($| [:{])/[Exposed=Window]\ninterface \1\2/' *.webidl perl -pi -e 'BEGIN { $/ = undef; } s/\[HTMLConstructor\]\n\[Exposed=Window\]/[HTMLConstructor,\n Exposed=Window]/g' *.webidl perl -pi -e 'BEGIN { $/ = undef; } s/\[NoInterfaceObject\]\n\[Exposed=Window\]/[NoInterfaceObject,\n Exposed=Window]/g' *.webidl perl -pi -e 'BEGIN { $/ = undef; } s/\[ChromeOnly\]\n\[Exposed=Window\]/[ChromeOnly,\n Exposed=Window]/g' *.webidl And running this in dom/chrome-webidl: perl -pi -e 'BEGIN { $/ = undef; } s/\[ChromeOnly\]\ninterface/[ChromeOnly, Exposed=Window]\ninterface/g' *.webidl and then fixing all the resulting parser failures. I then verified that the generated code is the same as before this change. Differential Revision: https://phabricator.services.mozilla.com/D46697 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
29f544b623
Коммит
e5497b955e
|
@ -708,9 +708,8 @@ struct NamedConstructor {
|
|||
* underlying global.
|
||||
* unscopableNames if not null it points to a null-terminated list of const
|
||||
* char* names of the unscopable properties for this interface.
|
||||
* isGlobal if true, we're creating interface objects for a [Global] or
|
||||
* [PrimaryGlobal] interface, and hence shouldn't define properties on
|
||||
* the prototype object.
|
||||
* isGlobal if true, we're creating interface objects for a [Global] interface,
|
||||
* and hence shouldn't define properties on the prototype object.
|
||||
* legacyWindowAliases if not null it points to a null-terminated list of const
|
||||
* char* names of the legacy window aliases for this
|
||||
* interface.
|
||||
|
|
|
@ -748,8 +748,7 @@ class Descriptor(DescriptorProvider):
|
|||
Returns true if this is the primary interface for a global object
|
||||
of some sort.
|
||||
"""
|
||||
return (self.interface.getExtendedAttribute("Global") or
|
||||
self.interface.getExtendedAttribute("PrimaryGlobal"))
|
||||
return self.interface.getExtendedAttribute("Global")
|
||||
|
||||
@property
|
||||
def namedPropertiesEnumerable(self):
|
||||
|
|
|
@ -236,8 +236,6 @@ class IDLScope(IDLObject):
|
|||
# A mapping from global name to the set of global interfaces
|
||||
# that have that global name.
|
||||
self.globalNameMapping = defaultdict(set)
|
||||
self.primaryGlobalAttr = None
|
||||
self.primaryGlobalName = None
|
||||
|
||||
def __str__(self):
|
||||
return self.QName()
|
||||
|
@ -465,8 +463,17 @@ class IDLExposureMixins():
|
|||
raise WebIDLError("Unknown [Exposed] value %s" % globalName,
|
||||
[self._location])
|
||||
|
||||
if len(self._exposureGlobalNames) == 0:
|
||||
self._exposureGlobalNames.add(scope.primaryGlobalName)
|
||||
# Verify that we are exposed _somwhere_ if we have some place to be
|
||||
# exposed. We don't want to assert that we're definitely exposed
|
||||
# because a lot of our parser tests have small-enough IDL snippets that
|
||||
# they don't include any globals, and we don't really want to go through
|
||||
# and add global interfaces and [Exposed] annotations to all those
|
||||
# tests.
|
||||
if len(scope.globalNames) != 0:
|
||||
if (len(self._exposureGlobalNames) == 0):
|
||||
raise WebIDLError(("'%s' is not exposed anywhere even though we have "
|
||||
"globals to be exposed to") % self,
|
||||
[self.location])
|
||||
|
||||
globalNameSetToExposureSet(scope, self._exposureGlobalNames,
|
||||
self.exposureSet)
|
||||
|
@ -798,8 +805,10 @@ class IDLInterfaceMixin(IDLInterfaceOrInterfaceMixinOrNamespace):
|
|||
# Expose to the globals of interfaces that includes this mixin if this
|
||||
# mixin has no explicit [Exposed] so that its members can be exposed
|
||||
# based on the base interface exposure set.
|
||||
# Make sure this is done before IDLExposureMixins.finish call to
|
||||
# prevent exposing to PrimaryGlobal by default.
|
||||
#
|
||||
# Make sure this is done before IDLExposureMixins.finish call, since
|
||||
# that converts our set of exposure global names to an actual exposure
|
||||
# set.
|
||||
hasImplicitExposure = len(self._exposureGlobalNames) == 0
|
||||
if hasImplicitExposure:
|
||||
self._exposureGlobalNames.update(self.actualExposureGlobalNames)
|
||||
|
@ -997,10 +1006,8 @@ class IDLInterfaceOrNamespace(IDLInterfaceOrInterfaceMixinOrNamespace):
|
|||
|
||||
self.totalMembersInSlots = self.parent.totalMembersInSlots
|
||||
|
||||
# Interfaces with [Global] or [PrimaryGlobal] must not
|
||||
# have anything inherit from them
|
||||
if (self.parent.getExtendedAttribute("Global") or
|
||||
self.parent.getExtendedAttribute("PrimaryGlobal")):
|
||||
# Interfaces with [Global] must not have anything inherit from them
|
||||
if self.parent.getExtendedAttribute("Global"):
|
||||
# Note: This is not a self.parent.isOnGlobalProtoChain() check
|
||||
# because ancestors of a [Global] interface can have other
|
||||
# descendants.
|
||||
|
@ -1094,7 +1101,7 @@ class IDLInterfaceOrNamespace(IDLInterfaceOrInterfaceMixinOrNamespace):
|
|||
if self.globalNames:
|
||||
raise WebIDLError(
|
||||
"Can't have both a named constructor and [Global]",
|
||||
[self.location, self.namedConstructors.location])
|
||||
[self.location, ctor.location])
|
||||
assert len(ctor._exposureGlobalNames) == 0
|
||||
ctor._exposureGlobalNames.update(self._exposureGlobalNames)
|
||||
ctor.finish(scope)
|
||||
|
@ -1718,20 +1725,6 @@ class IDLInterface(IDLInterfaceOrNamespace):
|
|||
self.parentScope.addIfaceGlobalNames(self.identifier.name,
|
||||
self.globalNames)
|
||||
self._isOnGlobalProtoChain = True
|
||||
elif identifier == "PrimaryGlobal":
|
||||
if not attr.noArguments():
|
||||
raise WebIDLError("[PrimaryGlobal] must take no arguments",
|
||||
[attr.location])
|
||||
if self.parentScope.primaryGlobalAttr is not None:
|
||||
raise WebIDLError(
|
||||
"[PrimaryGlobal] specified twice",
|
||||
[attr.location,
|
||||
self.parentScope.primaryGlobalAttr.location])
|
||||
self.parentScope.primaryGlobalAttr = attr
|
||||
self.parentScope.primaryGlobalName = self.identifier.name
|
||||
self.parentScope.addIfaceGlobalNames(self.identifier.name,
|
||||
[self.identifier.name])
|
||||
self._isOnGlobalProtoChain = True
|
||||
elif identifier == "LegacyWindowAlias":
|
||||
if attr.hasValue():
|
||||
self.legacyWindowAliases = [attr.value()]
|
||||
|
@ -3780,10 +3773,6 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
|||
return self._extendedAttrDict.get(name, None)
|
||||
|
||||
def finish(self, scope):
|
||||
# We better be exposed _somewhere_.
|
||||
if (len(self._exposureGlobalNames) == 0):
|
||||
print(self.identifier.name)
|
||||
assert len(self._exposureGlobalNames) != 0
|
||||
IDLExposureMixins.finish(self, scope)
|
||||
|
||||
def validate(self):
|
||||
|
@ -5484,10 +5473,8 @@ class IDLIncludesStatement(IDLObject):
|
|||
raise WebIDLError("Right-hand side of 'includes' is not an "
|
||||
"interface mixin",
|
||||
[self.mixin.location, mixin.location])
|
||||
if len(interface._exposureGlobalNames) != 0:
|
||||
mixin.actualExposureGlobalNames.update(interface._exposureGlobalNames)
|
||||
else:
|
||||
mixin.actualExposureGlobalNames.add(scope.primaryGlobalName);
|
||||
|
||||
mixin.actualExposureGlobalNames.update(interface._exposureGlobalNames)
|
||||
|
||||
interface.addIncludedMixin(mixin)
|
||||
self.interface = interface
|
||||
|
@ -7335,12 +7322,6 @@ class Parser(Tokenizer):
|
|||
|
||||
self._globalScope = IDLScope(BuiltinLocation("<Global Scope>"), None, None)
|
||||
|
||||
# To make our test harness work, pretend like we have a primary global already.
|
||||
# Note that we _don't_ set _globalScope.primaryGlobalAttr,
|
||||
# so we'll still be able to detect multiple PrimaryGlobal extended attributes.
|
||||
self._globalScope.primaryGlobalName = "FakeTestPrimaryGlobal"
|
||||
self._globalScope.addIfaceGlobalNames("FakeTestPrimaryGlobal", ["FakeTestPrimaryGlobal"])
|
||||
|
||||
self._installBuiltins(self._globalScope)
|
||||
self._productions = []
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import traceback
|
||||
|
||||
def WebIDLTest(parser, harness):
|
||||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global]
|
||||
[Global, Exposed=TestConstructorGlobal]
|
||||
interface TestConstructorGlobal {
|
||||
constructor();
|
||||
};
|
||||
|
@ -18,7 +20,8 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global, NamedConstructor=FooBar]
|
||||
[Global, Exposed=TestNamedConstructorGlobal,
|
||||
NamedConstructor=FooBar]
|
||||
interface TestNamedConstructorGlobal {
|
||||
};
|
||||
""")
|
||||
|
@ -32,7 +35,8 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[NamedConstructor=FooBar, Global]
|
||||
[NamedConstructor=FooBar, Global,
|
||||
Exposed=TestNamedConstructorGlobal]
|
||||
interface TestNamedConstructorGlobal {
|
||||
};
|
||||
""")
|
||||
|
@ -46,7 +50,7 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global, HTMLConstructor]
|
||||
[Global, HTMLConstructor, Exposed=TestHTMLConstructorGlobal]
|
||||
interface TestHTMLConstructorGlobal {
|
||||
};
|
||||
""")
|
||||
|
@ -61,7 +65,7 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[HTMLConstructor, Global]
|
||||
[HTMLConstructor, Global, Exposed=TestHTMLConstructorGlobal]
|
||||
interface TestHTMLConstructorGlobal {
|
||||
};
|
||||
""")
|
||||
|
|
|
@ -2,9 +2,9 @@ import WebIDL
|
|||
|
||||
def WebIDLTest(parser, harness):
|
||||
parser.parse("""
|
||||
[PrimaryGlobal] interface Foo {};
|
||||
[Global=(Bar1,Bar2)] interface Bar {};
|
||||
[Global=Baz2] interface Baz {};
|
||||
[Global, Exposed=Foo] interface Foo {};
|
||||
[Global=(Bar, Bar1,Bar2), Exposed=Bar] interface Bar {};
|
||||
[Global=(Baz, Baz2), Exposed=Baz] interface Baz {};
|
||||
|
||||
[Exposed=(Foo,Bar1)]
|
||||
interface Iface {
|
||||
|
@ -51,10 +51,11 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[PrimaryGlobal] interface Foo {};
|
||||
[Global=(Bar1,Bar2)] interface Bar {};
|
||||
[Global=Baz2] interface Baz {};
|
||||
[Global, Exposed=Foo] interface Foo {};
|
||||
[Global=(Bar, Bar1, Bar2), Exposed=Bar] interface Bar {};
|
||||
[Global=(Baz, Baz2), Exposed=Baz] interface Baz {};
|
||||
|
||||
[Exposed=Foo]
|
||||
interface Iface2 {
|
||||
void method3();
|
||||
};
|
||||
|
@ -80,9 +81,9 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[PrimaryGlobal] interface Foo {};
|
||||
[Global=(Bar1,Bar2)] interface Bar {};
|
||||
[Global=Baz2] interface Baz {};
|
||||
[Global, Exposed=Foo] interface Foo {};
|
||||
[Global=(Bar, Bar1, Bar2), Exposed=Bar] interface Bar {};
|
||||
[Global=(Baz, Baz2), Exposed=Baz] interface Baz {};
|
||||
|
||||
[Exposed=Foo]
|
||||
interface Iface3 {
|
||||
|
@ -181,8 +182,8 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global] interface Foo {};
|
||||
[Global] interface Bar {};
|
||||
[Global, Exposed=Foo] interface Foo {};
|
||||
[Global, Exposed=Bar] interface Bar {};
|
||||
|
||||
[Exposed=Foo]
|
||||
interface Baz {
|
||||
|
@ -199,8 +200,8 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[Global] interface Foo {};
|
||||
[Global] interface Bar {};
|
||||
[Global, Exposed=Foo] interface Foo {};
|
||||
[Global, Exposed=Bar] interface Bar {};
|
||||
|
||||
[Exposed=Foo]
|
||||
interface Baz {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
def WebIDLTest(parser, harness):
|
||||
parser.parse("""
|
||||
[Global]
|
||||
[Global, Exposed=Foo]
|
||||
interface Foo : Bar {
|
||||
getter any(DOMString name);
|
||||
};
|
||||
[Exposed=Foo]
|
||||
interface Bar {};
|
||||
""")
|
||||
|
||||
|
@ -18,7 +19,7 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global]
|
||||
[Global, Exposed=Foo]
|
||||
interface Foo {
|
||||
getter any(DOMString name);
|
||||
setter void(DOMString name, any arg);
|
||||
|
@ -36,7 +37,7 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global]
|
||||
[Global, Exposed=Foo]
|
||||
interface Foo {
|
||||
getter any(DOMString name);
|
||||
deleter void(DOMString name);
|
||||
|
@ -54,7 +55,7 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global, OverrideBuiltins]
|
||||
[Global, OverrideBuiltins, Exposed=Foo]
|
||||
interface Foo {
|
||||
};
|
||||
""")
|
||||
|
@ -70,10 +71,10 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global]
|
||||
[Global, Exposed=Foo]
|
||||
interface Foo : Bar {
|
||||
};
|
||||
[OverrideBuiltins]
|
||||
[OverrideBuiltins, Exposed=Foo]
|
||||
interface Bar {
|
||||
};
|
||||
""")
|
||||
|
@ -89,9 +90,10 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global]
|
||||
[Global, Exposed=Foo]
|
||||
interface Foo {
|
||||
};
|
||||
[Exposed=Foo]
|
||||
interface Bar : Foo {
|
||||
};
|
||||
""")
|
||||
|
|
|
@ -283,7 +283,7 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Exposed=Window, LegacyWindowAlias=A]
|
||||
interface B {};
|
||||
[Exposed=Window, LegacyWindowAlias=(C, D)]
|
||||
|
@ -325,7 +325,8 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Exposed=Window]
|
||||
interface A {};
|
||||
[Exposed=Window, LegacyWindowAlias=A]
|
||||
interface B {};
|
||||
|
@ -340,9 +341,10 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Exposed=Window, LegacyWindowAlias=A]
|
||||
interface B {};
|
||||
[Exposed=Window]
|
||||
interface A {};
|
||||
""")
|
||||
results = parser.finish()
|
||||
|
@ -355,7 +357,7 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Exposed=Window, LegacyWindowAlias=A]
|
||||
interface B {};
|
||||
[Exposed=Window, LegacyWindowAlias=A]
|
||||
|
|
|
@ -377,8 +377,8 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global] interface Worker {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Global, Exposed=Worker] interface Worker {};
|
||||
[Exposed=Window]
|
||||
interface Base {};
|
||||
interface mixin Mixin {
|
||||
|
@ -394,8 +394,8 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global] interface Worker {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Global, Exposed=Worker] interface Worker {};
|
||||
[Exposed=Window]
|
||||
interface Base {};
|
||||
[Exposed=Window]
|
||||
|
@ -412,8 +412,8 @@ def WebIDLTest(parser, harness):
|
|||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[Global] interface Window {};
|
||||
[Global] interface Worker {};
|
||||
[Global, Exposed=Window] interface Window {};
|
||||
[Global, Exposed=Worker] interface Worker {};
|
||||
[Exposed=Window]
|
||||
interface Base1 {};
|
||||
[Exposed=Worker]
|
||||
|
@ -435,28 +435,3 @@ def WebIDLTest(parser, harness):
|
|||
harness.check(attr.exposureSet, set(["Window", "Worker"]),
|
||||
"Should expose on all globals where including interfaces are "
|
||||
"exposed")
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse("""
|
||||
[PrimaryGlobal] interface Window {};
|
||||
[Global] interface Worker {};
|
||||
interface Base1 {};
|
||||
[Exposed=Worker]
|
||||
interface Base2 {};
|
||||
interface mixin Mixin {
|
||||
attribute short a;
|
||||
};
|
||||
Base1 includes Mixin;
|
||||
Base2 includes Mixin;
|
||||
""")
|
||||
results = parser.finish()
|
||||
base = results[2]
|
||||
attr = base.members[0]
|
||||
harness.check(attr.exposureSet, set(["Window", "Worker"]),
|
||||
"Should expose on all globals where including interfaces are "
|
||||
"exposed")
|
||||
base = results[3]
|
||||
attr = base.members[0]
|
||||
harness.check(attr.exposureSet, set(["Window", "Worker"]),
|
||||
"Should expose on all globals where including interfaces are "
|
||||
"exposed")
|
||||
|
|
|
@ -12,10 +12,12 @@ typedef CustomEventInit TestDictionaryTypedef;
|
|||
interface TestExternalInterface;
|
||||
|
||||
// We need a pref name that's in StaticPrefList.h here.
|
||||
[Pref="dom.webidl.test1"]
|
||||
[Pref="dom.webidl.test1",
|
||||
Exposed=Window]
|
||||
interface TestRenamedInterface {
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
callback interface TestCallbackInterface {
|
||||
readonly attribute long foo;
|
||||
attribute DOMString bar;
|
||||
|
@ -59,6 +61,7 @@ callback interface TestCallbackInterface {
|
|||
Promise<void> receivePromise();
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
callback interface TestSingleOperationCallbackInterface {
|
||||
TestInterface doSomething(short arg, sequence<double> anotherArg);
|
||||
};
|
||||
|
@ -142,6 +145,7 @@ callback constructor TestSequenceConstruction = sequence<boolean>();
|
|||
TestInterface includes InterfaceMixin;
|
||||
|
||||
// This interface is only for use in the constructor below
|
||||
[Exposed=Window]
|
||||
interface OnlyForUseInConstructor {
|
||||
};
|
||||
|
||||
|
@ -154,6 +158,7 @@ interface OnlyForUseInConstructor {
|
|||
NamedConstructor=Test4(record<DOMString, record<DOMString, any>> arg1),
|
||||
NamedConstructor=Test5(record<DOMString, sequence<record<DOMString, record<DOMString, sequence<sequence<any>>>>>> arg1),
|
||||
NamedConstructor=Test6(sequence<record<ByteString, sequence<sequence<record<ByteString, record<USVString, any>>>>>> arg1),
|
||||
Exposed=Window,
|
||||
]
|
||||
interface TestInterface {
|
||||
constructor();
|
||||
|
@ -1019,12 +1024,15 @@ interface TestInterface {
|
|||
// If you add things here, add them to TestExampleGen and TestJSImplGen as well
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestParentInterface {
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestChildInterface : TestParentInterface {
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestNonWrapperCacheInterface {
|
||||
};
|
||||
|
||||
|
@ -1189,6 +1197,7 @@ dictionary DictWithConditionalMembers {
|
|||
long chromeOnlyFuncAndPrefControlledMember;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestIndexedGetterInterface {
|
||||
getter long item(unsigned long idx);
|
||||
readonly attribute unsigned long length;
|
||||
|
@ -1197,10 +1206,12 @@ interface TestIndexedGetterInterface {
|
|||
[StoreInSlot, Pure] readonly attribute long storeInSlotAttr;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestNamedGetterInterface {
|
||||
getter DOMString (DOMString name);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestIndexedGetterAndSetterAndNamedGetterInterface {
|
||||
getter DOMString (DOMString myName);
|
||||
getter long (unsigned long index);
|
||||
|
@ -1208,23 +1219,27 @@ interface TestIndexedGetterAndSetterAndNamedGetterInterface {
|
|||
readonly attribute unsigned long length;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestIndexedAndNamedGetterInterface {
|
||||
getter long (unsigned long index);
|
||||
getter DOMString namedItem(DOMString name);
|
||||
readonly attribute unsigned long length;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestIndexedSetterInterface {
|
||||
setter void setItem(unsigned long idx, DOMString item);
|
||||
getter DOMString (unsigned long idx);
|
||||
readonly attribute unsigned long length;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestNamedSetterInterface {
|
||||
setter void (DOMString myName, TestIndexedSetterInterface item);
|
||||
getter TestIndexedSetterInterface (DOMString name);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestIndexedAndNamedSetterInterface {
|
||||
setter void (unsigned long index, TestIndexedSetterInterface item);
|
||||
getter TestIndexedSetterInterface (unsigned long index);
|
||||
|
@ -1233,6 +1248,7 @@ interface TestIndexedAndNamedSetterInterface {
|
|||
getter TestIndexedSetterInterface (DOMString name);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestIndexedAndNamedGetterAndSetterInterface : TestIndexedSetterInterface {
|
||||
getter long item(unsigned long index);
|
||||
getter DOMString namedItem(DOMString name);
|
||||
|
@ -1242,23 +1258,27 @@ interface TestIndexedAndNamedGetterAndSetterInterface : TestIndexedSetterInterfa
|
|||
readonly attribute unsigned long length;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestNamedDeleterInterface {
|
||||
deleter void (DOMString name);
|
||||
getter long (DOMString name);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestNamedDeleterWithRetvalInterface {
|
||||
deleter boolean delNamedItem(DOMString name);
|
||||
getter long (DOMString name);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestCppKeywordNamedMethodsInterface {
|
||||
boolean continue();
|
||||
boolean delete();
|
||||
long volatile();
|
||||
};
|
||||
|
||||
[Deprecated="EnablePrivilege"]
|
||||
[Deprecated="EnablePrivilege",
|
||||
Exposed=Window]
|
||||
interface TestDeprecatedInterface {
|
||||
constructor();
|
||||
|
||||
|
@ -1266,10 +1286,12 @@ interface TestDeprecatedInterface {
|
|||
};
|
||||
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestInterfaceWithPromiseConstructorArg {
|
||||
constructor(Promise<void> promise);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
namespace TestNamespace {
|
||||
readonly attribute boolean foo;
|
||||
long bar();
|
||||
|
@ -1279,15 +1301,18 @@ partial namespace TestNamespace {
|
|||
void baz();
|
||||
};
|
||||
|
||||
[ClassString="RenamedNamespaceClassName"]
|
||||
[ClassString="RenamedNamespaceClassName",
|
||||
Exposed=Window]
|
||||
namespace TestRenamedNamespace {
|
||||
};
|
||||
|
||||
[ProtoObjectHack]
|
||||
[ProtoObjectHack,
|
||||
Exposed=Window]
|
||||
namespace TestProtoObjectHackedNamespace {
|
||||
};
|
||||
|
||||
[SecureContext]
|
||||
[SecureContext,
|
||||
Exposed=Window]
|
||||
interface TestSecureContextInterface {
|
||||
static void alsoSecureContext();
|
||||
};
|
||||
|
@ -1302,10 +1327,12 @@ interface TestWorkerExposedInterface {
|
|||
[NeedsSubjectPrincipal=NonSystem] attribute boolean needsNonSystemSubjectPrincipalAttr;
|
||||
};
|
||||
|
||||
[HTMLConstructor]
|
||||
[HTMLConstructor,
|
||||
Exposed=Window]
|
||||
interface TestHTMLConstructorInterface {
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestThrowingConstructorInterface {
|
||||
[Throws]
|
||||
constructor();
|
||||
|
@ -1326,6 +1353,7 @@ interface TestThrowingConstructorInterface {
|
|||
// [Throws] constructor(long arg1, long arg2, (TestInterface or OnlyForUseInConstructor) arg3);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestCEReactionsInterface {
|
||||
[CEReactions] setter void (unsigned long index, long item);
|
||||
[CEReactions] setter void (DOMString name, DOMString item);
|
||||
|
@ -1349,6 +1377,7 @@ dictionary TestAttributesOnDictionaryMembers {
|
|||
// test [ChromeOnly] required [Clamp] octet e
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestAttributesOnTypes {
|
||||
void foo(OctetClamp thingy);
|
||||
void bar(OctetRange thingy);
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
NamedConstructor=Example2(DictForConstructor dict, any any1, object obj1,
|
||||
object? obj2, sequence<Dict> seq, optional any any2,
|
||||
optional object obj3, optional object? obj4),
|
||||
NamedConstructor=Example2((long or record<DOMString, any>) arg1)
|
||||
NamedConstructor=Example2((long or record<DOMString, any>) arg1),
|
||||
Exposed=Window,
|
||||
]
|
||||
interface TestExampleInterface {
|
||||
constructor();
|
||||
|
@ -820,6 +821,7 @@ interface TestExampleInterface {
|
|||
// If you add things here, add them to TestCodeGen and TestJSImplGen as well
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestExampleProxyInterface {
|
||||
getter long longIndexedGetter(unsigned long ix);
|
||||
setter void longIndexedSetter(unsigned long y, long z);
|
||||
|
@ -840,6 +842,7 @@ interface TestExampleWorkerInterface {
|
|||
[NeedsSubjectPrincipal=NonSystem] attribute boolean needsNonSystemSubjectPrincipalAttr;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestExampleThrowingConstructorInterface {
|
||||
[Throws]
|
||||
constructor();
|
||||
|
|
|
@ -15,7 +15,7 @@ enum MyTestEnum {
|
|||
"b"
|
||||
};
|
||||
|
||||
[JSImplementation="@mozilla.org/test-js-impl-interface;1"]
|
||||
[Exposed=Window, JSImplementation="@mozilla.org/test-js-impl-interface;1"]
|
||||
interface TestJSImplInterface {
|
||||
// We don't support multiple constructors (bug 869268) or named constructors
|
||||
// for JS-implemented WebIDL.
|
||||
|
@ -842,14 +842,17 @@ interface TestJSImplInterface {
|
|||
// If you add things here, add them to TestCodeGen as well
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestCImplementedInterface : TestJSImplInterface {
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TestCImplementedInterface2 {
|
||||
};
|
||||
|
||||
[NoInterfaceObject,
|
||||
JSImplementation="@mozilla.org/test-js-impl-interface;2"]
|
||||
JSImplementation="@mozilla.org/test-js-impl-interface;2",
|
||||
Exposed=Window]
|
||||
interface TestJSImplNoInterfaceObject {
|
||||
// [Cached] is not supported in JS-implemented WebIDL.
|
||||
//[Cached, Pure]
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[JSImplementation="@mozilla.org/test-js-impl-interface2;1"]
|
||||
[Exposed=Window, JSImplementation="@mozilla.org/test-js-impl-interface2;1"]
|
||||
interface TestJSImplInterface2 : TestCImplementedInterface {
|
||||
[Throws]
|
||||
constructor();
|
||||
};
|
||||
|
||||
[JSImplementation="@mozilla.org/test-js-impl-interface3;1"]
|
||||
[Exposed=Window, JSImplementation="@mozilla.org/test-js-impl-interface3;1"]
|
||||
interface TestJSImplInterface3 : TestCImplementedInterface2 {
|
||||
[Throws]
|
||||
constructor();
|
||||
|
@ -18,7 +18,7 @@ interface TestJSImplInterface3 : TestCImplementedInterface2 {
|
|||
|
||||
// Important: TestJSImplInterface5 needs to come before TestJSImplInterface6 in
|
||||
// this file to test what it's trying to test.
|
||||
[JSImplementation="@mozilla.org/test-js-impl-interface5;1"]
|
||||
[Exposed=Window, JSImplementation="@mozilla.org/test-js-impl-interface5;1"]
|
||||
interface TestJSImplInterface5 : TestJSImplInterface6 {
|
||||
[Throws]
|
||||
constructor();
|
||||
|
@ -26,13 +26,13 @@ interface TestJSImplInterface5 : TestJSImplInterface6 {
|
|||
|
||||
// Important: TestJSImplInterface6 needs to come after TestJSImplInterface3 in
|
||||
// this file to test what it's trying to test.
|
||||
[JSImplementation="@mozilla.org/test-js-impl-interface6;1"]
|
||||
[Exposed=Window, JSImplementation="@mozilla.org/test-js-impl-interface6;1"]
|
||||
interface TestJSImplInterface6 : TestJSImplInterface3 {
|
||||
[Throws]
|
||||
constructor();
|
||||
};
|
||||
|
||||
[JSImplementation="@mozilla.org/test-js-impl-interface4;1"]
|
||||
[Exposed=Window, JSImplementation="@mozilla.org/test-js-impl-interface4;1"]
|
||||
interface TestJSImplInterface4 : EventTarget {
|
||||
[Throws]
|
||||
constructor();
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface DOMLocalization : Localization {
|
||||
/**
|
||||
* Constructor arguments:
|
||||
|
|
|
@ -20,7 +20,7 @@ enum DebuggerNotificationType {
|
|||
"domEvent",
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface DebuggerNotification {
|
||||
readonly attribute DebuggerNotificationType type;
|
||||
|
||||
|
@ -37,7 +37,7 @@ enum CallbackDebuggerNotificationPhase {
|
|||
|
||||
// A base notification type for notifications that are dispatched as pairs with
|
||||
// a before and after notification.
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface CallbackDebuggerNotification : DebuggerNotification {
|
||||
readonly attribute CallbackDebuggerNotificationPhase phase;
|
||||
};
|
||||
|
@ -50,7 +50,7 @@ enum EventCallbackDebuggerNotificationType {
|
|||
};
|
||||
|
||||
// A notification that about the engine calling a DOM event handler.
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface EventCallbackDebuggerNotification : CallbackDebuggerNotification {
|
||||
readonly attribute Event event;
|
||||
readonly attribute EventCallbackDebuggerNotificationType targetType;
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
* are added to the document, and is removed in case all links
|
||||
* of that type are removed from it.
|
||||
*/
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject,
|
||||
Exposed=Window]
|
||||
interface DocumentL10n : DOMLocalization {
|
||||
/**
|
||||
* A promise which gets resolved when the initial DOM localization resources
|
||||
|
|
|
@ -20,7 +20,7 @@ enum FlexPhysicalDirection {
|
|||
"vertical-bt",
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface Flex
|
||||
{
|
||||
sequence<FlexLineValues> getLines();
|
||||
|
@ -51,7 +51,7 @@ interface Flex
|
|||
*/
|
||||
enum FlexLineGrowthState { "shrinking", "growing" };
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface FlexLineValues
|
||||
{
|
||||
readonly attribute FlexLineGrowthState growthState;
|
||||
|
@ -79,7 +79,7 @@ enum FlexItemClampState {
|
|||
"unclamped", "clamped_to_min", "clamped_to_max"
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface FlexItemValues
|
||||
{
|
||||
readonly attribute Node? node;
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
*
|
||||
* See InspectorUtils.h for documentation on these methods.
|
||||
*/
|
||||
[Func="nsContentUtils::IsCallerChromeOrFuzzingEnabled"]
|
||||
[Func="nsContentUtils::IsCallerChromeOrFuzzingEnabled",
|
||||
Exposed=Window]
|
||||
namespace InspectorUtils {
|
||||
// documentOnly tells whether user and UA sheets should get included.
|
||||
sequence<StyleSheet> getAllStyleSheets(Document document, optional boolean documentOnly = false);
|
||||
|
@ -136,7 +137,8 @@ dictionary InspectorFontFeature {
|
|||
required DOMString languageSystem;
|
||||
};
|
||||
|
||||
[Func="nsContentUtils::IsCallerChromeOrFuzzingEnabled"]
|
||||
[Func="nsContentUtils::IsCallerChromeOrFuzzingEnabled",
|
||||
Exposed=Window]
|
||||
interface InspectorFontFace {
|
||||
// An indication of how we found this font during font-matching.
|
||||
// Note that the same physical font may have been found in multiple ways within a range.
|
||||
|
|
|
@ -16,7 +16,7 @@ interface mixin JSWindowActor {
|
|||
optional any obj);
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface JSWindowActorParent {
|
||||
[ChromeOnly]
|
||||
constructor();
|
||||
|
@ -33,7 +33,7 @@ interface JSWindowActorParent {
|
|||
};
|
||||
JSWindowActorParent includes JSWindowActor;
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface JSWindowActorChild {
|
||||
[ChromeOnly]
|
||||
constructor();
|
||||
|
@ -71,6 +71,7 @@ JSWindowActorChild includes JSWindowActor;
|
|||
* NOTE: This isn't marked as ChromeOnly, as it has no interface object, and
|
||||
* thus cannot be conditionally exposed.
|
||||
*/
|
||||
[Exposed=Window]
|
||||
callback interface MozObserverCallback {
|
||||
void observe(nsISupports subject, ByteString topic, DOMString? data);
|
||||
};
|
||||
|
|
|
@ -10,7 +10,8 @@ dictionary L10nOverlaysError {
|
|||
DOMString l10nName;
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly,
|
||||
Exposed=Window]
|
||||
namespace L10nOverlays {
|
||||
const unsigned short ERROR_FORBIDDEN_TYPE = 1;
|
||||
const unsigned short ERROR_NAMED_ELEMENT_MISSING = 2;
|
||||
|
|
|
@ -62,7 +62,7 @@ callback GenerateMessages = Promise<any> (sequence<DOMString> aResourceIds);
|
|||
* - formatMessages - format multiple compound messages
|
||||
*
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface Localization {
|
||||
/**
|
||||
* Constructor arguments:
|
||||
|
|
|
@ -203,6 +203,7 @@ dictionary ReceiveMessageArgument
|
|||
FrameLoader targetFrameLoader;
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
callback interface MessageListener
|
||||
{
|
||||
/**
|
||||
|
@ -220,7 +221,7 @@ callback interface MessageListener
|
|||
any receiveMessage(ReceiveMessageArgument argument);
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MessageListenerManager
|
||||
{
|
||||
// All the methods are pulled in via mixin.
|
||||
|
@ -286,7 +287,7 @@ interface mixin MessageListenerManagerMixin
|
|||
* messages that are only delivered to its one parent-process message
|
||||
* manager.
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MessageSender : MessageListenerManager
|
||||
{
|
||||
// All the methods are pulled in via mixin.
|
||||
|
@ -336,7 +337,7 @@ interface mixin MessageSenderMixin {
|
|||
readonly attribute DOMString remoteType;
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface SyncMessageSender : MessageSender
|
||||
{
|
||||
// All the methods are pulled in via mixin.
|
||||
|
@ -379,7 +380,7 @@ interface mixin SyncMessageSenderMixin
|
|||
* ChildProcessMessageManager is used in a child process to communicate with the parent
|
||||
* process.
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ChildProcessMessageManager : SyncMessageSender
|
||||
{
|
||||
};
|
||||
|
@ -487,7 +488,7 @@ interface mixin GlobalProcessScriptLoader
|
|||
readonly attribute MozWritableSharedMap sharedData;
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ContentFrameMessageManager : EventTarget
|
||||
{
|
||||
/**
|
||||
|
@ -521,7 +522,7 @@ ContentFrameMessageManager includes SyncMessageSenderMixin;
|
|||
ContentFrameMessageManager includes MessageSenderMixin;
|
||||
ContentFrameMessageManager includes MessageListenerManagerMixin;
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ContentProcessMessageManager
|
||||
{
|
||||
/**
|
||||
|
@ -544,7 +545,7 @@ ContentProcessMessageManager includes MessageListenerManagerMixin;
|
|||
* through a window message manager will broadcast the message to all frame message
|
||||
* managers within its window.
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MessageBroadcaster : MessageListenerManager
|
||||
{
|
||||
/**
|
||||
|
@ -580,7 +581,7 @@ interface MessageBroadcaster : MessageListenerManager
|
|||
/**
|
||||
* ChromeMessageBroadcaster is used for window and group message managers.
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ChromeMessageBroadcaster : MessageBroadcaster
|
||||
{
|
||||
};
|
||||
|
@ -590,14 +591,14 @@ ChromeMessageBroadcaster includes FrameScriptLoader;
|
|||
* ParentProcessMessageManager is used in a parent process to communicate with all the
|
||||
* child processes.
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ParentProcessMessageManager : MessageBroadcaster
|
||||
{
|
||||
};
|
||||
ParentProcessMessageManager includes ProcessScriptLoader;
|
||||
ParentProcessMessageManager includes GlobalProcessScriptLoader;
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ChromeMessageSender : MessageSender
|
||||
{
|
||||
};
|
||||
|
@ -607,7 +608,7 @@ ChromeMessageSender includes FrameScriptLoader;
|
|||
* ProcessMessageManager is used in a parent process to communicate with a child process
|
||||
* (or with the process itself in a single-process scenario).
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface ProcessMessageManager : MessageSender
|
||||
{
|
||||
};
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
callback interface MozDocumentCallback {
|
||||
void onNewDocument(MozDocumentMatcher matcher, WindowProxy window);
|
||||
void onPreloadDocument(MozDocumentMatcher matcher, LoadInfo loadInfo);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
typedef any StructuredClonable;
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MozSharedMapChangeEvent : Event {
|
||||
[Cached, Constant]
|
||||
readonly attribute sequence<DOMString> changedKeys;
|
||||
|
@ -16,7 +16,7 @@ dictionary MozSharedMapChangeEventInit : EventInit {
|
|||
required sequence<DOMString> changedKeys;
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MozSharedMap : EventTarget {
|
||||
boolean has(DOMString name);
|
||||
|
||||
|
@ -26,7 +26,7 @@ interface MozSharedMap : EventTarget {
|
|||
iterable<DOMString, StructuredClonable>;
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MozWritableSharedMap : MozSharedMap {
|
||||
/**
|
||||
* Sets the given key to the given structured-clonable value. The value is
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MozStorageAsyncStatementParams
|
||||
{
|
||||
readonly attribute unsigned long length;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MozStorageStatementParams
|
||||
{
|
||||
readonly attribute unsigned long length;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface MozStorageStatementRow
|
||||
{
|
||||
[Throws]
|
||||
|
|
|
@ -29,6 +29,7 @@ enum PromiseDebuggingState { "pending", "fulfilled", "rejected" };
|
|||
* this interface are responsible for presenting the information
|
||||
* in a meaningful manner.
|
||||
*/
|
||||
[Exposed=Window]
|
||||
callback interface UncaughtRejectionObserver {
|
||||
/**
|
||||
* A Promise has been left in `rejected` state and is the
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
interface nsIDocShell;
|
||||
interface nsIWebNavigation;
|
||||
|
||||
[HTMLConstructor, Func="IsChromeOrXBL"]
|
||||
[HTMLConstructor, Func="IsChromeOrXBL",
|
||||
Exposed=Window]
|
||||
interface XULFrameElement : XULElement
|
||||
{
|
||||
readonly attribute nsIDocShell? docShell;
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[HTMLConstructor, Func="IsChromeOrXBL"]
|
||||
[HTMLConstructor, Func="IsChromeOrXBL",
|
||||
Exposed=Window]
|
||||
interface XULMenuElement : XULElement {
|
||||
|
||||
attribute Element? activeChild;
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[HTMLConstructor, Func="IsChromeOrXBL"]
|
||||
[HTMLConstructor, Func="IsChromeOrXBL",
|
||||
Exposed=Window]
|
||||
interface XULTextElement : XULElement {
|
||||
attribute boolean disabled;
|
||||
attribute DOMString value;
|
||||
|
|
|
@ -13,7 +13,8 @@ dictionary TreeCellInfo {
|
|||
DOMString childElt = "";
|
||||
};
|
||||
|
||||
[HTMLConstructor, Func="IsChromeOrXBL"]
|
||||
[HTMLConstructor, Func="IsChromeOrXBL",
|
||||
Exposed=Window]
|
||||
interface XULTreeElement : XULElement
|
||||
{
|
||||
/**
|
||||
|
|
|
@ -30,7 +30,8 @@ dictionary APZBucket {
|
|||
sequence<ScrollFrameData> scrollFrames;
|
||||
};
|
||||
|
||||
[Pref="apz.test.logging_enabled"]
|
||||
[Pref="apz.test.logging_enabled",
|
||||
Exposed=Window]
|
||||
namespace APZHitResultFlags {
|
||||
// These constants should be kept in sync with mozilla::gfx::CompositorHitTestInfo
|
||||
const unsigned short INVISIBLE = 0;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface AbstractRange {
|
||||
[BinaryName="GetStartContainer"]
|
||||
readonly attribute Node startContainer;
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[Func="mozilla::dom::AccessibleNode::IsAOMEnabled"]
|
||||
[Func="mozilla::dom::AccessibleNode::IsAOMEnabled",
|
||||
Exposed=Window]
|
||||
interface AccessibleNode {
|
||||
readonly attribute DOMString computedRole;
|
||||
[Frozen, Cached, Pure]
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[Func="mozilla::AddonManagerWebAPI::IsAPIEnabled"]
|
||||
[Func="mozilla::AddonManagerWebAPI::IsAPIEnabled",
|
||||
Exposed=Window]
|
||||
interface AddonEvent : Event {
|
||||
constructor(DOMString type, AddonEventInit eventInitDict);
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
/* We need a JSImplementation but cannot get one without a contract ID.
|
||||
Since Addon and AddonInstall are only ever created from JS they don't need
|
||||
real contract IDs. */
|
||||
[ChromeOnly, JSImplementation="dummy"]
|
||||
[ChromeOnly, JSImplementation="dummy",
|
||||
Exposed=Window]
|
||||
interface Addon {
|
||||
// The add-on's ID.
|
||||
readonly attribute DOMString id;
|
||||
|
@ -31,7 +32,8 @@ interface Addon {
|
|||
Promise<void> setEnabled(boolean value);
|
||||
};
|
||||
|
||||
[ChromeOnly, JSImplementation="dummy"]
|
||||
[ChromeOnly, JSImplementation="dummy",
|
||||
Exposed=Window]
|
||||
interface AddonInstall : EventTarget {
|
||||
// One of the STATE_* symbols from AddonManager.jsm
|
||||
readonly attribute DOMString state;
|
||||
|
@ -57,7 +59,8 @@ dictionary addonInstallOptions {
|
|||
[HeaderFile="mozilla/AddonManagerWebAPI.h",
|
||||
Func="mozilla::AddonManagerWebAPI::IsAPIEnabled",
|
||||
JSImplementation="@mozilla.org/addon-web-api/manager;1",
|
||||
WantsEventListenerHooks]
|
||||
WantsEventListenerHooks,
|
||||
Exposed=Window]
|
||||
interface AddonManager : EventTarget {
|
||||
/**
|
||||
* Gets information about an add-on
|
||||
|
|
|
@ -17,7 +17,8 @@ dictionary AnalyserOptions : AudioNodeOptions {
|
|||
double smoothingTimeConstant = 0.8;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AnalyserNode : AudioNode {
|
||||
[Throws]
|
||||
constructor(BaseAudioContext context,
|
||||
|
|
|
@ -14,6 +14,7 @@ enum AnimationPlayState { "idle", "running", "paused", "finished" };
|
|||
|
||||
enum AnimationReplaceState { "active", "removed", "persisted" };
|
||||
|
||||
[Exposed=Window]
|
||||
interface Animation : EventTarget {
|
||||
[Throws]
|
||||
constructor(optional AnimationEffect? effect = null,
|
||||
|
|
|
@ -55,7 +55,8 @@ dictionary ComputedEffectTiming : EffectTiming {
|
|||
unrestricted double? currentIteration = null;
|
||||
};
|
||||
|
||||
[Func="Document::IsWebAnimationsEnabled"]
|
||||
[Func="Document::IsWebAnimationsEnabled",
|
||||
Exposed=Window]
|
||||
interface AnimationEffect {
|
||||
EffectTiming getTiming();
|
||||
[BinaryName="getComputedTimingAsDict"]
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface AnimationEvent : Event {
|
||||
constructor(DOMString type, optional AnimationEventInit eventInitDict = {});
|
||||
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Func="Document::IsWebAnimationsEnabled"]
|
||||
[Func="Document::IsWebAnimationsEnabled",
|
||||
Exposed=Window]
|
||||
interface AnimationPlaybackEvent : Event {
|
||||
constructor(DOMString type,
|
||||
optional AnimationPlaybackEventInit eventInitDict = {});
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Func="Document::AreWebAnimationsTimelinesEnabled"]
|
||||
[Func="Document::AreWebAnimationsTimelinesEnabled",
|
||||
Exposed=Window]
|
||||
interface AnimationTimeline {
|
||||
[BinaryName="currentTimeAsDouble"]
|
||||
readonly attribute double? currentTime;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* the inserted content.
|
||||
*/
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly, Exposed=Window]
|
||||
interface AnonymousContent {
|
||||
/**
|
||||
* Get the text content of an element inside this custom anonymous content.
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface Attr : Node {
|
||||
readonly attribute DOMString localName;
|
||||
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows]
|
||||
|
|
|
@ -16,7 +16,8 @@ dictionary AudioBufferOptions {
|
|||
required float sampleRate;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioBuffer {
|
||||
[Throws]
|
||||
constructor(AudioBufferOptions options);
|
||||
|
|
|
@ -19,7 +19,8 @@ dictionary AudioBufferSourceOptions {
|
|||
float playbackRate = 1;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioBufferSourceNode : AudioScheduledSourceNode {
|
||||
constructor(BaseAudioContext context,
|
||||
optional AudioBufferSourceOptions options = {});
|
||||
|
|
|
@ -19,7 +19,8 @@ dictionary AudioTimestamp {
|
|||
DOMHighResTimeStamp performanceTime;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioContext : BaseAudioContext {
|
||||
[Throws]
|
||||
constructor(optional AudioContextOptions contextOptions = {});
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioDestinationNode : AudioNode {
|
||||
|
||||
readonly attribute unsigned long maxChannelCount;
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioListener {
|
||||
// Uses a 3D cartesian coordinate system
|
||||
void setPosition(double x, double y, double z);
|
||||
|
|
|
@ -27,7 +27,8 @@ dictionary AudioNodeOptions {
|
|||
ChannelInterpretation channelInterpretation;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioNode : EventTarget {
|
||||
|
||||
[Throws]
|
||||
|
|
|
@ -15,7 +15,8 @@ enum AutomationRate {
|
|||
"k-rate"
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioParam {
|
||||
|
||||
attribute float value;
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Pref="dom.audioworklet.enabled"]
|
||||
[Pref="dom.audioworklet.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioParamMap {
|
||||
readonly maplike<DOMString, AudioParam>;
|
||||
};
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioProcessingEvent : Event {
|
||||
|
||||
readonly attribute double playbackTime;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface AudioScheduledSourceNode : AudioNode {
|
||||
attribute EventHandler onended;
|
||||
[Throws]
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
* http://www.whatwg.org/specs/web-apps/current-work/#audiotrack
|
||||
*/
|
||||
|
||||
[Pref="media.track.enabled"]
|
||||
[Pref="media.track.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioTrack {
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute DOMString kind;
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
* http://www.whatwg.org/specs/web-apps/current-work/#audiotracklist
|
||||
*/
|
||||
|
||||
[Pref="media.track.enabled"]
|
||||
[Pref="media.track.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioTrackList : EventTarget {
|
||||
readonly attribute unsigned long length;
|
||||
getter AudioTrack (unsigned long index);
|
||||
|
|
|
@ -12,4 +12,4 @@
|
|||
|
||||
[Exposed=Window, SecureContext, Pref="dom.audioworklet.enabled"]
|
||||
interface AudioWorklet : Worklet {
|
||||
};
|
||||
};
|
||||
|
|
|
@ -18,7 +18,8 @@ dictionary AudioWorkletNodeOptions : AudioNodeOptions {
|
|||
object? processorOptions = null;
|
||||
};
|
||||
|
||||
[SecureContext, Pref="dom.audioworklet.enabled"]
|
||||
[SecureContext, Pref="dom.audioworklet.enabled",
|
||||
Exposed=Window]
|
||||
interface AudioWorkletNode : AudioNode {
|
||||
[Throws]
|
||||
constructor(BaseAudioContext context, DOMString name,
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface BarProp
|
||||
{
|
||||
[Throws, NeedsCallerType]
|
||||
|
|
|
@ -19,6 +19,7 @@ enum AudioContextState {
|
|||
"closed"
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface BaseAudioContext : EventTarget {
|
||||
readonly attribute AudioDestinationNode destination;
|
||||
readonly attribute float sampleRate;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface BatteryManager : EventTarget {
|
||||
readonly attribute boolean charging;
|
||||
readonly attribute unrestricted double chargingTime;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
* http://www.whatwg.org/specs/web-apps/current-work/#beforeunloadevent
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface BeforeUnloadEvent : Event {
|
||||
attribute DOMString returnValue;
|
||||
};
|
||||
|
|
|
@ -29,7 +29,8 @@ dictionary BiquadFilterOptions : AudioNodeOptions {
|
|||
float gain = 0;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface BiquadFilterNode : AudioNode {
|
||||
[Throws]
|
||||
constructor(BaseAudioContext context,
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
* https://w3c.github.io/mediacapture-record/#blobevent-section
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface BlobEvent : Event
|
||||
{
|
||||
constructor(DOMString type, optional BlobEventInit eventInitDict = {});
|
||||
|
|
|
@ -4,5 +4,6 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface CDATASection : Text {
|
||||
};
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
namespace CSS {
|
||||
[Throws]
|
||||
boolean supports(DOMString property, DOMString value);
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[Exposed=Window]
|
||||
interface CSS2Properties : CSSStyleDeclaration {
|
||||
${props}
|
||||
};
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
*/
|
||||
|
||||
[Func="Document::IsWebAnimationsGetAnimationsEnabled",
|
||||
HeaderFile="nsAnimationManager.h"]
|
||||
HeaderFile="nsAnimationManager.h",
|
||||
Exposed=Window]
|
||||
interface CSSAnimation : Animation {
|
||||
[Constant] readonly attribute DOMString animationName;
|
||||
};
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/css-conditional/#the-cssconditionrule-interface
|
||||
[Exposed=Window]
|
||||
interface CSSConditionRule : CSSGroupingRule {
|
||||
[SetterThrows]
|
||||
attribute DOMString conditionText;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/css-counter-styles-3/#the-csscounterstylerule-interface
|
||||
[Exposed=Window]
|
||||
interface CSSCounterStyleRule : CSSRule {
|
||||
attribute DOMString name;
|
||||
attribute DOMString system;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
// https://drafts.csswg.org/css-fonts/#om-fontface
|
||||
// But we implement a very old draft, apparently....
|
||||
// See bug 1058408 for implementing the current spec.
|
||||
[Exposed=Window]
|
||||
interface CSSFontFaceRule : CSSRule {
|
||||
[SameObject] readonly attribute CSSStyleDeclaration style;
|
||||
};
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
// https://drafts.csswg.org/css-fonts/#om-fontfeaturevalues
|
||||
// but we don't implement anything remotely resembling the spec.
|
||||
[Exposed=Window]
|
||||
interface CSSFontFeatureValuesRule : CSSRule {
|
||||
[SetterThrows]
|
||||
attribute DOMString fontFamily;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/cssom/#cssgroupingrule
|
||||
[Exposed=Window]
|
||||
interface CSSGroupingRule : CSSRule {
|
||||
[SameObject] readonly attribute CSSRuleList cssRules;
|
||||
[Throws]
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/cssom/#cssimportrule
|
||||
[Exposed=Window]
|
||||
interface CSSImportRule : CSSRule {
|
||||
readonly attribute DOMString href;
|
||||
// Per spec, the .media is never null, but in our implementation it can
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/css-animations/#interface-csskeyframerule
|
||||
[Exposed=Window]
|
||||
interface CSSKeyframeRule : CSSRule {
|
||||
attribute DOMString keyText;
|
||||
[SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/css-animations/#interface-csskeyframesrule
|
||||
[Exposed=Window]
|
||||
interface CSSKeyframesRule : CSSRule {
|
||||
attribute DOMString name;
|
||||
readonly attribute CSSRuleList cssRules;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
// https://drafts.csswg.org/css-conditional/#the-cssmediarule-interface
|
||||
// except they disagree with each other. We're taking the inheritance from
|
||||
// css-conditional and the PutForwards behavior from cssom.
|
||||
[Exposed=Window]
|
||||
interface CSSMediaRule : CSSConditionRule {
|
||||
[SameObject, PutForwards=mediaText] readonly attribute MediaList media;
|
||||
};
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
// This is a non-standard interface for @-moz-document rules
|
||||
[Exposed=Window]
|
||||
interface CSSMozDocumentRule : CSSConditionRule {
|
||||
// XXX Add access to the URL list.
|
||||
};
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/cssom/#cssnamespacerule
|
||||
[Exposed=Window]
|
||||
interface CSSNamespaceRule : CSSRule {
|
||||
readonly attribute DOMString namespaceURI;
|
||||
readonly attribute DOMString prefix;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
// https://drafts.csswg.org/cssom/#the-csspagerule-interface
|
||||
// Per spec, this should inherit from CSSGroupingRule, but we don't
|
||||
// implement this yet.
|
||||
[Exposed=Window]
|
||||
interface CSSPageRule : CSSRule {
|
||||
// selectorText not implemented yet
|
||||
// attribute DOMString selectorText;
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Func="Document::IsWebAnimationsGetAnimationsEnabled"]
|
||||
[Func="Document::IsWebAnimationsGetAnimationsEnabled",
|
||||
Exposed=Window]
|
||||
interface CSSPseudoElement {
|
||||
readonly attribute DOMString type;
|
||||
readonly attribute Element element;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/cssom/#the-cssrule-interface
|
||||
[Exposed=Window]
|
||||
interface CSSRule {
|
||||
|
||||
const unsigned short STYLE_RULE = 1;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface CSSRuleList {
|
||||
readonly attribute unsigned long length;
|
||||
getter CSSRule? item(unsigned long index);
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
|
||||
// Because of getComputedStyle, many CSSStyleDeclaration objects can be
|
||||
// short-living.
|
||||
[ProbablyShortLivingWrapper]
|
||||
[ProbablyShortLivingWrapper,
|
||||
Exposed=Window]
|
||||
interface CSSStyleDeclaration {
|
||||
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows]
|
||||
attribute DOMString cssText;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/cssom/#the-cssstylerule-interface
|
||||
[Exposed=Window]
|
||||
interface CSSStyleRule : CSSRule {
|
||||
attribute DOMString selectorText;
|
||||
[SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style;
|
||||
|
|
|
@ -13,6 +13,7 @@ enum CSSStyleSheetParsingMode {
|
|||
"agent"
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface CSSStyleSheet : StyleSheet {
|
||||
[Pure, BinaryName="DOMOwnerRule"]
|
||||
readonly attribute CSSRule? ownerRule;
|
||||
|
|
|
@ -8,5 +8,6 @@
|
|||
*/
|
||||
|
||||
// https://drafts.csswg.org/css-conditional/#the-csssupportsrule-interface
|
||||
[Exposed=Window]
|
||||
interface CSSSupportsRule : CSSConditionRule {
|
||||
};
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
*/
|
||||
|
||||
[Func="Document::IsWebAnimationsGetAnimationsEnabled",
|
||||
HeaderFile="nsTransitionManager.h"]
|
||||
HeaderFile="nsTransitionManager.h",
|
||||
Exposed=Window]
|
||||
interface CSSTransition : Animation {
|
||||
[Constant] readonly attribute DOMString transitionProperty;
|
||||
};
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
* W3C liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Pref="canvas.capturestream.enabled"]
|
||||
[Pref="canvas.capturestream.enabled",
|
||||
Exposed=Window]
|
||||
interface CanvasCaptureMediaStream : MediaStream {
|
||||
readonly attribute HTMLCanvasElement canvas;
|
||||
void requestFrame();
|
||||
|
|
|
@ -34,6 +34,7 @@ typedef (HTMLOrSVGImageElement or
|
|||
HTMLVideoElement or
|
||||
ImageBitmap) CanvasImageSource;
|
||||
|
||||
[Exposed=Window]
|
||||
interface CanvasRenderingContext2D {
|
||||
|
||||
// back-reference to the canvas. Might be null if we're not
|
||||
|
@ -332,6 +333,7 @@ interface mixin CanvasHitRegions {
|
|||
[Pref="canvas.hitregions.enabled"] void clearHitRegions();
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface CanvasGradient {
|
||||
// opaque object
|
||||
[Throws]
|
||||
|
@ -339,6 +341,7 @@ interface CanvasGradient {
|
|||
void addColorStop(float offset, DOMString color);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface CanvasPattern {
|
||||
// opaque object
|
||||
// [Throws, LenientFloat] - could not do this overload because of bug 1020975
|
||||
|
@ -348,6 +351,7 @@ interface CanvasPattern {
|
|||
void setTransform(SVGMatrix matrix);
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
interface TextMetrics {
|
||||
|
||||
// x-direction
|
||||
|
@ -373,7 +377,8 @@ interface TextMetrics {
|
|||
|
||||
};
|
||||
|
||||
[Pref="canvas.path.enabled"]
|
||||
[Pref="canvas.path.enabled",
|
||||
Exposed=Window]
|
||||
interface Path2D
|
||||
{
|
||||
constructor();
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
[Exposed=Window]
|
||||
interface CaretPosition {
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,7 +25,8 @@ dictionary CaretStateChangedEventInit : EventInit {
|
|||
DOMString selectedTextContent = "";
|
||||
};
|
||||
|
||||
[ChromeOnly]
|
||||
[ChromeOnly,
|
||||
Exposed=Window]
|
||||
interface CaretStateChangedEvent : Event {
|
||||
constructor(DOMString type,
|
||||
optional CaretStateChangedEventInit eventInit = {});
|
||||
|
|
|
@ -14,7 +14,8 @@ dictionary ChannelMergerOptions : AudioNodeOptions {
|
|||
unsigned long numberOfInputs = 6;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface ChannelMergerNode : AudioNode {
|
||||
[Throws]
|
||||
constructor(BaseAudioContext context,
|
||||
|
|
|
@ -14,7 +14,8 @@ dictionary ChannelSplitterOptions : AudioNodeOptions {
|
|||
unsigned long numberOfOutputs = 6;
|
||||
};
|
||||
|
||||
[Pref="dom.webaudio.enabled"]
|
||||
[Pref="dom.webaudio.enabled",
|
||||
Exposed=Window]
|
||||
interface ChannelSplitterNode : AudioNode {
|
||||
[Throws]
|
||||
constructor(BaseAudioContext context,
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface CharacterData : Node {
|
||||
[Pure, SetterThrows]
|
||||
attribute [TreatNullAs=EmptyString] DOMString data;
|
||||
|
|
|
@ -28,7 +28,8 @@ dictionary CheckerboardReport {
|
|||
|
||||
// The guard function only allows creation of this interface on the
|
||||
// about:checkerboard page, and only if it's in the parent process.
|
||||
[Func="mozilla::dom::CheckerboardReportService::IsEnabled"]
|
||||
[Func="mozilla::dom::CheckerboardReportService::IsEnabled",
|
||||
Exposed=Window]
|
||||
interface CheckerboardReportService {
|
||||
constructor();
|
||||
|
||||
|
|
|
@ -10,7 +10,8 @@ interface nsISHistory;
|
|||
* The ChildSHistory interface represents the child side of a browsing
|
||||
* context's session history.
|
||||
*/
|
||||
[ChromeOnly]
|
||||
[ChromeOnly,
|
||||
Exposed=Window]
|
||||
interface ChildSHistory {
|
||||
[Pure]
|
||||
readonly attribute long count;
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
[Func="IsChromeOrXBL"]
|
||||
[Func="IsChromeOrXBL",
|
||||
Exposed=Window]
|
||||
interface ChromeNodeList : NodeList {
|
||||
constructor();
|
||||
|
||||
|
|
|
@ -22,4 +22,4 @@ interface Clipboard : EventTarget {
|
|||
Promise<void> write(DataTransfer data);
|
||||
[Throws, NeedsSubjectPrincipal]
|
||||
Promise<void> writeText(DOMString data);
|
||||
};
|
||||
};
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=Window]
|
||||
interface ClipboardEvent : Event
|
||||
{
|
||||
[Throws]
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче