diff --git a/dom/bindings/BindingUtils.h b/dom/bindings/BindingUtils.h index 273776b45156..392a9cd0600b 100644 --- a/dom/bindings/BindingUtils.h +++ b/dom/bindings/BindingUtils.h @@ -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. diff --git a/dom/bindings/Configuration.py b/dom/bindings/Configuration.py index 38b163604cf3..4c940af118d4 100644 --- a/dom/bindings/Configuration.py +++ b/dom/bindings/Configuration.py @@ -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): diff --git a/dom/bindings/parser/WebIDL.py b/dom/bindings/parser/WebIDL.py index fe06a074c7a8..39b022b52fe6 100644 --- a/dom/bindings/parser/WebIDL.py +++ b/dom/bindings/parser/WebIDL.py @@ -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(""), 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 = [] diff --git a/dom/bindings/parser/tests/test_constructor_global.py b/dom/bindings/parser/tests/test_constructor_global.py index c469d56e8179..31c5d95317f5 100644 --- a/dom/bindings/parser/tests/test_constructor_global.py +++ b/dom/bindings/parser/tests/test_constructor_global.py @@ -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 { }; """) diff --git a/dom/bindings/parser/tests/test_exposed_extended_attribute.py b/dom/bindings/parser/tests/test_exposed_extended_attribute.py index 1436d7f0bf0c..e0241a564261 100644 --- a/dom/bindings/parser/tests/test_exposed_extended_attribute.py +++ b/dom/bindings/parser/tests/test_exposed_extended_attribute.py @@ -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 { diff --git a/dom/bindings/parser/tests/test_global_extended_attr.py b/dom/bindings/parser/tests/test_global_extended_attr.py index bc20da40bbe2..28b79642d86b 100644 --- a/dom/bindings/parser/tests/test_global_extended_attr.py +++ b/dom/bindings/parser/tests/test_global_extended_attr.py @@ -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 { }; """) diff --git a/dom/bindings/parser/tests/test_interface.py b/dom/bindings/parser/tests/test_interface.py index c48bdee8de13..47db3ae4cc9f 100644 --- a/dom/bindings/parser/tests/test_interface.py +++ b/dom/bindings/parser/tests/test_interface.py @@ -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] diff --git a/dom/bindings/parser/tests/test_interfacemixin.py b/dom/bindings/parser/tests/test_interfacemixin.py index ac36b51ea0ed..477a9f377998 100644 --- a/dom/bindings/parser/tests/test_interfacemixin.py +++ b/dom/bindings/parser/tests/test_interfacemixin.py @@ -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") diff --git a/dom/bindings/test/TestCodeGen.webidl b/dom/bindings/test/TestCodeGen.webidl index 876c32467b90..3c23083ddcf1 100644 --- a/dom/bindings/test/TestCodeGen.webidl +++ b/dom/bindings/test/TestCodeGen.webidl @@ -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 receivePromise(); }; +[Exposed=Window] callback interface TestSingleOperationCallbackInterface { TestInterface doSomething(short arg, sequence anotherArg); }; @@ -142,6 +145,7 @@ callback constructor TestSequenceConstruction = sequence(); 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> arg1), NamedConstructor=Test5(record>>>>> arg1), NamedConstructor=Test6(sequence>>>>> 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 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); diff --git a/dom/bindings/test/TestExampleGen.webidl b/dom/bindings/test/TestExampleGen.webidl index 3f697824fae6..957852192c60 100644 --- a/dom/bindings/test/TestExampleGen.webidl +++ b/dom/bindings/test/TestExampleGen.webidl @@ -8,7 +8,8 @@ NamedConstructor=Example2(DictForConstructor dict, any any1, object obj1, object? obj2, sequence seq, optional any any2, optional object obj3, optional object? obj4), - NamedConstructor=Example2((long or record) arg1) + NamedConstructor=Example2((long or record) 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(); diff --git a/dom/bindings/test/TestJSImplGen.webidl b/dom/bindings/test/TestJSImplGen.webidl index 931ca9123663..730b9df2cda8 100644 --- a/dom/bindings/test/TestJSImplGen.webidl +++ b/dom/bindings/test/TestJSImplGen.webidl @@ -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] diff --git a/dom/bindings/test/TestJSImplInheritanceGen.webidl b/dom/bindings/test/TestJSImplInheritanceGen.webidl index e313805d8f58..b4b66d20a0ad 100644 --- a/dom/bindings/test/TestJSImplInheritanceGen.webidl +++ b/dom/bindings/test/TestJSImplInheritanceGen.webidl @@ -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(); diff --git a/dom/chrome-webidl/DOMLocalization.webidl b/dom/chrome-webidl/DOMLocalization.webidl index a7c972e653e9..4ad66215d8fb 100644 --- a/dom/chrome-webidl/DOMLocalization.webidl +++ b/dom/chrome-webidl/DOMLocalization.webidl @@ -24,7 +24,7 @@ * */ -[ChromeOnly] +[ChromeOnly, Exposed=Window] interface DOMLocalization : Localization { /** * Constructor arguments: diff --git a/dom/chrome-webidl/DebuggerNotification.webidl b/dom/chrome-webidl/DebuggerNotification.webidl index 7487e4688df6..ce77ab6f6e37 100644 --- a/dom/chrome-webidl/DebuggerNotification.webidl +++ b/dom/chrome-webidl/DebuggerNotification.webidl @@ -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; diff --git a/dom/chrome-webidl/DocumentL10n.webidl b/dom/chrome-webidl/DocumentL10n.webidl index d7d032302d1c..349c1d78856e 100644 --- a/dom/chrome-webidl/DocumentL10n.webidl +++ b/dom/chrome-webidl/DocumentL10n.webidl @@ -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 diff --git a/dom/chrome-webidl/Flex.webidl b/dom/chrome-webidl/Flex.webidl index ed14a4ea59da..f752b24ad913 100644 --- a/dom/chrome-webidl/Flex.webidl +++ b/dom/chrome-webidl/Flex.webidl @@ -20,7 +20,7 @@ enum FlexPhysicalDirection { "vertical-bt", }; -[ChromeOnly] +[ChromeOnly, Exposed=Window] interface Flex { sequence 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; diff --git a/dom/chrome-webidl/InspectorUtils.webidl b/dom/chrome-webidl/InspectorUtils.webidl index 7e6b939d873a..f66eab58c6fb 100644 --- a/dom/chrome-webidl/InspectorUtils.webidl +++ b/dom/chrome-webidl/InspectorUtils.webidl @@ -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 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. diff --git a/dom/chrome-webidl/JSWindowActor.webidl b/dom/chrome-webidl/JSWindowActor.webidl index 860a31b9e723..455abe38b473 100644 --- a/dom/chrome-webidl/JSWindowActor.webidl +++ b/dom/chrome-webidl/JSWindowActor.webidl @@ -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); }; diff --git a/dom/chrome-webidl/L10nOverlays.webidl b/dom/chrome-webidl/L10nOverlays.webidl index 6ce07de39bb6..382a403d80e2 100644 --- a/dom/chrome-webidl/L10nOverlays.webidl +++ b/dom/chrome-webidl/L10nOverlays.webidl @@ -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; diff --git a/dom/chrome-webidl/Localization.webidl b/dom/chrome-webidl/Localization.webidl index d68789e4d677..ca3cb849e574 100644 --- a/dom/chrome-webidl/Localization.webidl +++ b/dom/chrome-webidl/Localization.webidl @@ -62,7 +62,7 @@ callback GenerateMessages = Promise (sequence aResourceIds); * - formatMessages - format multiple compound messages * */ -[ChromeOnly] +[ChromeOnly, Exposed=Window] interface Localization { /** * Constructor arguments: diff --git a/dom/chrome-webidl/MessageManager.webidl b/dom/chrome-webidl/MessageManager.webidl index 92e400480a6b..496bdda21135 100644 --- a/dom/chrome-webidl/MessageManager.webidl +++ b/dom/chrome-webidl/MessageManager.webidl @@ -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 { }; diff --git a/dom/chrome-webidl/MozDocumentObserver.webidl b/dom/chrome-webidl/MozDocumentObserver.webidl index 936ac2e2d1a7..144984f93d09 100644 --- a/dom/chrome-webidl/MozDocumentObserver.webidl +++ b/dom/chrome-webidl/MozDocumentObserver.webidl @@ -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); diff --git a/dom/chrome-webidl/MozSharedMap.webidl b/dom/chrome-webidl/MozSharedMap.webidl index 178dc82a948f..098ea725a01e 100644 --- a/dom/chrome-webidl/MozSharedMap.webidl +++ b/dom/chrome-webidl/MozSharedMap.webidl @@ -6,7 +6,7 @@ typedef any StructuredClonable; -[ChromeOnly] +[ChromeOnly, Exposed=Window] interface MozSharedMapChangeEvent : Event { [Cached, Constant] readonly attribute sequence changedKeys; @@ -16,7 +16,7 @@ dictionary MozSharedMapChangeEventInit : EventInit { required sequence changedKeys; }; -[ChromeOnly] +[ChromeOnly, Exposed=Window] interface MozSharedMap : EventTarget { boolean has(DOMString name); @@ -26,7 +26,7 @@ interface MozSharedMap : EventTarget { iterable; }; -[ChromeOnly] +[ChromeOnly, Exposed=Window] interface MozWritableSharedMap : MozSharedMap { /** * Sets the given key to the given structured-clonable value. The value is diff --git a/dom/chrome-webidl/MozStorageAsyncStatementParams.webidl b/dom/chrome-webidl/MozStorageAsyncStatementParams.webidl index fec002af579c..cfd3bfd91d82 100644 --- a/dom/chrome-webidl/MozStorageAsyncStatementParams.webidl +++ b/dom/chrome-webidl/MozStorageAsyncStatementParams.webidl @@ -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; diff --git a/dom/chrome-webidl/MozStorageStatementParams.webidl b/dom/chrome-webidl/MozStorageStatementParams.webidl index 61cba37770cb..a869c961c5b4 100644 --- a/dom/chrome-webidl/MozStorageStatementParams.webidl +++ b/dom/chrome-webidl/MozStorageStatementParams.webidl @@ -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; diff --git a/dom/chrome-webidl/MozStorageStatementRow.webidl b/dom/chrome-webidl/MozStorageStatementRow.webidl index 5e644ec24bed..2ba31f5810ad 100644 --- a/dom/chrome-webidl/MozStorageStatementRow.webidl +++ b/dom/chrome-webidl/MozStorageStatementRow.webidl @@ -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] diff --git a/dom/chrome-webidl/PromiseDebugging.webidl b/dom/chrome-webidl/PromiseDebugging.webidl index 3bc291728f4e..4d3d22fbf75d 100644 --- a/dom/chrome-webidl/PromiseDebugging.webidl +++ b/dom/chrome-webidl/PromiseDebugging.webidl @@ -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 diff --git a/dom/chrome-webidl/XULFrameElement.webidl b/dom/chrome-webidl/XULFrameElement.webidl index 58b99f01305f..d56fca32b5cd 100644 --- a/dom/chrome-webidl/XULFrameElement.webidl +++ b/dom/chrome-webidl/XULFrameElement.webidl @@ -6,7 +6,8 @@ interface nsIDocShell; interface nsIWebNavigation; -[HTMLConstructor, Func="IsChromeOrXBL"] +[HTMLConstructor, Func="IsChromeOrXBL", + Exposed=Window] interface XULFrameElement : XULElement { readonly attribute nsIDocShell? docShell; diff --git a/dom/chrome-webidl/XULMenuElement.webidl b/dom/chrome-webidl/XULMenuElement.webidl index 8246db7c3d20..b07f696ab5e2 100644 --- a/dom/chrome-webidl/XULMenuElement.webidl +++ b/dom/chrome-webidl/XULMenuElement.webidl @@ -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; diff --git a/dom/chrome-webidl/XULTextElement.webidl b/dom/chrome-webidl/XULTextElement.webidl index b46cf87499d5..13f4140d33a3 100644 --- a/dom/chrome-webidl/XULTextElement.webidl +++ b/dom/chrome-webidl/XULTextElement.webidl @@ -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; diff --git a/dom/chrome-webidl/XULTreeElement.webidl b/dom/chrome-webidl/XULTreeElement.webidl index b9dd51185fa1..d7c0646c7798 100644 --- a/dom/chrome-webidl/XULTreeElement.webidl +++ b/dom/chrome-webidl/XULTreeElement.webidl @@ -13,7 +13,8 @@ dictionary TreeCellInfo { DOMString childElt = ""; }; -[HTMLConstructor, Func="IsChromeOrXBL"] +[HTMLConstructor, Func="IsChromeOrXBL", + Exposed=Window] interface XULTreeElement : XULElement { /** diff --git a/dom/webidl/APZTestData.webidl b/dom/webidl/APZTestData.webidl index 793f7c35c9d6..bec6a5bc8c5b 100644 --- a/dom/webidl/APZTestData.webidl +++ b/dom/webidl/APZTestData.webidl @@ -30,7 +30,8 @@ dictionary APZBucket { sequence 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; diff --git a/dom/webidl/AbstractRange.webidl b/dom/webidl/AbstractRange.webidl index 352ae7849de3..abd47892120e 100644 --- a/dom/webidl/AbstractRange.webidl +++ b/dom/webidl/AbstractRange.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface AbstractRange { [BinaryName="GetStartContainer"] readonly attribute Node startContainer; diff --git a/dom/webidl/AccessibleNode.webidl b/dom/webidl/AccessibleNode.webidl index f121c8bad702..fe1d8437279b 100644 --- a/dom/webidl/AccessibleNode.webidl +++ b/dom/webidl/AccessibleNode.webidl @@ -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] diff --git a/dom/webidl/AddonEvent.webidl b/dom/webidl/AddonEvent.webidl index 805375d2a347..8f3bd61c0c8b 100644 --- a/dom/webidl/AddonEvent.webidl +++ b/dom/webidl/AddonEvent.webidl @@ -1,4 +1,5 @@ -[Func="mozilla::AddonManagerWebAPI::IsAPIEnabled"] +[Func="mozilla::AddonManagerWebAPI::IsAPIEnabled", + Exposed=Window] interface AddonEvent : Event { constructor(DOMString type, AddonEventInit eventInitDict); diff --git a/dom/webidl/AddonManager.webidl b/dom/webidl/AddonManager.webidl index d94c7b598062..ee01c73c17af 100644 --- a/dom/webidl/AddonManager.webidl +++ b/dom/webidl/AddonManager.webidl @@ -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 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 diff --git a/dom/webidl/AnalyserNode.webidl b/dom/webidl/AnalyserNode.webidl index 383566ad79ba..441e87934234 100644 --- a/dom/webidl/AnalyserNode.webidl +++ b/dom/webidl/AnalyserNode.webidl @@ -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, diff --git a/dom/webidl/Animation.webidl b/dom/webidl/Animation.webidl index bf33ab5f20ac..d808581c1468 100644 --- a/dom/webidl/Animation.webidl +++ b/dom/webidl/Animation.webidl @@ -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, diff --git a/dom/webidl/AnimationEffect.webidl b/dom/webidl/AnimationEffect.webidl index d64f5ec1e1db..7cd50ce6f01a 100644 --- a/dom/webidl/AnimationEffect.webidl +++ b/dom/webidl/AnimationEffect.webidl @@ -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"] diff --git a/dom/webidl/AnimationEvent.webidl b/dom/webidl/AnimationEvent.webidl index ad8055d1fb87..ae401948a7fb 100644 --- a/dom/webidl/AnimationEvent.webidl +++ b/dom/webidl/AnimationEvent.webidl @@ -11,6 +11,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface AnimationEvent : Event { constructor(DOMString type, optional AnimationEventInit eventInitDict = {}); diff --git a/dom/webidl/AnimationPlaybackEvent.webidl b/dom/webidl/AnimationPlaybackEvent.webidl index c65d1d52a5c1..c88aea7b9863 100644 --- a/dom/webidl/AnimationPlaybackEvent.webidl +++ b/dom/webidl/AnimationPlaybackEvent.webidl @@ -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 = {}); diff --git a/dom/webidl/AnimationTimeline.webidl b/dom/webidl/AnimationTimeline.webidl index 3b7151da7265..5b46c9cf955d 100644 --- a/dom/webidl/AnimationTimeline.webidl +++ b/dom/webidl/AnimationTimeline.webidl @@ -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; diff --git a/dom/webidl/AnonymousContent.webidl b/dom/webidl/AnonymousContent.webidl index c4de446e51a4..1f7aad7ba05b 100644 --- a/dom/webidl/AnonymousContent.webidl +++ b/dom/webidl/AnonymousContent.webidl @@ -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. diff --git a/dom/webidl/Attr.webidl b/dom/webidl/Attr.webidl index 921e2df81fbd..34deeddbdc27 100644 --- a/dom/webidl/Attr.webidl +++ b/dom/webidl/Attr.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface Attr : Node { readonly attribute DOMString localName; [CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows] diff --git a/dom/webidl/AudioBuffer.webidl b/dom/webidl/AudioBuffer.webidl index 89a9f594445f..de72e639e97d 100644 --- a/dom/webidl/AudioBuffer.webidl +++ b/dom/webidl/AudioBuffer.webidl @@ -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); diff --git a/dom/webidl/AudioBufferSourceNode.webidl b/dom/webidl/AudioBufferSourceNode.webidl index 4484d37a10fd..65f87788509b 100644 --- a/dom/webidl/AudioBufferSourceNode.webidl +++ b/dom/webidl/AudioBufferSourceNode.webidl @@ -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 = {}); diff --git a/dom/webidl/AudioContext.webidl b/dom/webidl/AudioContext.webidl index c0abb917ae73..61e1a5902170 100644 --- a/dom/webidl/AudioContext.webidl +++ b/dom/webidl/AudioContext.webidl @@ -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 = {}); diff --git a/dom/webidl/AudioDestinationNode.webidl b/dom/webidl/AudioDestinationNode.webidl index e5c6db868f9e..3a02b3d45f11 100644 --- a/dom/webidl/AudioDestinationNode.webidl +++ b/dom/webidl/AudioDestinationNode.webidl @@ -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; diff --git a/dom/webidl/AudioListener.webidl b/dom/webidl/AudioListener.webidl index d25c3ac4cc9d..374f6e84364f 100644 --- a/dom/webidl/AudioListener.webidl +++ b/dom/webidl/AudioListener.webidl @@ -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); diff --git a/dom/webidl/AudioNode.webidl b/dom/webidl/AudioNode.webidl index 8f05e9422375..7e96a5070652 100644 --- a/dom/webidl/AudioNode.webidl +++ b/dom/webidl/AudioNode.webidl @@ -27,7 +27,8 @@ dictionary AudioNodeOptions { ChannelInterpretation channelInterpretation; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface AudioNode : EventTarget { [Throws] diff --git a/dom/webidl/AudioParam.webidl b/dom/webidl/AudioParam.webidl index dacb49c67e40..9f244c1e73c0 100644 --- a/dom/webidl/AudioParam.webidl +++ b/dom/webidl/AudioParam.webidl @@ -15,7 +15,8 @@ enum AutomationRate { "k-rate" }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface AudioParam { attribute float value; diff --git a/dom/webidl/AudioParamMap.webidl b/dom/webidl/AudioParamMap.webidl index 9aabd93d4d85..f5951369d595 100644 --- a/dom/webidl/AudioParamMap.webidl +++ b/dom/webidl/AudioParamMap.webidl @@ -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; }; diff --git a/dom/webidl/AudioProcessingEvent.webidl b/dom/webidl/AudioProcessingEvent.webidl index 8cf3d9cc2272..e7011d201ca5 100644 --- a/dom/webidl/AudioProcessingEvent.webidl +++ b/dom/webidl/AudioProcessingEvent.webidl @@ -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; diff --git a/dom/webidl/AudioScheduledSourceNode.webidl b/dom/webidl/AudioScheduledSourceNode.webidl index 2acf6373b32c..eecec85f3ceb 100644 --- a/dom/webidl/AudioScheduledSourceNode.webidl +++ b/dom/webidl/AudioScheduledSourceNode.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface AudioScheduledSourceNode : AudioNode { attribute EventHandler onended; [Throws] diff --git a/dom/webidl/AudioTrack.webidl b/dom/webidl/AudioTrack.webidl index e70456a3726c..0f1ba81a2411 100644 --- a/dom/webidl/AudioTrack.webidl +++ b/dom/webidl/AudioTrack.webidl @@ -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; diff --git a/dom/webidl/AudioTrackList.webidl b/dom/webidl/AudioTrackList.webidl index 2c229a67a285..0a56d3ab3f98 100644 --- a/dom/webidl/AudioTrackList.webidl +++ b/dom/webidl/AudioTrackList.webidl @@ -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); diff --git a/dom/webidl/AudioWorklet.webidl b/dom/webidl/AudioWorklet.webidl index 720cd03ce67c..32e48facb3c6 100644 --- a/dom/webidl/AudioWorklet.webidl +++ b/dom/webidl/AudioWorklet.webidl @@ -12,4 +12,4 @@ [Exposed=Window, SecureContext, Pref="dom.audioworklet.enabled"] interface AudioWorklet : Worklet { -}; \ No newline at end of file +}; diff --git a/dom/webidl/AudioWorkletNode.webidl b/dom/webidl/AudioWorkletNode.webidl index 554b939ee4b4..a0bfd84de048 100644 --- a/dom/webidl/AudioWorkletNode.webidl +++ b/dom/webidl/AudioWorkletNode.webidl @@ -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, diff --git a/dom/webidl/BarProp.webidl b/dom/webidl/BarProp.webidl index 871f0793e4cb..ccbeccca33c3 100644 --- a/dom/webidl/BarProp.webidl +++ b/dom/webidl/BarProp.webidl @@ -4,6 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface BarProp { [Throws, NeedsCallerType] diff --git a/dom/webidl/BaseAudioContext.webidl b/dom/webidl/BaseAudioContext.webidl index b5c5b86e90f6..96eb898813f3 100644 --- a/dom/webidl/BaseAudioContext.webidl +++ b/dom/webidl/BaseAudioContext.webidl @@ -19,6 +19,7 @@ enum AudioContextState { "closed" }; +[Exposed=Window] interface BaseAudioContext : EventTarget { readonly attribute AudioDestinationNode destination; readonly attribute float sampleRate; diff --git a/dom/webidl/BatteryManager.webidl b/dom/webidl/BatteryManager.webidl index a964f3b0b014..d1faa59cfd4e 100644 --- a/dom/webidl/BatteryManager.webidl +++ b/dom/webidl/BatteryManager.webidl @@ -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; diff --git a/dom/webidl/BeforeUnloadEvent.webidl b/dom/webidl/BeforeUnloadEvent.webidl index e64e1b2c2991..e1caf63e4081 100644 --- a/dom/webidl/BeforeUnloadEvent.webidl +++ b/dom/webidl/BeforeUnloadEvent.webidl @@ -7,6 +7,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/#beforeunloadevent */ +[Exposed=Window] interface BeforeUnloadEvent : Event { attribute DOMString returnValue; }; diff --git a/dom/webidl/BiquadFilterNode.webidl b/dom/webidl/BiquadFilterNode.webidl index c9f2516f8c04..73eca0e8df50 100644 --- a/dom/webidl/BiquadFilterNode.webidl +++ b/dom/webidl/BiquadFilterNode.webidl @@ -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, diff --git a/dom/webidl/BlobEvent.webidl b/dom/webidl/BlobEvent.webidl index 241c2e128149..e30f4616bc64 100644 --- a/dom/webidl/BlobEvent.webidl +++ b/dom/webidl/BlobEvent.webidl @@ -7,6 +7,7 @@ * https://w3c.github.io/mediacapture-record/#blobevent-section */ +[Exposed=Window] interface BlobEvent : Event { constructor(DOMString type, optional BlobEventInit eventInitDict = {}); diff --git a/dom/webidl/CDATASection.webidl b/dom/webidl/CDATASection.webidl index 895dae0894cf..cc0e8e88b994 100644 --- a/dom/webidl/CDATASection.webidl +++ b/dom/webidl/CDATASection.webidl @@ -4,5 +4,6 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface CDATASection : Text { }; diff --git a/dom/webidl/CSS.webidl b/dom/webidl/CSS.webidl index ad3f9a42d872..d51becd28204 100644 --- a/dom/webidl/CSS.webidl +++ b/dom/webidl/CSS.webidl @@ -11,6 +11,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] namespace CSS { [Throws] boolean supports(DOMString property, DOMString value); diff --git a/dom/webidl/CSS2Properties.webidl.in b/dom/webidl/CSS2Properties.webidl.in index 62603b229a42..0f7853946cb3 100644 --- a/dom/webidl/CSS2Properties.webidl.in +++ b/dom/webidl/CSS2Properties.webidl.in @@ -1,3 +1,4 @@ +[Exposed=Window] interface CSS2Properties : CSSStyleDeclaration { ${props} }; diff --git a/dom/webidl/CSSAnimation.webidl b/dom/webidl/CSSAnimation.webidl index f2f7894b1d84..f60b9ed0c899 100644 --- a/dom/webidl/CSSAnimation.webidl +++ b/dom/webidl/CSSAnimation.webidl @@ -11,7 +11,8 @@ */ [Func="Document::IsWebAnimationsGetAnimationsEnabled", - HeaderFile="nsAnimationManager.h"] + HeaderFile="nsAnimationManager.h", + Exposed=Window] interface CSSAnimation : Animation { [Constant] readonly attribute DOMString animationName; }; diff --git a/dom/webidl/CSSConditionRule.webidl b/dom/webidl/CSSConditionRule.webidl index 24fae2343c73..c55d8b48862c 100644 --- a/dom/webidl/CSSConditionRule.webidl +++ b/dom/webidl/CSSConditionRule.webidl @@ -8,6 +8,7 @@ */ // https://drafts.csswg.org/css-conditional/#the-cssconditionrule-interface +[Exposed=Window] interface CSSConditionRule : CSSGroupingRule { [SetterThrows] attribute DOMString conditionText; diff --git a/dom/webidl/CSSCounterStyleRule.webidl b/dom/webidl/CSSCounterStyleRule.webidl index bb6f7e0e1b8d..27c63d95dc7f 100644 --- a/dom/webidl/CSSCounterStyleRule.webidl +++ b/dom/webidl/CSSCounterStyleRule.webidl @@ -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; diff --git a/dom/webidl/CSSFontFaceRule.webidl b/dom/webidl/CSSFontFaceRule.webidl index 221dd26aec20..fe5028d440e1 100644 --- a/dom/webidl/CSSFontFaceRule.webidl +++ b/dom/webidl/CSSFontFaceRule.webidl @@ -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; }; diff --git a/dom/webidl/CSSFontFeatureValuesRule.webidl b/dom/webidl/CSSFontFeatureValuesRule.webidl index 7532938141ea..9f017acdd6e5 100644 --- a/dom/webidl/CSSFontFeatureValuesRule.webidl +++ b/dom/webidl/CSSFontFeatureValuesRule.webidl @@ -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; diff --git a/dom/webidl/CSSGroupingRule.webidl b/dom/webidl/CSSGroupingRule.webidl index 93a221fb0bbb..cc993ad99292 100644 --- a/dom/webidl/CSSGroupingRule.webidl +++ b/dom/webidl/CSSGroupingRule.webidl @@ -8,6 +8,7 @@ */ // https://drafts.csswg.org/cssom/#cssgroupingrule +[Exposed=Window] interface CSSGroupingRule : CSSRule { [SameObject] readonly attribute CSSRuleList cssRules; [Throws] diff --git a/dom/webidl/CSSImportRule.webidl b/dom/webidl/CSSImportRule.webidl index fccb97141f01..f54faf7ce140 100644 --- a/dom/webidl/CSSImportRule.webidl +++ b/dom/webidl/CSSImportRule.webidl @@ -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 diff --git a/dom/webidl/CSSKeyframeRule.webidl b/dom/webidl/CSSKeyframeRule.webidl index f353eee0c184..0c0e5eb0351a 100644 --- a/dom/webidl/CSSKeyframeRule.webidl +++ b/dom/webidl/CSSKeyframeRule.webidl @@ -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; diff --git a/dom/webidl/CSSKeyframesRule.webidl b/dom/webidl/CSSKeyframesRule.webidl index d0ea978d0384..b79b531e6337 100644 --- a/dom/webidl/CSSKeyframesRule.webidl +++ b/dom/webidl/CSSKeyframesRule.webidl @@ -8,6 +8,7 @@ */ // https://drafts.csswg.org/css-animations/#interface-csskeyframesrule +[Exposed=Window] interface CSSKeyframesRule : CSSRule { attribute DOMString name; readonly attribute CSSRuleList cssRules; diff --git a/dom/webidl/CSSMediaRule.webidl b/dom/webidl/CSSMediaRule.webidl index 841a1b6f6b0e..10d7573d8a9b 100644 --- a/dom/webidl/CSSMediaRule.webidl +++ b/dom/webidl/CSSMediaRule.webidl @@ -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; }; diff --git a/dom/webidl/CSSMozDocumentRule.webidl b/dom/webidl/CSSMozDocumentRule.webidl index 27a22d52c73d..47bd3933fde1 100644 --- a/dom/webidl/CSSMozDocumentRule.webidl +++ b/dom/webidl/CSSMozDocumentRule.webidl @@ -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. }; diff --git a/dom/webidl/CSSNamespaceRule.webidl b/dom/webidl/CSSNamespaceRule.webidl index 63f9301738d6..6044c3a6f2c9 100644 --- a/dom/webidl/CSSNamespaceRule.webidl +++ b/dom/webidl/CSSNamespaceRule.webidl @@ -8,6 +8,7 @@ */ // https://drafts.csswg.org/cssom/#cssnamespacerule +[Exposed=Window] interface CSSNamespaceRule : CSSRule { readonly attribute DOMString namespaceURI; readonly attribute DOMString prefix; diff --git a/dom/webidl/CSSPageRule.webidl b/dom/webidl/CSSPageRule.webidl index 93e47ef02b9a..db7f7568b2dd 100644 --- a/dom/webidl/CSSPageRule.webidl +++ b/dom/webidl/CSSPageRule.webidl @@ -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; diff --git a/dom/webidl/CSSPseudoElement.webidl b/dom/webidl/CSSPseudoElement.webidl index 1d0891c131f5..d5af8815fe2c 100644 --- a/dom/webidl/CSSPseudoElement.webidl +++ b/dom/webidl/CSSPseudoElement.webidl @@ -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; diff --git a/dom/webidl/CSSRule.webidl b/dom/webidl/CSSRule.webidl index a825930351ed..7ec418d7d848 100644 --- a/dom/webidl/CSSRule.webidl +++ b/dom/webidl/CSSRule.webidl @@ -12,6 +12,7 @@ */ // https://drafts.csswg.org/cssom/#the-cssrule-interface +[Exposed=Window] interface CSSRule { const unsigned short STYLE_RULE = 1; diff --git a/dom/webidl/CSSRuleList.webidl b/dom/webidl/CSSRuleList.webidl index c4faec1489a6..bd263d419ec1 100644 --- a/dom/webidl/CSSRuleList.webidl +++ b/dom/webidl/CSSRuleList.webidl @@ -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); diff --git a/dom/webidl/CSSStyleDeclaration.webidl b/dom/webidl/CSSStyleDeclaration.webidl index 4241f534ff74..c32496a52423 100644 --- a/dom/webidl/CSSStyleDeclaration.webidl +++ b/dom/webidl/CSSStyleDeclaration.webidl @@ -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; diff --git a/dom/webidl/CSSStyleRule.webidl b/dom/webidl/CSSStyleRule.webidl index 571bd6a57feb..8cf54327f429 100644 --- a/dom/webidl/CSSStyleRule.webidl +++ b/dom/webidl/CSSStyleRule.webidl @@ -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; diff --git a/dom/webidl/CSSStyleSheet.webidl b/dom/webidl/CSSStyleSheet.webidl index adb7fcbde00a..7316d68e23e1 100644 --- a/dom/webidl/CSSStyleSheet.webidl +++ b/dom/webidl/CSSStyleSheet.webidl @@ -13,6 +13,7 @@ enum CSSStyleSheetParsingMode { "agent" }; +[Exposed=Window] interface CSSStyleSheet : StyleSheet { [Pure, BinaryName="DOMOwnerRule"] readonly attribute CSSRule? ownerRule; diff --git a/dom/webidl/CSSSupportsRule.webidl b/dom/webidl/CSSSupportsRule.webidl index 0576e90ebd2b..3040f345079e 100644 --- a/dom/webidl/CSSSupportsRule.webidl +++ b/dom/webidl/CSSSupportsRule.webidl @@ -8,5 +8,6 @@ */ // https://drafts.csswg.org/css-conditional/#the-csssupportsrule-interface +[Exposed=Window] interface CSSSupportsRule : CSSConditionRule { }; diff --git a/dom/webidl/CSSTransition.webidl b/dom/webidl/CSSTransition.webidl index f4357965f564..5c2f74173e3a 100644 --- a/dom/webidl/CSSTransition.webidl +++ b/dom/webidl/CSSTransition.webidl @@ -11,7 +11,8 @@ */ [Func="Document::IsWebAnimationsGetAnimationsEnabled", - HeaderFile="nsTransitionManager.h"] + HeaderFile="nsTransitionManager.h", + Exposed=Window] interface CSSTransition : Animation { [Constant] readonly attribute DOMString transitionProperty; }; diff --git a/dom/webidl/CanvasCaptureMediaStream.webidl b/dom/webidl/CanvasCaptureMediaStream.webidl index 98b1adbf6307..6851377cdc07 100644 --- a/dom/webidl/CanvasCaptureMediaStream.webidl +++ b/dom/webidl/CanvasCaptureMediaStream.webidl @@ -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(); diff --git a/dom/webidl/CanvasRenderingContext2D.webidl b/dom/webidl/CanvasRenderingContext2D.webidl index fe8a7c701018..a0d5bd289909 100644 --- a/dom/webidl/CanvasRenderingContext2D.webidl +++ b/dom/webidl/CanvasRenderingContext2D.webidl @@ -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(); diff --git a/dom/webidl/CaretPosition.webidl b/dom/webidl/CaretPosition.webidl index 5907b40d5015..2deb7d2d3fae 100644 --- a/dom/webidl/CaretPosition.webidl +++ b/dom/webidl/CaretPosition.webidl @@ -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 { /** diff --git a/dom/webidl/CaretStateChangedEvent.webidl b/dom/webidl/CaretStateChangedEvent.webidl index 106a49fc933f..5fdb9f34b3cb 100644 --- a/dom/webidl/CaretStateChangedEvent.webidl +++ b/dom/webidl/CaretStateChangedEvent.webidl @@ -25,7 +25,8 @@ dictionary CaretStateChangedEventInit : EventInit { DOMString selectedTextContent = ""; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface CaretStateChangedEvent : Event { constructor(DOMString type, optional CaretStateChangedEventInit eventInit = {}); diff --git a/dom/webidl/ChannelMergerNode.webidl b/dom/webidl/ChannelMergerNode.webidl index ba41ecf5235e..00fbf1bac4d1 100644 --- a/dom/webidl/ChannelMergerNode.webidl +++ b/dom/webidl/ChannelMergerNode.webidl @@ -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, diff --git a/dom/webidl/ChannelSplitterNode.webidl b/dom/webidl/ChannelSplitterNode.webidl index 0c8d4e75931b..ebd4e8fdc5d2 100644 --- a/dom/webidl/ChannelSplitterNode.webidl +++ b/dom/webidl/ChannelSplitterNode.webidl @@ -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, diff --git a/dom/webidl/CharacterData.webidl b/dom/webidl/CharacterData.webidl index d5e7e38f5d91..ca9b5248fc2a 100644 --- a/dom/webidl/CharacterData.webidl +++ b/dom/webidl/CharacterData.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface CharacterData : Node { [Pure, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString data; diff --git a/dom/webidl/CheckerboardReportService.webidl b/dom/webidl/CheckerboardReportService.webidl index f4ffa4198bff..f8dbd8dbd5af 100644 --- a/dom/webidl/CheckerboardReportService.webidl +++ b/dom/webidl/CheckerboardReportService.webidl @@ -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(); diff --git a/dom/webidl/ChildSHistory.webidl b/dom/webidl/ChildSHistory.webidl index 17db8d66aad4..d4475ff942cf 100644 --- a/dom/webidl/ChildSHistory.webidl +++ b/dom/webidl/ChildSHistory.webidl @@ -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; diff --git a/dom/webidl/ChromeNodeList.webidl b/dom/webidl/ChromeNodeList.webidl index 6245f7ae826c..0eec7e0ebd68 100644 --- a/dom/webidl/ChromeNodeList.webidl +++ b/dom/webidl/ChromeNodeList.webidl @@ -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(); diff --git a/dom/webidl/Clipboard.webidl b/dom/webidl/Clipboard.webidl index 4cdb5bf2b6b6..3fcd2d176547 100644 --- a/dom/webidl/Clipboard.webidl +++ b/dom/webidl/Clipboard.webidl @@ -22,4 +22,4 @@ interface Clipboard : EventTarget { Promise write(DataTransfer data); [Throws, NeedsSubjectPrincipal] Promise writeText(DOMString data); -}; \ No newline at end of file +}; diff --git a/dom/webidl/ClipboardEvent.webidl b/dom/webidl/ClipboardEvent.webidl index a90922adaec6..90ecfdb67d77 100644 --- a/dom/webidl/ClipboardEvent.webidl +++ b/dom/webidl/ClipboardEvent.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface ClipboardEvent : Event { [Throws] diff --git a/dom/webidl/CommandEvent.webidl b/dom/webidl/CommandEvent.webidl index 0ce0a4e0f094..3d0fdb00742b 100644 --- a/dom/webidl/CommandEvent.webidl +++ b/dom/webidl/CommandEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Func="IsChromeOrXBL"] +[Func="IsChromeOrXBL", + Exposed=Window] interface CommandEvent : Event { readonly attribute DOMString? command; }; diff --git a/dom/webidl/Comment.webidl b/dom/webidl/Comment.webidl index cb7834bf507f..e3662a4d6cfa 100644 --- a/dom/webidl/Comment.webidl +++ b/dom/webidl/Comment.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface Comment : CharacterData { [Throws] constructor(optional DOMString data = ""); diff --git a/dom/webidl/CompositionEvent.webidl b/dom/webidl/CompositionEvent.webidl index d62f160022bd..fa8ed8498c4c 100644 --- a/dom/webidl/CompositionEvent.webidl +++ b/dom/webidl/CompositionEvent.webidl @@ -9,6 +9,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface CompositionEvent : UIEvent { constructor(DOMString type, optional CompositionEventInit eventInitDict = {}); diff --git a/dom/webidl/ConstantSourceNode.webidl b/dom/webidl/ConstantSourceNode.webidl index 14991251c354..a7106b04dbb5 100644 --- a/dom/webidl/ConstantSourceNode.webidl +++ b/dom/webidl/ConstantSourceNode.webidl @@ -14,7 +14,8 @@ dictionary ConstantSourceOptions { float offset = 1; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface ConstantSourceNode : AudioScheduledSourceNode { constructor(BaseAudioContext context, optional ConstantSourceOptions options = {}); diff --git a/dom/webidl/ConvolverNode.webidl b/dom/webidl/ConvolverNode.webidl index 0c9abf2ce2ec..c6f55587fd1e 100644 --- a/dom/webidl/ConvolverNode.webidl +++ b/dom/webidl/ConvolverNode.webidl @@ -15,7 +15,8 @@ dictionary ConvolverOptions : AudioNodeOptions { boolean disableNormalization = false; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface ConvolverNode : AudioNode { [Throws] constructor(BaseAudioContext context, optional diff --git a/dom/webidl/Coordinates.webidl b/dom/webidl/Coordinates.webidl index 840782f74928..ffa696c3f2d2 100644 --- a/dom/webidl/Coordinates.webidl +++ b/dom/webidl/Coordinates.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface Coordinates { readonly attribute double latitude; readonly attribute double longitude; diff --git a/dom/webidl/CreateOfferRequest.webidl b/dom/webidl/CreateOfferRequest.webidl index 134fe33fa206..f6ceb800eac2 100644 --- a/dom/webidl/CreateOfferRequest.webidl +++ b/dom/webidl/CreateOfferRequest.webidl @@ -7,7 +7,8 @@ */ [ChromeOnly, - JSImplementation="@mozilla.org/dom/createofferrequest;1"] + JSImplementation="@mozilla.org/dom/createofferrequest;1", + Exposed=Window] interface CreateOfferRequest { readonly attribute unsigned long long windowID; readonly attribute unsigned long long innerWindowID; diff --git a/dom/webidl/CustomElementRegistry.webidl b/dom/webidl/CustomElementRegistry.webidl index 384ed4d196b7..0e79593a191e 100644 --- a/dom/webidl/CustomElementRegistry.webidl +++ b/dom/webidl/CustomElementRegistry.webidl @@ -3,6 +3,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/#dom-window-customelements +[Exposed=Window] interface CustomElementRegistry { [CEReactions, Throws, UseCounter] void define(DOMString name, CustomElementConstructor constructor, diff --git a/dom/webidl/DOMImplementation.webidl b/dom/webidl/DOMImplementation.webidl index 5fa3c8592708..814e616a2de8 100644 --- a/dom/webidl/DOMImplementation.webidl +++ b/dom/webidl/DOMImplementation.webidl @@ -11,6 +11,7 @@ * related or neighboring rights to this work. */ +[Exposed=Window] interface DOMImplementation { boolean hasFeature(); diff --git a/dom/webidl/DOMParser.webidl b/dom/webidl/DOMParser.webidl index 777b03b1d14a..30fcd0149590 100644 --- a/dom/webidl/DOMParser.webidl +++ b/dom/webidl/DOMParser.webidl @@ -18,6 +18,7 @@ enum SupportedType { "image/svg+xml" }; +[Exposed=Window] interface DOMParser { [Throws] constructor(); diff --git a/dom/webidl/DOMRectList.webidl b/dom/webidl/DOMRectList.webidl index 74332bfc1608..8257f733278d 100644 --- a/dom/webidl/DOMRectList.webidl +++ b/dom/webidl/DOMRectList.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface DOMRectList { readonly attribute unsigned long length; getter DOMRect? item(unsigned long index); diff --git a/dom/webidl/DOMStringMap.webidl b/dom/webidl/DOMStringMap.webidl index e86e37a378be..9e27adc8fd80 100644 --- a/dom/webidl/DOMStringMap.webidl +++ b/dom/webidl/DOMStringMap.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[OverrideBuiltins] +[OverrideBuiltins, + Exposed=Window] interface DOMStringMap { getter DOMString (DOMString name); [CEReactions, Throws] diff --git a/dom/webidl/DOMTokenList.webidl b/dom/webidl/DOMTokenList.webidl index a662300d83dd..8cdeffd5fdb2 100644 --- a/dom/webidl/DOMTokenList.webidl +++ b/dom/webidl/DOMTokenList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface DOMTokenList { readonly attribute unsigned long length; getter DOMString? item(unsigned long index); diff --git a/dom/webidl/DataTransfer.webidl b/dom/webidl/DataTransfer.webidl index 95a98e30ccd2..f37bcf729d0c 100644 --- a/dom/webidl/DataTransfer.webidl +++ b/dom/webidl/DataTransfer.webidl @@ -8,6 +8,7 @@ */ interface ContentSecurityPolicy; +[Exposed=Window] interface DataTransfer { constructor(); diff --git a/dom/webidl/DataTransferItem.webidl b/dom/webidl/DataTransferItem.webidl index 16afead9b111..dded448bbf44 100644 --- a/dom/webidl/DataTransferItem.webidl +++ b/dom/webidl/DataTransferItem.webidl @@ -8,6 +8,7 @@ * https://wicg.github.io/entries-api/#idl-index */ +[Exposed=Window] interface DataTransferItem { readonly attribute DOMString kind; readonly attribute DOMString type; diff --git a/dom/webidl/DataTransferItemList.webidl b/dom/webidl/DataTransferItemList.webidl index 079afdd14811..ced0bbc07431 100644 --- a/dom/webidl/DataTransferItemList.webidl +++ b/dom/webidl/DataTransferItemList.webidl @@ -7,6 +7,7 @@ * https://html.spec.whatwg.org/multipage/interaction.html#the-datatransferitemlist-interface */ +[Exposed=Window] interface DataTransferItemList { readonly attribute unsigned long length; getter DataTransferItem (unsigned long index); diff --git a/dom/webidl/DelayNode.webidl b/dom/webidl/DelayNode.webidl index fa75b64ab6d0..f71ad6f6516e 100644 --- a/dom/webidl/DelayNode.webidl +++ b/dom/webidl/DelayNode.webidl @@ -15,7 +15,8 @@ dictionary DelayOptions : AudioNodeOptions { double delayTime = 0; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface DelayNode : AudioNode { [Throws] constructor(BaseAudioContext context, optional DelayOptions options = {}); diff --git a/dom/webidl/DeviceLightEvent.webidl b/dom/webidl/DeviceLightEvent.webidl index 0c85bec497c7..6d0c86718fb9 100644 --- a/dom/webidl/DeviceLightEvent.webidl +++ b/dom/webidl/DeviceLightEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="device.sensors.ambientLight.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled"] +[Pref="device.sensors.ambientLight.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled", + Exposed=Window] interface DeviceLightEvent : Event { constructor(DOMString type, optional DeviceLightEventInit eventInitDict = {}); diff --git a/dom/webidl/DeviceMotionEvent.webidl b/dom/webidl/DeviceMotionEvent.webidl index e17907619c79..c46cf6730a85 100644 --- a/dom/webidl/DeviceMotionEvent.webidl +++ b/dom/webidl/DeviceMotionEvent.webidl @@ -6,21 +6,24 @@ * https://w3c.github.io/deviceorientation/ */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface DeviceAcceleration { readonly attribute double? x; readonly attribute double? y; readonly attribute double? z; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface DeviceRotationRate { readonly attribute double? alpha; readonly attribute double? beta; readonly attribute double? gamma; }; -[Pref="device.sensors.motion.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled"] +[Pref="device.sensors.motion.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled", + Exposed=Window] interface DeviceMotionEvent : Event { constructor(DOMString type, optional DeviceMotionEventInit eventInitDict = {}); diff --git a/dom/webidl/DeviceOrientationEvent.webidl b/dom/webidl/DeviceOrientationEvent.webidl index ba3bf6a17d41..5acbbaa6ce15 100644 --- a/dom/webidl/DeviceOrientationEvent.webidl +++ b/dom/webidl/DeviceOrientationEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="device.sensors.orientation.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled", LegacyEventInit] +[Pref="device.sensors.orientation.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled", LegacyEventInit, + Exposed=Window] interface DeviceOrientationEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/DeviceProximityEvent.webidl b/dom/webidl/DeviceProximityEvent.webidl index b4c1c4ca8e58..26ae0ce11c41 100644 --- a/dom/webidl/DeviceProximityEvent.webidl +++ b/dom/webidl/DeviceProximityEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="device.sensors.proximity.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled"] +[Pref="device.sensors.proximity.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled", + Exposed=Window] interface DeviceProximityEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/Document.webidl b/dom/webidl/Document.webidl index 24e3f7b8ad7c..1e24ca62479f 100644 --- a/dom/webidl/Document.webidl +++ b/dom/webidl/Document.webidl @@ -36,6 +36,7 @@ dictionary ElementCreationOptions { }; /* https://dom.spec.whatwg.org/#interface-document */ +[Exposed=Window] interface Document : Node { [Throws] constructor(); diff --git a/dom/webidl/DocumentFragment.webidl b/dom/webidl/DocumentFragment.webidl index 5d51545076f7..d02c23df0a08 100644 --- a/dom/webidl/DocumentFragment.webidl +++ b/dom/webidl/DocumentFragment.webidl @@ -11,6 +11,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface DocumentFragment : Node { [Throws] constructor(); diff --git a/dom/webidl/DocumentTimeline.webidl b/dom/webidl/DocumentTimeline.webidl index 29f91553a89e..8e757addb339 100644 --- a/dom/webidl/DocumentTimeline.webidl +++ b/dom/webidl/DocumentTimeline.webidl @@ -14,7 +14,8 @@ dictionary DocumentTimelineOptions { DOMHighResTimeStamp originTime = 0; }; -[Func="Document::AreWebAnimationsTimelinesEnabled"] +[Func="Document::AreWebAnimationsTimelinesEnabled", + Exposed=Window] interface DocumentTimeline : AnimationTimeline { [Throws] constructor(optional DocumentTimelineOptions options = {}); diff --git a/dom/webidl/DocumentType.webidl b/dom/webidl/DocumentType.webidl index b19b319c2144..62a641e804ca 100644 --- a/dom/webidl/DocumentType.webidl +++ b/dom/webidl/DocumentType.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface DocumentType : Node { readonly attribute DOMString name; readonly attribute DOMString publicId; diff --git a/dom/webidl/DragEvent.webidl b/dom/webidl/DragEvent.webidl index 2b2a430c6e9d..79909bef37ca 100644 --- a/dom/webidl/DragEvent.webidl +++ b/dom/webidl/DragEvent.webidl @@ -7,6 +7,7 @@ * https://html.spec.whatwg.org/multipage/#dragevent */ +[Exposed=Window] interface DragEvent : MouseEvent { constructor(DOMString type, optional DragEventInit eventInitDict = {}); diff --git a/dom/webidl/DynamicsCompressorNode.webidl b/dom/webidl/DynamicsCompressorNode.webidl index ba392c2ff0f2..153094b353f9 100644 --- a/dom/webidl/DynamicsCompressorNode.webidl +++ b/dom/webidl/DynamicsCompressorNode.webidl @@ -18,7 +18,8 @@ dictionary DynamicsCompressorOptions : AudioNodeOptions { float threshold = -24; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface DynamicsCompressorNode : AudioNode { [Throws] constructor(BaseAudioContext context, diff --git a/dom/webidl/Element.webidl b/dom/webidl/Element.webidl index be4ff2739310..3154323134e8 100644 --- a/dom/webidl/Element.webidl +++ b/dom/webidl/Element.webidl @@ -13,6 +13,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface Element : Node { [Constant] readonly attribute DOMString? namespaceURI; diff --git a/dom/webidl/EventListener.webidl b/dom/webidl/EventListener.webidl index 46aa748d6917..679b8fbdf016 100644 --- a/dom/webidl/EventListener.webidl +++ b/dom/webidl/EventListener.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] callback interface EventListener { void handleEvent(Event event); }; diff --git a/dom/webidl/External.webidl b/dom/webidl/External.webidl index ab9e75f320ef..753d4b119384 100644 --- a/dom/webidl/External.webidl +++ b/dom/webidl/External.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[NoInterfaceObject, JSImplementation="@mozilla.org/sidebar;1"] +[NoInterfaceObject, JSImplementation="@mozilla.org/sidebar;1", + Exposed=Window] interface External { [Deprecated="External_AddSearchProvider"] diff --git a/dom/webidl/FeaturePolicy.webidl b/dom/webidl/FeaturePolicy.webidl index e89f56b6ded8..3669e715a750 100644 --- a/dom/webidl/FeaturePolicy.webidl +++ b/dom/webidl/FeaturePolicy.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/webappsec-feature-policy/#idl-index */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface FeaturePolicy { boolean allowsFeature(DOMString feature, optional DOMString origin); sequence features(); @@ -15,7 +16,8 @@ interface FeaturePolicy { sequence getAllowlistForFeature(DOMString feature); }; -[Pref="dom.reporting.featurePolicy.enabled"] +[Pref="dom.reporting.featurePolicy.enabled", + Exposed=Window] interface FeaturePolicyViolationReportBody : ReportBody { readonly attribute DOMString featureId; readonly attribute DOMString? sourceFile; diff --git a/dom/webidl/FetchObserver.webidl b/dom/webidl/FetchObserver.webidl index f9139e8afa5a..064903c490ea 100644 --- a/dom/webidl/FetchObserver.webidl +++ b/dom/webidl/FetchObserver.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] callback interface ObserverCallback { void handleEvent(FetchObserver observer); }; diff --git a/dom/webidl/FileSystem.webidl b/dom/webidl/FileSystem.webidl index f30361d2cb95..65f2ae47ba8a 100644 --- a/dom/webidl/FileSystem.webidl +++ b/dom/webidl/FileSystem.webidl @@ -15,6 +15,7 @@ callback FileSystemEntryCallback = void (FileSystemEntry entry); callback ErrorCallback = void (DOMException err); +[Exposed=Window] interface FileSystem { readonly attribute USVString name; readonly attribute FileSystemDirectoryEntry root; diff --git a/dom/webidl/FileSystemDirectoryEntry.webidl b/dom/webidl/FileSystemDirectoryEntry.webidl index 7e2a670fe957..b73309e5799e 100644 --- a/dom/webidl/FileSystemDirectoryEntry.webidl +++ b/dom/webidl/FileSystemDirectoryEntry.webidl @@ -6,6 +6,7 @@ * https://wicg.github.io/entries-api/#idl-index */ +[Exposed=Window] interface FileSystemDirectoryEntry : FileSystemEntry { FileSystemDirectoryReader createReader(); diff --git a/dom/webidl/FileSystemDirectoryReader.webidl b/dom/webidl/FileSystemDirectoryReader.webidl index 302bc432993f..fc82e7e01d5f 100644 --- a/dom/webidl/FileSystemDirectoryReader.webidl +++ b/dom/webidl/FileSystemDirectoryReader.webidl @@ -8,6 +8,7 @@ callback FileSystemEntriesCallback = void (sequence entries); +[Exposed=Window] interface FileSystemDirectoryReader { // readEntries can be called just once. The second time it returns no data. diff --git a/dom/webidl/FileSystemEntry.webidl b/dom/webidl/FileSystemEntry.webidl index 024d821d23cf..5e341bca83fe 100644 --- a/dom/webidl/FileSystemEntry.webidl +++ b/dom/webidl/FileSystemEntry.webidl @@ -6,6 +6,7 @@ * https://wicg.github.io/entries-api/#idl-index */ +[Exposed=Window] interface FileSystemEntry { readonly attribute boolean isFile; readonly attribute boolean isDirectory; diff --git a/dom/webidl/FileSystemFileEntry.webidl b/dom/webidl/FileSystemFileEntry.webidl index c0c51c145798..0e0f0f712381 100644 --- a/dom/webidl/FileSystemFileEntry.webidl +++ b/dom/webidl/FileSystemFileEntry.webidl @@ -8,6 +8,7 @@ callback FileCallback = void (File file); +[Exposed=Window] interface FileSystemFileEntry : FileSystemEntry { [BinaryName="GetFile"] void file (FileCallback successCallback, diff --git a/dom/webidl/FocusEvent.webidl b/dom/webidl/FocusEvent.webidl index 9adcb14ee1d2..00ae719d4df1 100644 --- a/dom/webidl/FocusEvent.webidl +++ b/dom/webidl/FocusEvent.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface FocusEvent : UIEvent { constructor(DOMString typeArg, optional FocusEventInit focusEventInitDict = {}); diff --git a/dom/webidl/FontFace.webidl b/dom/webidl/FontFace.webidl index ea54503a71f1..e93e8d02b4f3 100644 --- a/dom/webidl/FontFace.webidl +++ b/dom/webidl/FontFace.webidl @@ -27,7 +27,8 @@ enum FontFaceLoadStatus { "unloaded", "loading", "loaded", "error" }; // Bug 1072107 is for exposing this in workers. // [Exposed=(Window,Worker)] -[Pref="layout.css.font-loading-api.enabled"] +[Pref="layout.css.font-loading-api.enabled", + Exposed=Window] interface FontFace { [Throws] constructor(DOMString family, diff --git a/dom/webidl/FontFaceSet.webidl b/dom/webidl/FontFaceSet.webidl index 0f4324a207c0..d6c8cabc2a35 100644 --- a/dom/webidl/FontFaceSet.webidl +++ b/dom/webidl/FontFaceSet.webidl @@ -18,7 +18,8 @@ dictionary FontFaceSetIteratorResult }; // To implement FontFaceSet's iterator until we can use setlike. -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface FontFaceSetIterator { [Throws] FontFaceSetIteratorResult next(); }; @@ -27,7 +28,8 @@ callback FontFaceSetForEachCallback = void (FontFace value, FontFace key, FontFa enum FontFaceSetLoadStatus { "loading", "loaded" }; -[Pref="layout.css.font-loading-api.enabled"] +[Pref="layout.css.font-loading-api.enabled", + Exposed=Window] interface FontFaceSet : EventTarget { // Bug 1072762 is for the FontFaceSet constructor. // constructor(sequence initialFaces); diff --git a/dom/webidl/FontFaceSetLoadEvent.webidl b/dom/webidl/FontFaceSetLoadEvent.webidl index 402db7382e14..761cf17a8cb5 100644 --- a/dom/webidl/FontFaceSetLoadEvent.webidl +++ b/dom/webidl/FontFaceSetLoadEvent.webidl @@ -14,7 +14,8 @@ dictionary FontFaceSetLoadEventInit : EventInit { sequence fontfaces = []; }; -[Pref="layout.css.font-loading-api.enabled"] +[Pref="layout.css.font-loading-api.enabled", + Exposed=Window] interface FontFaceSetLoadEvent : Event { constructor(DOMString type, optional FontFaceSetLoadEventInit eventInitDict = {}); diff --git a/dom/webidl/FrameCrashedEvent.webidl b/dom/webidl/FrameCrashedEvent.webidl index 9dd021a712e6..234649b29704 100644 --- a/dom/webidl/FrameCrashedEvent.webidl +++ b/dom/webidl/FrameCrashedEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface FrameCrashedEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/FrameLoader.webidl b/dom/webidl/FrameLoader.webidl index 638232af8ab1..8d6796f34aef 100644 --- a/dom/webidl/FrameLoader.webidl +++ b/dom/webidl/FrameLoader.webidl @@ -12,7 +12,8 @@ interface nsIPrintSettings; interface nsIWebBrowserPersistDocumentReceiver; interface nsIWebProgressListener; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface FrameLoader { /** * Get the docshell from the frame loader. diff --git a/dom/webidl/FuzzingFunctions.webidl b/dom/webidl/FuzzingFunctions.webidl index ef0ee7c0de34..33bfb1689091 100644 --- a/dom/webidl/FuzzingFunctions.webidl +++ b/dom/webidl/FuzzingFunctions.webidl @@ -10,7 +10,8 @@ * enable on untrusted pages. */ -[Pref="fuzzing.enabled"] +[Pref="fuzzing.enabled", + Exposed=Window] interface FuzzingFunctions { /** * Synchronously perform a garbage collection. diff --git a/dom/webidl/GainNode.webidl b/dom/webidl/GainNode.webidl index 9f9e84a9fed2..3b4dc440b7d9 100644 --- a/dom/webidl/GainNode.webidl +++ b/dom/webidl/GainNode.webidl @@ -14,7 +14,8 @@ dictionary GainOptions : AudioNodeOptions { float gain = 1.0; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface GainNode : AudioNode { [Throws] constructor(BaseAudioContext context, optional GainOptions options = {}); diff --git a/dom/webidl/Gamepad.webidl b/dom/webidl/Gamepad.webidl index 19e5c4ac88a1..9e0e7d24910b 100644 --- a/dom/webidl/Gamepad.webidl +++ b/dom/webidl/Gamepad.webidl @@ -9,7 +9,8 @@ * https://w3c.github.io/webvr/spec/1.1/#interface-gamepad */ -[Pref="dom.gamepad.enabled"] +[Pref="dom.gamepad.enabled", + Exposed=Window] interface GamepadButton { readonly attribute boolean pressed; readonly attribute boolean touched; @@ -27,7 +28,8 @@ enum GamepadMappingType { "standard" }; -[Pref="dom.gamepad.enabled"] +[Pref="dom.gamepad.enabled", + Exposed=Window] interface Gamepad { /** * An identifier, unique per type of device. diff --git a/dom/webidl/GamepadAxisMoveEvent.webidl b/dom/webidl/GamepadAxisMoveEvent.webidl index fd8a1115988f..24f16568f2e8 100644 --- a/dom/webidl/GamepadAxisMoveEvent.webidl +++ b/dom/webidl/GamepadAxisMoveEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="dom.gamepad.non_standard_events.enabled"] +[Pref="dom.gamepad.non_standard_events.enabled", + Exposed=Window] interface GamepadAxisMoveEvent : GamepadEvent { constructor(DOMString type, diff --git a/dom/webidl/GamepadButtonEvent.webidl b/dom/webidl/GamepadButtonEvent.webidl index 764fcdd3fac2..47d71107f0ca 100644 --- a/dom/webidl/GamepadButtonEvent.webidl +++ b/dom/webidl/GamepadButtonEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="dom.gamepad.non_standard_events.enabled"] +[Pref="dom.gamepad.non_standard_events.enabled", + Exposed=Window] interface GamepadButtonEvent : GamepadEvent { constructor(DOMString type, diff --git a/dom/webidl/GamepadEvent.webidl b/dom/webidl/GamepadEvent.webidl index 09cc45a85d57..0189050093a0 100644 --- a/dom/webidl/GamepadEvent.webidl +++ b/dom/webidl/GamepadEvent.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/gamepad/#gamepadevent-interface */ -[Pref="dom.gamepad.enabled"] +[Pref="dom.gamepad.enabled", + Exposed=Window] interface GamepadEvent : Event { constructor(DOMString type, optional GamepadEventInit eventInitDict = {}); diff --git a/dom/webidl/GamepadHapticActuator.webidl b/dom/webidl/GamepadHapticActuator.webidl index 9255debe34bf..0f3c8e0553b2 100644 --- a/dom/webidl/GamepadHapticActuator.webidl +++ b/dom/webidl/GamepadHapticActuator.webidl @@ -12,7 +12,8 @@ enum GamepadHapticActuatorType { }; [Pref="dom.gamepad.extensions.enabled", - HeaderFile="mozilla/dom/GamepadHapticActuator.h"] + HeaderFile="mozilla/dom/GamepadHapticActuator.h", + Exposed=Window] interface GamepadHapticActuator { readonly attribute GamepadHapticActuatorType type; diff --git a/dom/webidl/GamepadLightIndicator.webidl b/dom/webidl/GamepadLightIndicator.webidl index 8b83eb8f58a7..2c447439c8a1 100644 --- a/dom/webidl/GamepadLightIndicator.webidl +++ b/dom/webidl/GamepadLightIndicator.webidl @@ -18,7 +18,8 @@ dictionary GamepadLightColor { required octet blue; }; -[SecureContext, Pref="dom.gamepad.extensions.lightindicator"] +[SecureContext, Pref="dom.gamepad.extensions.lightindicator", + Exposed=Window] interface GamepadLightIndicator { readonly attribute GamepadLightIndicatorType type; diff --git a/dom/webidl/GamepadPose.webidl b/dom/webidl/GamepadPose.webidl index 4bc2086984ec..055df15930af 100644 --- a/dom/webidl/GamepadPose.webidl +++ b/dom/webidl/GamepadPose.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/gamepad/extensions.html#gamepadpose-interface */ -[Pref="dom.gamepad.extensions.enabled"] +[Pref="dom.gamepad.extensions.enabled", + Exposed=Window] interface GamepadPose { readonly attribute boolean hasOrientation; diff --git a/dom/webidl/GamepadServiceTest.webidl b/dom/webidl/GamepadServiceTest.webidl index 1315d9c31d83..fa21b88b735b 100644 --- a/dom/webidl/GamepadServiceTest.webidl +++ b/dom/webidl/GamepadServiceTest.webidl @@ -2,7 +2,8 @@ * 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/. */ -[Pref="dom.gamepad.test.enabled"] +[Pref="dom.gamepad.test.enabled", + Exposed=Window] interface GamepadServiceTest { readonly attribute GamepadMappingType noMapping; diff --git a/dom/webidl/GamepadTouch.webidl b/dom/webidl/GamepadTouch.webidl index 5c045b87c043..a9c84edcbdc5 100644 --- a/dom/webidl/GamepadTouch.webidl +++ b/dom/webidl/GamepadTouch.webidl @@ -7,7 +7,8 @@ * https://github.com/knyg/gamepad/blob/multitouch/extensions.html */ -[SecureContext, Pref="dom.gamepad.extensions.multitouch"] +[SecureContext, Pref="dom.gamepad.extensions.multitouch", + Exposed=Window] interface GamepadTouch { readonly attribute unsigned long touchId; readonly attribute octet surfaceId; diff --git a/dom/webidl/Geolocation.webidl b/dom/webidl/Geolocation.webidl index 08a3db5e6962..c9ba82564179 100644 --- a/dom/webidl/Geolocation.webidl +++ b/dom/webidl/Geolocation.webidl @@ -16,7 +16,8 @@ dictionary PositionOptions { [Clamp] unsigned long maximumAge = 0; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface Geolocation { [Throws, NeedsCallerType] void getCurrentPosition(PositionCallback successCallback, diff --git a/dom/webidl/GetUserMediaRequest.webidl b/dom/webidl/GetUserMediaRequest.webidl index 7ccbcc9f4187..6762f571a6c1 100644 --- a/dom/webidl/GetUserMediaRequest.webidl +++ b/dom/webidl/GetUserMediaRequest.webidl @@ -13,7 +13,8 @@ // for gUM request stop (recording-device-stopped) notification due to track stop, // only windowID, rawID and mediaSource will be set -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface GetUserMediaRequest { readonly attribute unsigned long long windowID; readonly attribute unsigned long long innerWindowID; diff --git a/dom/webidl/Grid.webidl b/dom/webidl/Grid.webidl index 0b5dbf23991d..0bd5525b0300 100644 --- a/dom/webidl/Grid.webidl +++ b/dom/webidl/Grid.webidl @@ -19,7 +19,8 @@ enum GridDeclaration { "explicit", "implicit" }; */ enum GridTrackState { "static", "repeat", "removed" }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface Grid { readonly attribute GridDimension rows; @@ -28,14 +29,16 @@ interface Grid readonly attribute sequence areas; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface GridDimension { readonly attribute GridLines lines; readonly attribute GridTracks tracks; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface GridLines { readonly attribute unsigned long length; @@ -47,7 +50,8 @@ interface GridLines getter GridLine? item(unsigned long index); }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface GridLine { /** @@ -90,7 +94,8 @@ interface GridLine readonly attribute long negativeNumber; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface GridTracks { readonly attribute unsigned long length; @@ -102,7 +107,8 @@ interface GridTracks getter GridTrack? item(unsigned long index); }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface GridTrack { readonly attribute double start; @@ -111,7 +117,8 @@ interface GridTrack readonly attribute GridTrackState state; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface GridArea { readonly attribute DOMString name; diff --git a/dom/webidl/HTMLAllCollection.webidl b/dom/webidl/HTMLAllCollection.webidl index a2d8efe0ca4c..43b989a68d4a 100644 --- a/dom/webidl/HTMLAllCollection.webidl +++ b/dom/webidl/HTMLAllCollection.webidl @@ -3,7 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* Emulates undefined through Codegen.py. */ -[LegacyUnenumerableNamedProperties] +[LegacyUnenumerableNamedProperties, + Exposed=Window] interface HTMLAllCollection { readonly attribute unsigned long length; getter Element (unsigned long index); diff --git a/dom/webidl/HTMLAnchorElement.webidl b/dom/webidl/HTMLAnchorElement.webidl index d19c8ec5b66e..623ebaee4cb4 100644 --- a/dom/webidl/HTMLAnchorElement.webidl +++ b/dom/webidl/HTMLAnchorElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-a-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLAnchorElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString target; diff --git a/dom/webidl/HTMLAreaElement.webidl b/dom/webidl/HTMLAreaElement.webidl index c2c05b724abd..e4c01a23983b 100644 --- a/dom/webidl/HTMLAreaElement.webidl +++ b/dom/webidl/HTMLAreaElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-area-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLAreaElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString alt; diff --git a/dom/webidl/HTMLAudioElement.webidl b/dom/webidl/HTMLAudioElement.webidl index 72566983945a..7172cb471863 100644 --- a/dom/webidl/HTMLAudioElement.webidl +++ b/dom/webidl/HTMLAudioElement.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ -[HTMLConstructor, NamedConstructor=Audio(optional DOMString src)] +[HTMLConstructor, NamedConstructor=Audio(optional DOMString src), + Exposed=Window] interface HTMLAudioElement : HTMLMediaElement {}; diff --git a/dom/webidl/HTMLBRElement.webidl b/dom/webidl/HTMLBRElement.webidl index aca144d168fb..e73145d02dca 100644 --- a/dom/webidl/HTMLBRElement.webidl +++ b/dom/webidl/HTMLBRElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-br-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLBRElement : HTMLElement {}; // http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis diff --git a/dom/webidl/HTMLBaseElement.webidl b/dom/webidl/HTMLBaseElement.webidl index ed86f8c77d90..af0b76e6fc7b 100644 --- a/dom/webidl/HTMLBaseElement.webidl +++ b/dom/webidl/HTMLBaseElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-base-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLBaseElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString href; diff --git a/dom/webidl/HTMLBodyElement.webidl b/dom/webidl/HTMLBodyElement.webidl index f7f426e88d41..6cec91919242 100644 --- a/dom/webidl/HTMLBodyElement.webidl +++ b/dom/webidl/HTMLBodyElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLBodyElement : HTMLElement { }; diff --git a/dom/webidl/HTMLButtonElement.webidl b/dom/webidl/HTMLButtonElement.webidl index 9ea7d9082f7f..5ec108851987 100644 --- a/dom/webidl/HTMLButtonElement.webidl +++ b/dom/webidl/HTMLButtonElement.webidl @@ -11,7 +11,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-button-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLButtonElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute boolean autofocus; diff --git a/dom/webidl/HTMLCanvasElement.webidl b/dom/webidl/HTMLCanvasElement.webidl index f54d3dac6a6d..959f62477f9e 100644 --- a/dom/webidl/HTMLCanvasElement.webidl +++ b/dom/webidl/HTMLCanvasElement.webidl @@ -13,7 +13,8 @@ interface nsISupports; interface Variant; -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLCanvasElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute unsigned long width; @@ -56,7 +57,8 @@ partial interface HTMLCanvasElement { OffscreenCanvas transferControlToOffscreen(); }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface MozCanvasPrintState { // A canvas rendering context. diff --git a/dom/webidl/HTMLCollection.webidl b/dom/webidl/HTMLCollection.webidl index f7f020c0ff1f..805788b57231 100644 --- a/dom/webidl/HTMLCollection.webidl +++ b/dom/webidl/HTMLCollection.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[LegacyUnenumerableNamedProperties] +[LegacyUnenumerableNamedProperties, + Exposed=Window] interface HTMLCollection { readonly attribute unsigned long length; getter Element? item(unsigned long index); diff --git a/dom/webidl/HTMLDListElement.webidl b/dom/webidl/HTMLDListElement.webidl index 4cf1c218310f..c72dd0bb9d6c 100644 --- a/dom/webidl/HTMLDListElement.webidl +++ b/dom/webidl/HTMLDListElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-dl-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLDListElement : HTMLElement { }; diff --git a/dom/webidl/HTMLDataElement.webidl b/dom/webidl/HTMLDataElement.webidl index d24537871423..aef7a2d8a649 100644 --- a/dom/webidl/HTMLDataElement.webidl +++ b/dom/webidl/HTMLDataElement.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-data-element */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLDataElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString value; diff --git a/dom/webidl/HTMLDataListElement.webidl b/dom/webidl/HTMLDataListElement.webidl index 4c38fddf375f..88b2a0ebbe26 100644 --- a/dom/webidl/HTMLDataListElement.webidl +++ b/dom/webidl/HTMLDataListElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLDataListElement : HTMLElement { readonly attribute HTMLCollection options; }; diff --git a/dom/webidl/HTMLDetailsElement.webidl b/dom/webidl/HTMLDetailsElement.webidl index 04df82e30fae..69eda0c080c6 100644 --- a/dom/webidl/HTMLDetailsElement.webidl +++ b/dom/webidl/HTMLDetailsElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLDetailsElement : HTMLElement { [CEReactions, SetterThrows] attribute boolean open; diff --git a/dom/webidl/HTMLDialogElement.webidl b/dom/webidl/HTMLDialogElement.webidl index e9117c9c9cc3..c220e26a3270 100644 --- a/dom/webidl/HTMLDialogElement.webidl +++ b/dom/webidl/HTMLDialogElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[Pref="dom.dialog_element.enabled", HTMLConstructor] +[Pref="dom.dialog_element.enabled", HTMLConstructor, + Exposed=Window] interface HTMLDialogElement : HTMLElement { [CEReactions, SetterThrows] attribute boolean open; diff --git a/dom/webidl/HTMLDirectoryElement.webidl b/dom/webidl/HTMLDirectoryElement.webidl index 65becbb60509..073af9a297be 100644 --- a/dom/webidl/HTMLDirectoryElement.webidl +++ b/dom/webidl/HTMLDirectoryElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLDirectoryElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute boolean compact; diff --git a/dom/webidl/HTMLDivElement.webidl b/dom/webidl/HTMLDivElement.webidl index 2b762c6faa8b..2249df124024 100644 --- a/dom/webidl/HTMLDivElement.webidl +++ b/dom/webidl/HTMLDivElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLDivElement : HTMLElement {}; partial interface HTMLDivElement { diff --git a/dom/webidl/HTMLDocument.webidl b/dom/webidl/HTMLDocument.webidl index 654fd647bb88..06ae6ba40780 100644 --- a/dom/webidl/HTMLDocument.webidl +++ b/dom/webidl/HTMLDocument.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[OverrideBuiltins] +[OverrideBuiltins, + Exposed=Window] interface HTMLDocument : Document { // DOM tree accessors [Throws] diff --git a/dom/webidl/HTMLElement.webidl b/dom/webidl/HTMLElement.webidl index b35c97abfd57..d5e648a7cae5 100644 --- a/dom/webidl/HTMLElement.webidl +++ b/dom/webidl/HTMLElement.webidl @@ -12,7 +12,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLElement : Element { // metadata attributes [CEReactions] @@ -86,4 +87,5 @@ HTMLElement includes ElementCSSInlineStyle; HTMLElement includes TouchEventHandlers; HTMLElement includes OnErrorEventHandlerForNodes; +[Exposed=Window] interface HTMLUnknownElement : HTMLElement {}; diff --git a/dom/webidl/HTMLEmbedElement.webidl b/dom/webidl/HTMLEmbedElement.webidl index f55ff35e895e..95658bf07805 100644 --- a/dom/webidl/HTMLEmbedElement.webidl +++ b/dom/webidl/HTMLEmbedElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-embed-element -[HTMLConstructor, NeedResolve] +[HTMLConstructor, NeedResolve, + Exposed=Window] interface HTMLEmbedElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute DOMString src; diff --git a/dom/webidl/HTMLFieldSetElement.webidl b/dom/webidl/HTMLFieldSetElement.webidl index 23f14e91b4a3..36f99db80851 100644 --- a/dom/webidl/HTMLFieldSetElement.webidl +++ b/dom/webidl/HTMLFieldSetElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLFieldSetElement : HTMLElement { [CEReactions, SetterThrows] attribute boolean disabled; diff --git a/dom/webidl/HTMLFontElement.webidl b/dom/webidl/HTMLFontElement.webidl index 0887f4b2da82..b16941a0aa9d 100644 --- a/dom/webidl/HTMLFontElement.webidl +++ b/dom/webidl/HTMLFontElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLFontElement : HTMLElement { [CEReactions, SetterThrows] attribute [TreatNullAs=EmptyString] DOMString color; [CEReactions, SetterThrows] attribute DOMString face; diff --git a/dom/webidl/HTMLFormControlsCollection.webidl b/dom/webidl/HTMLFormControlsCollection.webidl index eb2d83d4219c..c4024725aa65 100644 --- a/dom/webidl/HTMLFormControlsCollection.webidl +++ b/dom/webidl/HTMLFormControlsCollection.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface HTMLFormControlsCollection : HTMLCollection { // inherits length and item() /* legacycaller */ getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem() diff --git a/dom/webidl/HTMLFormElement.webidl b/dom/webidl/HTMLFormElement.webidl index 86b6c2438d41..24b3cf6bfd37 100644 --- a/dom/webidl/HTMLFormElement.webidl +++ b/dom/webidl/HTMLFormElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[OverrideBuiltins, LegacyUnenumerableNamedProperties, HTMLConstructor] +[OverrideBuiltins, LegacyUnenumerableNamedProperties, HTMLConstructor, + Exposed=Window] interface HTMLFormElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute DOMString acceptCharset; diff --git a/dom/webidl/HTMLFrameElement.webidl b/dom/webidl/HTMLFrameElement.webidl index 594678fa71b3..654662d9025c 100644 --- a/dom/webidl/HTMLFrameElement.webidl +++ b/dom/webidl/HTMLFrameElement.webidl @@ -11,7 +11,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#htmlframeelement -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLFrameElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString name; diff --git a/dom/webidl/HTMLFrameSetElement.webidl b/dom/webidl/HTMLFrameSetElement.webidl index d80f28675a31..e603bc4ae029 100644 --- a/dom/webidl/HTMLFrameSetElement.webidl +++ b/dom/webidl/HTMLFrameSetElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLFrameSetElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString cols; diff --git a/dom/webidl/HTMLHRElement.webidl b/dom/webidl/HTMLHRElement.webidl index 24ba3112aa94..378affb3bd48 100644 --- a/dom/webidl/HTMLHRElement.webidl +++ b/dom/webidl/HTMLHRElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-hr-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLHRElement : HTMLElement { }; diff --git a/dom/webidl/HTMLHeadElement.webidl b/dom/webidl/HTMLHeadElement.webidl index b649712a6b1c..d5273d5045e8 100644 --- a/dom/webidl/HTMLHeadElement.webidl +++ b/dom/webidl/HTMLHeadElement.webidl @@ -12,6 +12,7 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-head-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLHeadElement : HTMLElement {}; diff --git a/dom/webidl/HTMLHeadingElement.webidl b/dom/webidl/HTMLHeadingElement.webidl index a39e24cfba3b..d298c8a87e3f 100644 --- a/dom/webidl/HTMLHeadingElement.webidl +++ b/dom/webidl/HTMLHeadingElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLHeadingElement : HTMLElement { }; diff --git a/dom/webidl/HTMLHtmlElement.webidl b/dom/webidl/HTMLHtmlElement.webidl index 5b2a9a926d77..30efaec5015b 100644 --- a/dom/webidl/HTMLHtmlElement.webidl +++ b/dom/webidl/HTMLHtmlElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-html-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLHtmlElement : HTMLElement {}; // http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis diff --git a/dom/webidl/HTMLIFrameElement.webidl b/dom/webidl/HTMLIFrameElement.webidl index aefff8c75dbb..60f5ddd28c92 100644 --- a/dom/webidl/HTMLIFrameElement.webidl +++ b/dom/webidl/HTMLIFrameElement.webidl @@ -13,7 +13,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLIFrameElement : HTMLElement { [CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows, Pure] attribute DOMString src; diff --git a/dom/webidl/HTMLImageElement.webidl b/dom/webidl/HTMLImageElement.webidl index a7fb0e4a2a86..0fb2d1ca3bd4 100644 --- a/dom/webidl/HTMLImageElement.webidl +++ b/dom/webidl/HTMLImageElement.webidl @@ -17,7 +17,8 @@ interface URI; interface nsIStreamListener; [HTMLConstructor, - NamedConstructor=Image(optional unsigned long width, optional unsigned long height)] + NamedConstructor=Image(optional unsigned long width, optional unsigned long height), + Exposed=Window] interface HTMLImageElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString alt; diff --git a/dom/webidl/HTMLInputElement.webidl b/dom/webidl/HTMLInputElement.webidl index bfbfab816af8..bb708365a741 100644 --- a/dom/webidl/HTMLInputElement.webidl +++ b/dom/webidl/HTMLInputElement.webidl @@ -22,7 +22,8 @@ enum SelectionMode { interface XULControllers; -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLInputElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute DOMString accept; diff --git a/dom/webidl/HTMLLIElement.webidl b/dom/webidl/HTMLLIElement.webidl index 3f104d09e07f..359b051675e7 100644 --- a/dom/webidl/HTMLLIElement.webidl +++ b/dom/webidl/HTMLLIElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-li-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLLIElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute long value; diff --git a/dom/webidl/HTMLLabelElement.webidl b/dom/webidl/HTMLLabelElement.webidl index 4b624dfafa49..73cf4fe780ff 100644 --- a/dom/webidl/HTMLLabelElement.webidl +++ b/dom/webidl/HTMLLabelElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLLabelElement : HTMLElement { readonly attribute HTMLFormElement? form; [CEReactions] diff --git a/dom/webidl/HTMLLegendElement.webidl b/dom/webidl/HTMLLegendElement.webidl index 6f03ecf1b6ab..2e0cf4e3403b 100644 --- a/dom/webidl/HTMLLegendElement.webidl +++ b/dom/webidl/HTMLLegendElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-legend-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLLegendElement : HTMLElement { readonly attribute HTMLFormElement? form; }; diff --git a/dom/webidl/HTMLLinkElement.webidl b/dom/webidl/HTMLLinkElement.webidl index 99489cfda771..98658e1e9dc9 100644 --- a/dom/webidl/HTMLLinkElement.webidl +++ b/dom/webidl/HTMLLinkElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-link-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLLinkElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute boolean disabled; diff --git a/dom/webidl/HTMLMapElement.webidl b/dom/webidl/HTMLMapElement.webidl index 199c70876ab4..1e241a15b496 100644 --- a/dom/webidl/HTMLMapElement.webidl +++ b/dom/webidl/HTMLMapElement.webidl @@ -11,7 +11,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-map-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLMapElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString name; diff --git a/dom/webidl/HTMLMarqueeElement.webidl b/dom/webidl/HTMLMarqueeElement.webidl index a8cc71f5ee2d..d8b3236c721b 100644 --- a/dom/webidl/HTMLMarqueeElement.webidl +++ b/dom/webidl/HTMLMarqueeElement.webidl @@ -12,7 +12,8 @@ // https://html.spec.whatwg.org/multipage/obsolete.html#the-marquee-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLMarqueeElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString behavior; [CEReactions, SetterThrows] attribute DOMString bgColor; diff --git a/dom/webidl/HTMLMediaElement.webidl b/dom/webidl/HTMLMediaElement.webidl index e8ab1a1b6d1e..f5e8b32cee20 100644 --- a/dom/webidl/HTMLMediaElement.webidl +++ b/dom/webidl/HTMLMediaElement.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface HTMLMediaElement : HTMLElement { // error state diff --git a/dom/webidl/HTMLMenuElement.webidl b/dom/webidl/HTMLMenuElement.webidl index 1194226c5b3d..6262ce7e7a29 100644 --- a/dom/webidl/HTMLMenuElement.webidl +++ b/dom/webidl/HTMLMenuElement.webidl @@ -15,7 +15,8 @@ interface MenuBuilder; // http://www.whatwg.org/specs/web-apps/current-work/#the-menu-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLMenuElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString type; diff --git a/dom/webidl/HTMLMenuItemElement.webidl b/dom/webidl/HTMLMenuItemElement.webidl index 648188e2c833..fd3f4842c72d 100644 --- a/dom/webidl/HTMLMenuItemElement.webidl +++ b/dom/webidl/HTMLMenuItemElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-menuitem-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLMenuItemElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString type; diff --git a/dom/webidl/HTMLMetaElement.webidl b/dom/webidl/HTMLMetaElement.webidl index 30014a955663..ebb0c3fec321 100644 --- a/dom/webidl/HTMLMetaElement.webidl +++ b/dom/webidl/HTMLMetaElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-meta-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLMetaElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString name; diff --git a/dom/webidl/HTMLMeterElement.webidl b/dom/webidl/HTMLMeterElement.webidl index 5db5b66045ee..cd2aacbe1bec 100644 --- a/dom/webidl/HTMLMeterElement.webidl +++ b/dom/webidl/HTMLMeterElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-meter-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLMeterElement : HTMLElement { [CEReactions, SetterThrows] attribute double value; diff --git a/dom/webidl/HTMLModElement.webidl b/dom/webidl/HTMLModElement.webidl index 8ed8b994b58f..f89a5bcac8a7 100644 --- a/dom/webidl/HTMLModElement.webidl +++ b/dom/webidl/HTMLModElement.webidl @@ -11,7 +11,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#attributes-common-to-ins-and-del-elements -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLModElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString cite; diff --git a/dom/webidl/HTMLOListElement.webidl b/dom/webidl/HTMLOListElement.webidl index 93084c227d13..8e3041067db6 100644 --- a/dom/webidl/HTMLOListElement.webidl +++ b/dom/webidl/HTMLOListElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-ol-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLOListElement : HTMLElement { [CEReactions, SetterThrows] attribute boolean reversed; diff --git a/dom/webidl/HTMLObjectElement.webidl b/dom/webidl/HTMLObjectElement.webidl index 99945dafc780..5589a8589c60 100644 --- a/dom/webidl/HTMLObjectElement.webidl +++ b/dom/webidl/HTMLObjectElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-object-element -[HTMLConstructor, NeedResolve] +[HTMLConstructor, NeedResolve, + Exposed=Window] interface HTMLObjectElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute DOMString data; diff --git a/dom/webidl/HTMLOptGroupElement.webidl b/dom/webidl/HTMLOptGroupElement.webidl index d46fb869d111..b674b1af0472 100644 --- a/dom/webidl/HTMLOptGroupElement.webidl +++ b/dom/webidl/HTMLOptGroupElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLOptGroupElement : HTMLElement { [CEReactions, SetterThrows] attribute boolean disabled; diff --git a/dom/webidl/HTMLOptionElement.webidl b/dom/webidl/HTMLOptionElement.webidl index 415f6fdd4a04..d952ba0e0697 100644 --- a/dom/webidl/HTMLOptionElement.webidl +++ b/dom/webidl/HTMLOptionElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor, NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)] +[HTMLConstructor, NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false), + Exposed=Window] interface HTMLOptionElement : HTMLElement { [CEReactions, SetterThrows] attribute boolean disabled; diff --git a/dom/webidl/HTMLOptionsCollection.webidl b/dom/webidl/HTMLOptionsCollection.webidl index e2e25b2b4677..61cb14d941fc 100644 --- a/dom/webidl/HTMLOptionsCollection.webidl +++ b/dom/webidl/HTMLOptionsCollection.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface HTMLOptionsCollection : HTMLCollection { [CEReactions, SetterThrows] attribute unsigned long length; diff --git a/dom/webidl/HTMLOutputElement.webidl b/dom/webidl/HTMLOutputElement.webidl index 61590153536d..3fdac5ae083d 100644 --- a/dom/webidl/HTMLOutputElement.webidl +++ b/dom/webidl/HTMLOutputElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-output-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLOutputElement : HTMLElement { [PutForwards=value, Constant] readonly attribute DOMTokenList htmlFor; diff --git a/dom/webidl/HTMLParagraphElement.webidl b/dom/webidl/HTMLParagraphElement.webidl index 289af4c9fdde..986ff02b0fd5 100644 --- a/dom/webidl/HTMLParagraphElement.webidl +++ b/dom/webidl/HTMLParagraphElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-p-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLParagraphElement : HTMLElement { }; diff --git a/dom/webidl/HTMLParamElement.webidl b/dom/webidl/HTMLParamElement.webidl index cf6b5a35a7be..42738734dc8a 100644 --- a/dom/webidl/HTMLParamElement.webidl +++ b/dom/webidl/HTMLParamElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-param-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLParamElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString name; diff --git a/dom/webidl/HTMLPictureElement.webidl b/dom/webidl/HTMLPictureElement.webidl index 387eee78ddcd..bbcfc2435ed9 100644 --- a/dom/webidl/HTMLPictureElement.webidl +++ b/dom/webidl/HTMLPictureElement.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLPictureElement : HTMLElement { }; diff --git a/dom/webidl/HTMLPreElement.webidl b/dom/webidl/HTMLPreElement.webidl index 6929cd533ad3..bcb504014abf 100644 --- a/dom/webidl/HTMLPreElement.webidl +++ b/dom/webidl/HTMLPreElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-pre-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLPreElement : HTMLElement { }; diff --git a/dom/webidl/HTMLProgressElement.webidl b/dom/webidl/HTMLProgressElement.webidl index 564b9f2a4f7e..5e02365e351d 100644 --- a/dom/webidl/HTMLProgressElement.webidl +++ b/dom/webidl/HTMLProgressElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLProgressElement : HTMLElement { [CEReactions, SetterThrows] attribute double value; diff --git a/dom/webidl/HTMLQuoteElement.webidl b/dom/webidl/HTMLQuoteElement.webidl index c999b14786bb..174de430e968 100644 --- a/dom/webidl/HTMLQuoteElement.webidl +++ b/dom/webidl/HTMLQuoteElement.webidl @@ -12,7 +12,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-blockquote-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLQuoteElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString cite; diff --git a/dom/webidl/HTMLScriptElement.webidl b/dom/webidl/HTMLScriptElement.webidl index 681f73eb906b..8284844f0735 100644 --- a/dom/webidl/HTMLScriptElement.webidl +++ b/dom/webidl/HTMLScriptElement.webidl @@ -8,7 +8,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLScriptElement : HTMLElement { [CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows] attribute DOMString src; diff --git a/dom/webidl/HTMLSelectElement.webidl b/dom/webidl/HTMLSelectElement.webidl index 5e1f34f8b2a5..567f2d2f3f25 100644 --- a/dom/webidl/HTMLSelectElement.webidl +++ b/dom/webidl/HTMLSelectElement.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/html/#the-select-element */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLSelectElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute boolean autofocus; diff --git a/dom/webidl/HTMLSourceElement.webidl b/dom/webidl/HTMLSourceElement.webidl index 8cd2ed0781b6..c0d7dde55dbc 100644 --- a/dom/webidl/HTMLSourceElement.webidl +++ b/dom/webidl/HTMLSourceElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLSourceElement : HTMLElement { [CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows] attribute DOMString src; diff --git a/dom/webidl/HTMLSpanElement.webidl b/dom/webidl/HTMLSpanElement.webidl index 6f65cdfb383d..314ff5b3e556 100644 --- a/dom/webidl/HTMLSpanElement.webidl +++ b/dom/webidl/HTMLSpanElement.webidl @@ -12,5 +12,6 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-span-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLSpanElement : HTMLElement {}; diff --git a/dom/webidl/HTMLStyleElement.webidl b/dom/webidl/HTMLStyleElement.webidl index cabaa8904d61..f047f783257a 100644 --- a/dom/webidl/HTMLStyleElement.webidl +++ b/dom/webidl/HTMLStyleElement.webidl @@ -8,7 +8,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLStyleElement : HTMLElement { [Pure] attribute boolean disabled; diff --git a/dom/webidl/HTMLTableCaptionElement.webidl b/dom/webidl/HTMLTableCaptionElement.webidl index 48c9d354a6d3..133a61fcc380 100644 --- a/dom/webidl/HTMLTableCaptionElement.webidl +++ b/dom/webidl/HTMLTableCaptionElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTableCaptionElement : HTMLElement {}; partial interface HTMLTableCaptionElement { diff --git a/dom/webidl/HTMLTableCellElement.webidl b/dom/webidl/HTMLTableCellElement.webidl index 9e46075b6846..8f3247459c37 100644 --- a/dom/webidl/HTMLTableCellElement.webidl +++ b/dom/webidl/HTMLTableCellElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTableCellElement : HTMLElement { [CEReactions, SetterThrows] attribute unsigned long colSpan; diff --git a/dom/webidl/HTMLTableColElement.webidl b/dom/webidl/HTMLTableColElement.webidl index 02be4590a108..0a977e618760 100644 --- a/dom/webidl/HTMLTableColElement.webidl +++ b/dom/webidl/HTMLTableColElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTableColElement : HTMLElement { [CEReactions, SetterThrows] attribute unsigned long span; diff --git a/dom/webidl/HTMLTableElement.webidl b/dom/webidl/HTMLTableElement.webidl index 4ce5a94c6c2d..3362b8e41f3f 100644 --- a/dom/webidl/HTMLTableElement.webidl +++ b/dom/webidl/HTMLTableElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTableElement : HTMLElement { [CEReactions, SetterThrows] attribute HTMLTableCaptionElement? caption; diff --git a/dom/webidl/HTMLTableRowElement.webidl b/dom/webidl/HTMLTableRowElement.webidl index d418c947a3d8..a851baf67646 100644 --- a/dom/webidl/HTMLTableRowElement.webidl +++ b/dom/webidl/HTMLTableRowElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTableRowElement : HTMLElement { readonly attribute long rowIndex; readonly attribute long sectionRowIndex; diff --git a/dom/webidl/HTMLTableSectionElement.webidl b/dom/webidl/HTMLTableSectionElement.webidl index a71682fc15d1..2adb75a47733 100644 --- a/dom/webidl/HTMLTableSectionElement.webidl +++ b/dom/webidl/HTMLTableSectionElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTableSectionElement : HTMLElement { readonly attribute HTMLCollection rows; [Throws] diff --git a/dom/webidl/HTMLTemplateElement.webidl b/dom/webidl/HTMLTemplateElement.webidl index f77eeaa42906..ccb13151dca1 100644 --- a/dom/webidl/HTMLTemplateElement.webidl +++ b/dom/webidl/HTMLTemplateElement.webidl @@ -9,7 +9,8 @@ * liability, trademark and document use rules apply. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTemplateElement : HTMLElement { readonly attribute DocumentFragment content; }; diff --git a/dom/webidl/HTMLTextAreaElement.webidl b/dom/webidl/HTMLTextAreaElement.webidl index ea02bb09b581..a48b1ab40a21 100644 --- a/dom/webidl/HTMLTextAreaElement.webidl +++ b/dom/webidl/HTMLTextAreaElement.webidl @@ -14,7 +14,8 @@ interface nsIEditor; interface XULControllers; -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTextAreaElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString autocomplete; diff --git a/dom/webidl/HTMLTimeElement.webidl b/dom/webidl/HTMLTimeElement.webidl index 35c06fef3181..10b9fd37697d 100644 --- a/dom/webidl/HTMLTimeElement.webidl +++ b/dom/webidl/HTMLTimeElement.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-time-element */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTimeElement : HTMLElement { [CEReactions, SetterThrows] attribute DOMString dateTime; diff --git a/dom/webidl/HTMLTitleElement.webidl b/dom/webidl/HTMLTitleElement.webidl index bbce70bb2a61..fbc9e4455371 100644 --- a/dom/webidl/HTMLTitleElement.webidl +++ b/dom/webidl/HTMLTitleElement.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/#the-title-element */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTitleElement : HTMLElement { [CEReactions, Throws] attribute DOMString text; diff --git a/dom/webidl/HTMLTrackElement.webidl b/dom/webidl/HTMLTrackElement.webidl index cbb70db2a3bf..4ebb77678587 100644 --- a/dom/webidl/HTMLTrackElement.webidl +++ b/dom/webidl/HTMLTrackElement.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/#the-track-element */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLTrackElement : HTMLElement { [CEReactions, SetterThrows, Pure] attribute DOMString kind; diff --git a/dom/webidl/HTMLUListElement.webidl b/dom/webidl/HTMLUListElement.webidl index 725437494a58..962ea6f71e29 100644 --- a/dom/webidl/HTMLUListElement.webidl +++ b/dom/webidl/HTMLUListElement.webidl @@ -13,7 +13,8 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-ul-element -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLUListElement : HTMLElement { }; diff --git a/dom/webidl/HTMLVideoElement.webidl b/dom/webidl/HTMLVideoElement.webidl index 76a8682a731b..ce70a5bab890 100644 --- a/dom/webidl/HTMLVideoElement.webidl +++ b/dom/webidl/HTMLVideoElement.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[HTMLConstructor] +[HTMLConstructor, + Exposed=Window] interface HTMLVideoElement : HTMLMediaElement { [CEReactions, SetterThrows] attribute unsigned long width; diff --git a/dom/webidl/HashChangeEvent.webidl b/dom/webidl/HashChangeEvent.webidl index 77ac5354d582..8ee3d3685e38 100644 --- a/dom/webidl/HashChangeEvent.webidl +++ b/dom/webidl/HashChangeEvent.webidl @@ -7,7 +7,8 @@ * https://html.spec.whatwg.org/multipage/#the-hashchangeevent-interface */ -[LegacyEventInit] +[LegacyEventInit, + Exposed=Window] interface HashChangeEvent : Event { constructor(DOMString type, optional HashChangeEventInit eventInitDict = {}); diff --git a/dom/webidl/HiddenPluginEvent.webidl b/dom/webidl/HiddenPluginEvent.webidl index f89def019530..bd722df1982b 100644 --- a/dom/webidl/HiddenPluginEvent.webidl +++ b/dom/webidl/HiddenPluginEvent.webidl @@ -1,6 +1,7 @@ interface PluginTag; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface HiddenPluginEvent : Event { constructor(DOMString type, optional HiddenPluginEventInit eventInit = {}); diff --git a/dom/webidl/History.webidl b/dom/webidl/History.webidl index fef868018295..afbf8ed26b0d 100644 --- a/dom/webidl/History.webidl +++ b/dom/webidl/History.webidl @@ -13,6 +13,7 @@ enum ScrollRestoration { "auto", "manual" }; +[Exposed=Window] interface History { [Throws] readonly attribute unsigned long length; diff --git a/dom/webidl/IDBFileHandle.webidl b/dom/webidl/IDBFileHandle.webidl index 61ddfee47897..54639b828b94 100644 --- a/dom/webidl/IDBFileHandle.webidl +++ b/dom/webidl/IDBFileHandle.webidl @@ -8,7 +8,7 @@ dictionary IDBFileMetadataParameters boolean lastModified = true; }; -[Exposed=(Window)] +[Exposed=Window] interface IDBFileHandle : EventTarget { readonly attribute IDBMutableFile? mutableFile; diff --git a/dom/webidl/IIRFilterNode.webidl b/dom/webidl/IIRFilterNode.webidl index ed0871686c7f..d6fce619d46b 100644 --- a/dom/webidl/IIRFilterNode.webidl +++ b/dom/webidl/IIRFilterNode.webidl @@ -14,7 +14,8 @@ dictionary IIRFilterOptions : AudioNodeOptions { required sequence feedback; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface IIRFilterNode : AudioNode { [Throws] constructor(BaseAudioContext context, IIRFilterOptions options); diff --git a/dom/webidl/ImageCapture.webidl b/dom/webidl/ImageCapture.webidl index d721cad6bb63..2ddaea492147 100644 --- a/dom/webidl/ImageCapture.webidl +++ b/dom/webidl/ImageCapture.webidl @@ -10,7 +10,8 @@ * W3C liability, trademark and document use rules apply. */ -[Pref="dom.imagecapture.enabled"] +[Pref="dom.imagecapture.enabled", + Exposed=Window] interface ImageCapture : EventTarget { [Throws] constructor(MediaStreamTrack track); diff --git a/dom/webidl/ImageCaptureErrorEvent.webidl b/dom/webidl/ImageCaptureErrorEvent.webidl index 66e506c193ad..5c49e33871e7 100644 --- a/dom/webidl/ImageCaptureErrorEvent.webidl +++ b/dom/webidl/ImageCaptureErrorEvent.webidl @@ -10,7 +10,8 @@ * W3C liability, trademark and document use rules apply. */ -[Pref="dom.imagecapture.enabled"] +[Pref="dom.imagecapture.enabled", + Exposed=Window] interface ImageCaptureErrorEvent : Event { constructor(DOMString type, optional ImageCaptureErrorEventInit imageCaptureErrorInitDict = {}); @@ -22,7 +23,8 @@ dictionary ImageCaptureErrorEventInit : EventInit { ImageCaptureError? imageCaptureError = null; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface ImageCaptureError { const unsigned short FRAME_GRAB_ERROR = 1; const unsigned short SETTINGS_ERROR = 2; diff --git a/dom/webidl/ImageDocument.webidl b/dom/webidl/ImageDocument.webidl index 571e345ddebe..49f59c159c9d 100644 --- a/dom/webidl/ImageDocument.webidl +++ b/dom/webidl/ImageDocument.webidl @@ -9,7 +9,8 @@ interface imgIRequest; -[ChromeOnly, OverrideBuiltins] +[ChromeOnly, OverrideBuiltins, + Exposed=Window] interface ImageDocument : HTMLDocument { /* Whether the image is overflowing visible area. */ readonly attribute boolean imageIsOverflowing; diff --git a/dom/webidl/InputEvent.webidl b/dom/webidl/InputEvent.webidl index 484f22bccaca..0c7487035d58 100644 --- a/dom/webidl/InputEvent.webidl +++ b/dom/webidl/InputEvent.webidl @@ -7,6 +7,7 @@ * https://w3c.github.io/input-events/#interface-InputEvent */ +[Exposed=Window] interface InputEvent : UIEvent { constructor(DOMString type, optional InputEventInit eventInitDict = {}); diff --git a/dom/webidl/InstallTrigger.webidl b/dom/webidl/InstallTrigger.webidl index 68f48ddc61ef..f8655164fbc0 100644 --- a/dom/webidl/InstallTrigger.webidl +++ b/dom/webidl/InstallTrigger.webidl @@ -20,7 +20,8 @@ dictionary InstallTriggerData { * The interface for the InstallTrigger object available to all websites. */ [ChromeOnly, - JSImplementation="@mozilla.org/addons/installtrigger;1"] + JSImplementation="@mozilla.org/addons/installtrigger;1", + Exposed=Window] interface InstallTriggerImpl { /** * Retained for backwards compatibility. diff --git a/dom/webidl/IntersectionObserver.webidl b/dom/webidl/IntersectionObserver.webidl index 9709c4311164..7ebe26403205 100644 --- a/dom/webidl/IntersectionObserver.webidl +++ b/dom/webidl/IntersectionObserver.webidl @@ -7,7 +7,8 @@ * https://wicg.github.io/IntersectionObserver/ */ -[ProbablyShortLivingWrapper, Pref="dom.IntersectionObserver.enabled"] +[ProbablyShortLivingWrapper, Pref="dom.IntersectionObserver.enabled", + Exposed=Window] interface IntersectionObserverEntry { [Constant] readonly attribute DOMHighResTimeStamp time; @@ -25,7 +26,8 @@ interface IntersectionObserverEntry { readonly attribute Element target; }; -[Pref="dom.IntersectionObserver.enabled"] +[Pref="dom.IntersectionObserver.enabled", + Exposed=Window] interface IntersectionObserver { [Throws] constructor(IntersectionCallback intersectionCallback, diff --git a/dom/webidl/IntlUtils.webidl b/dom/webidl/IntlUtils.webidl index 5d0008186dd4..9d76fec568d6 100644 --- a/dom/webidl/IntlUtils.webidl +++ b/dom/webidl/IntlUtils.webidl @@ -21,7 +21,8 @@ dictionary LocaleInfo { /** * The IntlUtils interface provides helper functions for localization. */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface IntlUtils { /** * Helper function to retrieve the localized values for a list of requested diff --git a/dom/webidl/KeyEvent.webidl b/dom/webidl/KeyEvent.webidl index 7336dc31b750..c9149c7eee8b 100644 --- a/dom/webidl/KeyEvent.webidl +++ b/dom/webidl/KeyEvent.webidl @@ -5,6 +5,7 @@ */ // http://www.w3.org/TR/1999/WD-DOM-Level-2-19990923/events.html#Events-KeyEvent +[Exposed=Window] interface KeyEvent { // It's all mixed in. diff --git a/dom/webidl/KeyboardEvent.webidl b/dom/webidl/KeyboardEvent.webidl index 2b9800c00855..27d3c1fd78c6 100644 --- a/dom/webidl/KeyboardEvent.webidl +++ b/dom/webidl/KeyboardEvent.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface KeyboardEvent : UIEvent { [BinaryName="constructorJS"] diff --git a/dom/webidl/KeyframeEffect.webidl b/dom/webidl/KeyframeEffect.webidl index 49e20985fb24..cc83b3a553c7 100644 --- a/dom/webidl/KeyframeEffect.webidl +++ b/dom/webidl/KeyframeEffect.webidl @@ -23,7 +23,8 @@ dictionary KeyframeEffectOptions : EffectTiming { // KeyframeEffect should run in the caller's compartment to do custom // processing on the `keyframes` object. [Func="Document::IsWebAnimationsEnabled", - RunConstructorInCallerCompartment] + RunConstructorInCallerCompartment, + Exposed=Window] interface KeyframeEffect : AnimationEffect { [Throws] constructor((Element or CSSPseudoElement)? target, diff --git a/dom/webidl/Location.webidl b/dom/webidl/Location.webidl index 07fb6076d5b8..251be2b54a66 100644 --- a/dom/webidl/Location.webidl +++ b/dom/webidl/Location.webidl @@ -11,7 +11,8 @@ * and create derivative works of this document. */ -[Unforgeable] +[Unforgeable, + Exposed=Window] interface Location { // Bug 824857: no support for stringifier attributes yet. // stringifier attribute USVString href; diff --git a/dom/webidl/MIDIAccess.webidl b/dom/webidl/MIDIAccess.webidl index 97c8be42ce55..4c7ca2492032 100644 --- a/dom/webidl/MIDIAccess.webidl +++ b/dom/webidl/MIDIAccess.webidl @@ -7,7 +7,8 @@ * https://webaudio.github.io/web-midi-api/ */ -[SecureContext, Pref="dom.webmidi.enabled"] +[SecureContext, Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIAccess : EventTarget { readonly attribute MIDIInputMap inputs; readonly attribute MIDIOutputMap outputs; diff --git a/dom/webidl/MIDIConnectionEvent.webidl b/dom/webidl/MIDIConnectionEvent.webidl index cf7320981c61..bb4b7adc2264 100644 --- a/dom/webidl/MIDIConnectionEvent.webidl +++ b/dom/webidl/MIDIConnectionEvent.webidl @@ -8,7 +8,8 @@ */ [SecureContext, - Pref="dom.webmidi.enabled"] + Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIConnectionEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/MIDIInput.webidl b/dom/webidl/MIDIInput.webidl index 9cfc4fea1c45..35045f2aae21 100644 --- a/dom/webidl/MIDIInput.webidl +++ b/dom/webidl/MIDIInput.webidl @@ -7,7 +7,8 @@ * https://webaudio.github.io/web-midi-api/ */ -[SecureContext, Pref="dom.webmidi.enabled"] +[SecureContext, Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIInput : MIDIPort { attribute EventHandler onmidimessage; }; diff --git a/dom/webidl/MIDIInputMap.webidl b/dom/webidl/MIDIInputMap.webidl index 19154ed8b44d..e3c3b0d5aa36 100644 --- a/dom/webidl/MIDIInputMap.webidl +++ b/dom/webidl/MIDIInputMap.webidl @@ -7,7 +7,8 @@ * https://webaudio.github.io/web-midi-api/ */ -[SecureContext, Pref="dom.webmidi.enabled"] +[SecureContext, Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIInputMap { readonly maplike; }; diff --git a/dom/webidl/MIDIMessageEvent.webidl b/dom/webidl/MIDIMessageEvent.webidl index 9dadd6887bac..0468c22afbe4 100644 --- a/dom/webidl/MIDIMessageEvent.webidl +++ b/dom/webidl/MIDIMessageEvent.webidl @@ -8,7 +8,8 @@ */ [SecureContext, - Pref="dom.webmidi.enabled"] + Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIMessageEvent : Event { [Throws] diff --git a/dom/webidl/MIDIOutput.webidl b/dom/webidl/MIDIOutput.webidl index d3c5a46b2cc4..1660cc07da7c 100644 --- a/dom/webidl/MIDIOutput.webidl +++ b/dom/webidl/MIDIOutput.webidl @@ -7,7 +7,8 @@ * https://webaudio.github.io/web-midi-api/ */ -[SecureContext, Pref="dom.webmidi.enabled"] +[SecureContext, Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIOutput : MIDIPort { [Throws] void send(sequence data, optional DOMHighResTimeStamp timestamp); diff --git a/dom/webidl/MIDIOutputMap.webidl b/dom/webidl/MIDIOutputMap.webidl index 64ac6da333cd..9070c5519373 100644 --- a/dom/webidl/MIDIOutputMap.webidl +++ b/dom/webidl/MIDIOutputMap.webidl @@ -7,7 +7,8 @@ * https://webaudio.github.io/web-midi-api/ */ -[SecureContext, Pref="dom.webmidi.enabled"] +[SecureContext, Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIOutputMap { readonly maplike; }; diff --git a/dom/webidl/MIDIPort.webidl b/dom/webidl/MIDIPort.webidl index 65274ebbffb1..c698ed470dfe 100644 --- a/dom/webidl/MIDIPort.webidl +++ b/dom/webidl/MIDIPort.webidl @@ -23,7 +23,8 @@ enum MIDIPortConnectionState { "pending" }; -[SecureContext, Pref="dom.webmidi.enabled"] +[SecureContext, Pref="dom.webmidi.enabled", + Exposed=Window] interface MIDIPort : EventTarget { readonly attribute DOMString id; readonly attribute DOMString? manufacturer; diff --git a/dom/webidl/MediaDeviceInfo.webidl b/dom/webidl/MediaDeviceInfo.webidl index 023cd82f2afa..7bceadc22eb1 100644 --- a/dom/webidl/MediaDeviceInfo.webidl +++ b/dom/webidl/MediaDeviceInfo.webidl @@ -13,7 +13,8 @@ enum MediaDeviceKind { "videoinput" }; -[Func="Navigator::HasUserMediaSupport"] +[Func="Navigator::HasUserMediaSupport", + Exposed=Window] interface MediaDeviceInfo { readonly attribute DOMString deviceId; readonly attribute MediaDeviceKind kind; diff --git a/dom/webidl/MediaDevices.webidl b/dom/webidl/MediaDevices.webidl index 4e5bc4829c3e..0e867dc793d3 100644 --- a/dom/webidl/MediaDevices.webidl +++ b/dom/webidl/MediaDevices.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Func="Navigator::HasUserMediaSupport"] +[Func="Navigator::HasUserMediaSupport", + Exposed=Window] interface MediaDevices : EventTarget { [Pref="media.ondevicechange.enabled"] attribute EventHandler ondevicechange; diff --git a/dom/webidl/MediaElementAudioSourceNode.webidl b/dom/webidl/MediaElementAudioSourceNode.webidl index be5c985de202..ca5909c31143 100644 --- a/dom/webidl/MediaElementAudioSourceNode.webidl +++ b/dom/webidl/MediaElementAudioSourceNode.webidl @@ -14,7 +14,8 @@ dictionary MediaElementAudioSourceOptions { required HTMLMediaElement mediaElement; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface MediaElementAudioSourceNode : AudioNode { [Throws] constructor(AudioContext context, MediaElementAudioSourceOptions options); diff --git a/dom/webidl/MediaEncryptedEvent.webidl b/dom/webidl/MediaEncryptedEvent.webidl index 54cd3c7d9029..864ed5d4224c 100644 --- a/dom/webidl/MediaEncryptedEvent.webidl +++ b/dom/webidl/MediaEncryptedEvent.webidl @@ -10,6 +10,7 @@ * W3C liability, trademark and document use rules apply. */ +[Exposed=Window] interface MediaEncryptedEvent : Event { [Throws] constructor(DOMString type, diff --git a/dom/webidl/MediaError.webidl b/dom/webidl/MediaError.webidl index bd1ed4e3f67c..f882e21386cf 100644 --- a/dom/webidl/MediaError.webidl +++ b/dom/webidl/MediaError.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface MediaError { // Keep these constants in sync with the ones defined in HTMLMediaElement.h const unsigned short MEDIA_ERR_ABORTED = 1; diff --git a/dom/webidl/MediaKeyError.webidl b/dom/webidl/MediaKeyError.webidl index e9fcd2d7ee31..73e714e51fd5 100644 --- a/dom/webidl/MediaKeyError.webidl +++ b/dom/webidl/MediaKeyError.webidl @@ -13,6 +13,7 @@ // According to the spec, "The future of error events and MediaKeyError // is uncertain." // https://www.w3.org/Bugs/Public/show_bug.cgi?id=21798 +[Exposed=Window] interface MediaKeyError : Event { readonly attribute unsigned long systemCode; }; diff --git a/dom/webidl/MediaKeyMessageEvent.webidl b/dom/webidl/MediaKeyMessageEvent.webidl index a469bed4c6fd..28f6ceabcb61 100644 --- a/dom/webidl/MediaKeyMessageEvent.webidl +++ b/dom/webidl/MediaKeyMessageEvent.webidl @@ -17,6 +17,7 @@ enum MediaKeyMessageType { "individualization-request" }; +[Exposed=Window] interface MediaKeyMessageEvent : Event { [Throws] constructor(DOMString type, MediaKeyMessageEventInit eventInitDict); diff --git a/dom/webidl/MediaKeySession.webidl b/dom/webidl/MediaKeySession.webidl index 342483fb1390..9977a98b771e 100644 --- a/dom/webidl/MediaKeySession.webidl +++ b/dom/webidl/MediaKeySession.webidl @@ -10,6 +10,7 @@ * W3C liability, trademark and document use rules apply. */ +[Exposed=Window] interface MediaKeySession : EventTarget { // error state readonly attribute MediaKeyError? error; diff --git a/dom/webidl/MediaKeyStatusMap.webidl b/dom/webidl/MediaKeyStatusMap.webidl index 648adaf40189..7e664895ca09 100644 --- a/dom/webidl/MediaKeyStatusMap.webidl +++ b/dom/webidl/MediaKeyStatusMap.webidl @@ -20,6 +20,7 @@ enum MediaKeyStatus { "internal-error" }; +[Exposed=Window] interface MediaKeyStatusMap { iterable; readonly attribute unsigned long size; diff --git a/dom/webidl/MediaKeySystemAccess.webidl b/dom/webidl/MediaKeySystemAccess.webidl index 1c358b99dbd0..21baadc15923 100644 --- a/dom/webidl/MediaKeySystemAccess.webidl +++ b/dom/webidl/MediaKeySystemAccess.webidl @@ -33,6 +33,7 @@ dictionary MediaKeySystemConfiguration { sequence sessionTypes; }; +[Exposed=Window] interface MediaKeySystemAccess { readonly attribute DOMString keySystem; [NewObject] diff --git a/dom/webidl/MediaKeys.webidl b/dom/webidl/MediaKeys.webidl index 5b850fd2dd7a..e077c537c023 100644 --- a/dom/webidl/MediaKeys.webidl +++ b/dom/webidl/MediaKeys.webidl @@ -23,6 +23,7 @@ dictionary MediaKeysPolicy { DOMString minHdcpVersion = ""; }; +[Exposed=Window] interface MediaKeys { readonly attribute DOMString keySystem; diff --git a/dom/webidl/MediaList.webidl b/dom/webidl/MediaList.webidl index be29a3edcc37..2c0696f2159b 100644 --- a/dom/webidl/MediaList.webidl +++ b/dom/webidl/MediaList.webidl @@ -5,6 +5,7 @@ // http://dev.w3.org/csswg/cssom/#the-medialist-interface +[Exposed=Window] interface MediaList { // Bug 824857: no support for stringifier attributes yet. // [TreatNullAs=EmptyString] diff --git a/dom/webidl/MediaQueryList.webidl b/dom/webidl/MediaQueryList.webidl index 120c96e385c3..bd4d34e0c757 100644 --- a/dom/webidl/MediaQueryList.webidl +++ b/dom/webidl/MediaQueryList.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[ProbablyShortLivingWrapper] +[ProbablyShortLivingWrapper, + Exposed=Window] interface MediaQueryList : EventTarget { readonly attribute DOMString media; readonly attribute boolean matches; diff --git a/dom/webidl/MediaQueryListEvent.webidl b/dom/webidl/MediaQueryListEvent.webidl index 0d4955fff30c..0e0bb44a2896 100644 --- a/dom/webidl/MediaQueryListEvent.webidl +++ b/dom/webidl/MediaQueryListEvent.webidl @@ -6,6 +6,7 @@ * https://drafts.csswg.org/cssom-view/#mediaquerylistevent */ +[Exposed=Window] interface MediaQueryListEvent : Event { constructor(DOMString type, optional MediaQueryListEventInit eventInitDict = {}); diff --git a/dom/webidl/MediaRecorder.webidl b/dom/webidl/MediaRecorder.webidl index 1beb74391e0d..9fbd8b777797 100644 --- a/dom/webidl/MediaRecorder.webidl +++ b/dom/webidl/MediaRecorder.webidl @@ -12,6 +12,7 @@ enum RecordingState { "inactive", "recording", "paused" }; +[Exposed=Window] interface MediaRecorder : EventTarget { [Throws] constructor(MediaStream stream, optional MediaRecorderOptions options = {}); diff --git a/dom/webidl/MediaSource.webidl b/dom/webidl/MediaSource.webidl index af553f9478e7..29448c9498dc 100644 --- a/dom/webidl/MediaSource.webidl +++ b/dom/webidl/MediaSource.webidl @@ -21,7 +21,8 @@ enum MediaSourceEndOfStreamError { "decode" }; -[Pref="media.mediasource.enabled"] +[Pref="media.mediasource.enabled", + Exposed=Window] interface MediaSource : EventTarget { [Throws] constructor(); diff --git a/dom/webidl/MediaStreamAudioDestinationNode.webidl b/dom/webidl/MediaStreamAudioDestinationNode.webidl index 190288df6d6b..2c60b9eaf026 100644 --- a/dom/webidl/MediaStreamAudioDestinationNode.webidl +++ b/dom/webidl/MediaStreamAudioDestinationNode.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface MediaStreamAudioDestinationNode : AudioNode { [Throws] constructor(AudioContext context, optional AudioNodeOptions options = {}); diff --git a/dom/webidl/MediaStreamAudioSourceNode.webidl b/dom/webidl/MediaStreamAudioSourceNode.webidl index fdd00888b3f5..d63026730d80 100644 --- a/dom/webidl/MediaStreamAudioSourceNode.webidl +++ b/dom/webidl/MediaStreamAudioSourceNode.webidl @@ -14,7 +14,8 @@ dictionary MediaStreamAudioSourceOptions { required MediaStream mediaStream; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface MediaStreamAudioSourceNode : AudioNode { [Throws] constructor(AudioContext context, MediaStreamAudioSourceOptions options); diff --git a/dom/webidl/MediaStreamError.webidl b/dom/webidl/MediaStreamError.webidl index 54c8f5792b7b..3a85293740e2 100644 --- a/dom/webidl/MediaStreamError.webidl +++ b/dom/webidl/MediaStreamError.webidl @@ -13,7 +13,8 @@ // TODO: This is an 'exception', not an interface, by virtue of needing to be // passed as a promise rejection-reason. Revisit if DOMException grows a customArg -[ExceptionClass, NoInterfaceObject] +[ExceptionClass, NoInterfaceObject, + Exposed=Window] interface MediaStreamError { readonly attribute DOMString name; readonly attribute DOMString? message; diff --git a/dom/webidl/MediaStreamEvent.webidl b/dom/webidl/MediaStreamEvent.webidl index 301a20d58240..752e43c13bd2 100644 --- a/dom/webidl/MediaStreamEvent.webidl +++ b/dom/webidl/MediaStreamEvent.webidl @@ -11,7 +11,8 @@ dictionary MediaStreamEventInit : EventInit { MediaStream? stream = null; }; -[Pref="media.peerconnection.enabled"] +[Pref="media.peerconnection.enabled", + Exposed=Window] interface MediaStreamEvent : Event { constructor(DOMString type, optional MediaStreamEventInit eventInitDict = {}); diff --git a/dom/webidl/MediaStreamTrackAudioSourceNode.webidl b/dom/webidl/MediaStreamTrackAudioSourceNode.webidl index 8c8997617043..abf66cb63432 100644 --- a/dom/webidl/MediaStreamTrackAudioSourceNode.webidl +++ b/dom/webidl/MediaStreamTrackAudioSourceNode.webidl @@ -14,7 +14,8 @@ dictionary MediaStreamTrackAudioSourceOptions { required MediaStreamTrack mediaStreamTrack; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface MediaStreamTrackAudioSourceNode : AudioNode { [Throws] constructor(AudioContext context, MediaStreamTrackAudioSourceOptions options); diff --git a/dom/webidl/MimeType.webidl b/dom/webidl/MimeType.webidl index a33d31640d02..bccf7db7d841 100644 --- a/dom/webidl/MimeType.webidl +++ b/dom/webidl/MimeType.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface MimeType { readonly attribute DOMString description; readonly attribute Plugin? enabledPlugin; diff --git a/dom/webidl/MimeTypeArray.webidl b/dom/webidl/MimeTypeArray.webidl index ca553552a6a8..913f69a06e15 100644 --- a/dom/webidl/MimeTypeArray.webidl +++ b/dom/webidl/MimeTypeArray.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[LegacyUnenumerableNamedProperties] +[LegacyUnenumerableNamedProperties, + Exposed=Window] interface MimeTypeArray { [NeedsCallerType] readonly attribute unsigned long length; diff --git a/dom/webidl/MouseEvent.webidl b/dom/webidl/MouseEvent.webidl index e604b05cd323..312b73b53ef7 100644 --- a/dom/webidl/MouseEvent.webidl +++ b/dom/webidl/MouseEvent.webidl @@ -11,6 +11,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface MouseEvent : UIEvent { constructor(DOMString typeArg, optional MouseEventInit mouseEventInitDict = {}); diff --git a/dom/webidl/MouseScrollEvent.webidl b/dom/webidl/MouseScrollEvent.webidl index c1e52bd8ce0b..a70498ddbabb 100644 --- a/dom/webidl/MouseScrollEvent.webidl +++ b/dom/webidl/MouseScrollEvent.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface MouseScrollEvent : MouseEvent { const long HORIZONTAL_AXIS = 1; diff --git a/dom/webidl/MozApplicationEvent.webidl b/dom/webidl/MozApplicationEvent.webidl index 86d70383bede..97a4cdd1f320 100644 --- a/dom/webidl/MozApplicationEvent.webidl +++ b/dom/webidl/MozApplicationEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface MozApplicationEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/MutationEvent.webidl b/dom/webidl/MutationEvent.webidl index 85ad597f74a3..d49334119bd7 100644 --- a/dom/webidl/MutationEvent.webidl +++ b/dom/webidl/MutationEvent.webidl @@ -9,6 +9,7 @@ * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C * liability, trademark and document use rules apply. */ +[Exposed=Window] interface MutationEvent : Event { const unsigned short MODIFICATION = 1; diff --git a/dom/webidl/MutationObserver.webidl b/dom/webidl/MutationObserver.webidl index 32143f644d30..3812b4a9be26 100644 --- a/dom/webidl/MutationObserver.webidl +++ b/dom/webidl/MutationObserver.webidl @@ -7,7 +7,8 @@ * http://dom.spec.whatwg.org */ -[ProbablyShortLivingWrapper] +[ProbablyShortLivingWrapper, + Exposed=Window] interface MutationRecord { [Constant] readonly attribute DOMString type; @@ -37,6 +38,7 @@ interface MutationRecord { readonly attribute sequence removedAnimations; }; +[Exposed=Window] interface MutationObserver { [Throws] constructor(MutationCallback mutationCallback); diff --git a/dom/webidl/NamedNodeMap.webidl b/dom/webidl/NamedNodeMap.webidl index 88e2ff51fe51..2f0b649f5910 100644 --- a/dom/webidl/NamedNodeMap.webidl +++ b/dom/webidl/NamedNodeMap.webidl @@ -3,7 +3,8 @@ * 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/. */ -[LegacyUnenumerableNamedProperties] +[LegacyUnenumerableNamedProperties, + Exposed=Window] interface NamedNodeMap { getter Attr? getNamedItem(DOMString name); [CEReactions, Throws, BinaryName="setNamedItemNS"] diff --git a/dom/webidl/Navigator.webidl b/dom/webidl/Navigator.webidl index 5f5cfca9dff2..7ca1ff42bf86 100644 --- a/dom/webidl/Navigator.webidl +++ b/dom/webidl/Navigator.webidl @@ -26,7 +26,8 @@ interface URI; // http://www.whatwg.org/specs/web-apps/current-work/#the-navigator-object -[HeaderFile="Navigator.h"] +[HeaderFile="Navigator.h", + Exposed=Window] interface Navigator { // objects implementing this interface also implement the interfaces given below }; diff --git a/dom/webidl/Node.webidl b/dom/webidl/Node.webidl index e6c921aa1730..616dbaf1a70f 100644 --- a/dom/webidl/Node.webidl +++ b/dom/webidl/Node.webidl @@ -13,6 +13,7 @@ interface Principal; interface URI; +[Exposed=Window] interface Node : EventTarget { const unsigned short ELEMENT_NODE = 1; const unsigned short ATTRIBUTE_NODE = 2; // historical diff --git a/dom/webidl/NodeFilter.webidl b/dom/webidl/NodeFilter.webidl index 6da959dc930a..b2f3207286ac 100644 --- a/dom/webidl/NodeFilter.webidl +++ b/dom/webidl/NodeFilter.webidl @@ -7,6 +7,7 @@ * http://dom.spec.whatwg.org/#interface-nodefilter */ +[Exposed=Window] callback interface NodeFilter { // Constants for acceptNode() const unsigned short FILTER_ACCEPT = 1; diff --git a/dom/webidl/NodeIterator.webidl b/dom/webidl/NodeIterator.webidl index 201b382a0d9e..bc645df2e02b 100644 --- a/dom/webidl/NodeIterator.webidl +++ b/dom/webidl/NodeIterator.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface NodeIterator { [Constant] readonly attribute Node root; diff --git a/dom/webidl/NodeList.webidl b/dom/webidl/NodeList.webidl index 7e794e7676e4..c881665de287 100644 --- a/dom/webidl/NodeList.webidl +++ b/dom/webidl/NodeList.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[ProbablyShortLivingWrapper] +[ProbablyShortLivingWrapper, + Exposed=Window] interface NodeList { getter Node? item(unsigned long index); readonly attribute unsigned long length; diff --git a/dom/webidl/NotifyPaintEvent.webidl b/dom/webidl/NotifyPaintEvent.webidl index 0560b8bd59ca..70252524e799 100644 --- a/dom/webidl/NotifyPaintEvent.webidl +++ b/dom/webidl/NotifyPaintEvent.webidl @@ -9,7 +9,8 @@ * event, which fires at a window when painting has happened in * that window. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface NotifyPaintEvent : Event { /** diff --git a/dom/webidl/OfflineAudioCompletionEvent.webidl b/dom/webidl/OfflineAudioCompletionEvent.webidl index 3262630049ef..749aa5d88914 100644 --- a/dom/webidl/OfflineAudioCompletionEvent.webidl +++ b/dom/webidl/OfflineAudioCompletionEvent.webidl @@ -14,7 +14,8 @@ dictionary OfflineAudioCompletionEventInit : EventInit { required AudioBuffer renderedBuffer; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface OfflineAudioCompletionEvent : Event { constructor(DOMString type, OfflineAudioCompletionEventInit eventInitDict); diff --git a/dom/webidl/OfflineAudioContext.webidl b/dom/webidl/OfflineAudioContext.webidl index ef273810ddf7..cd9ce1f21155 100644 --- a/dom/webidl/OfflineAudioContext.webidl +++ b/dom/webidl/OfflineAudioContext.webidl @@ -16,7 +16,8 @@ dictionary OfflineAudioContextOptions { required float sampleRate; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface OfflineAudioContext : BaseAudioContext { [Throws] constructor(OfflineAudioContextOptions contextOptions); diff --git a/dom/webidl/OfflineResourceList.webidl b/dom/webidl/OfflineResourceList.webidl index a1561e8552a6..75df4e2f296d 100644 --- a/dom/webidl/OfflineResourceList.webidl +++ b/dom/webidl/OfflineResourceList.webidl @@ -2,7 +2,8 @@ * 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/. */ -[Pref="browser.cache.offline.enable", Func="nsGlobalWindowInner::OfflineCacheAllowedForContext"] +[Pref="browser.cache.offline.enable", Func="nsGlobalWindowInner::OfflineCacheAllowedForContext", +Exposed=Window] interface OfflineResourceList : EventTarget { /** * State of the application cache this object is associated with. diff --git a/dom/webidl/OscillatorNode.webidl b/dom/webidl/OscillatorNode.webidl index f5c869e297ae..dbb4242e4395 100644 --- a/dom/webidl/OscillatorNode.webidl +++ b/dom/webidl/OscillatorNode.webidl @@ -25,7 +25,8 @@ dictionary OscillatorOptions : AudioNodeOptions { PeriodicWave periodicWave; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface OscillatorNode : AudioScheduledSourceNode { [Throws] constructor(BaseAudioContext context, diff --git a/dom/webidl/PageTransitionEvent.webidl b/dom/webidl/PageTransitionEvent.webidl index 68d574e51a42..20bcd6f3f270 100644 --- a/dom/webidl/PageTransitionEvent.webidl +++ b/dom/webidl/PageTransitionEvent.webidl @@ -10,6 +10,7 @@ * load/unload and saving/restoring a document from session history. */ +[Exposed=Window] interface PageTransitionEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/PaintRequest.webidl b/dom/webidl/PaintRequest.webidl index 065be0866341..ffe9e8ae744b 100644 --- a/dom/webidl/PaintRequest.webidl +++ b/dom/webidl/PaintRequest.webidl @@ -7,6 +7,7 @@ * These objects are exposed by the MozDOMAfterPaint event. Each one represents * a request to repaint a rectangle that was generated by the browser. */ +[Exposed=Window] interface PaintRequest { /** * The client rect where invalidation was triggered. diff --git a/dom/webidl/PaintRequestList.webidl b/dom/webidl/PaintRequestList.webidl index d14f18a733c4..b5f59e1ccf41 100644 --- a/dom/webidl/PaintRequestList.webidl +++ b/dom/webidl/PaintRequestList.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface PaintRequestList { readonly attribute unsigned long length; getter PaintRequest? item(unsigned long index); diff --git a/dom/webidl/PannerNode.webidl b/dom/webidl/PannerNode.webidl index 991154b2e066..94d6a8bf54c8 100644 --- a/dom/webidl/PannerNode.webidl +++ b/dom/webidl/PannerNode.webidl @@ -38,7 +38,8 @@ dictionary PannerOptions : AudioNodeOptions { double coneOuterGain = 0; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface PannerNode : AudioNode { [Throws] constructor(BaseAudioContext context, optional PannerOptions options = {}); diff --git a/dom/webidl/ParentSHistory.webidl b/dom/webidl/ParentSHistory.webidl index f892172da0ed..ff72cb39b72e 100644 --- a/dom/webidl/ParentSHistory.webidl +++ b/dom/webidl/ParentSHistory.webidl @@ -9,7 +9,8 @@ * context's session history. Theoretically this object manages all session * history state for the browsing context. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface ParentSHistory { [Pure] readonly attribute long count; diff --git a/dom/webidl/PaymentAddress.webidl b/dom/webidl/PaymentAddress.webidl index 7b0a6c019bb7..c678c6ef97cc 100644 --- a/dom/webidl/PaymentAddress.webidl +++ b/dom/webidl/PaymentAddress.webidl @@ -11,7 +11,8 @@ */ [SecureContext, - Func="mozilla::dom::PaymentRequest::PrefEnabled"] + Func="mozilla::dom::PaymentRequest::PrefEnabled", + Exposed=Window] interface PaymentAddress { [Default] object toJSON(); diff --git a/dom/webidl/PaymentRequest.webidl b/dom/webidl/PaymentRequest.webidl index ddb65a43fe4c..b4a095afe149 100644 --- a/dom/webidl/PaymentRequest.webidl +++ b/dom/webidl/PaymentRequest.webidl @@ -103,7 +103,8 @@ dictionary PaymentOptions { }; [SecureContext, - Func="mozilla::dom::PaymentRequest::PrefEnabled"] + Func="mozilla::dom::PaymentRequest::PrefEnabled", + Exposed=Window] interface PaymentRequest : EventTarget { [Throws] constructor(sequence methodData, diff --git a/dom/webidl/PaymentRequestUpdateEvent.webidl b/dom/webidl/PaymentRequestUpdateEvent.webidl index caf280bf44e4..1b7d0f152056 100644 --- a/dom/webidl/PaymentRequestUpdateEvent.webidl +++ b/dom/webidl/PaymentRequestUpdateEvent.webidl @@ -11,7 +11,8 @@ */ [SecureContext, - Func="mozilla::dom::PaymentRequest::PrefEnabled"] + Func="mozilla::dom::PaymentRequest::PrefEnabled", + Exposed=Window] interface PaymentRequestUpdateEvent : Event { constructor(DOMString type, optional PaymentRequestUpdateEventInit eventInitDict = {}); diff --git a/dom/webidl/PaymentResponse.webidl b/dom/webidl/PaymentResponse.webidl index c172a9f76049..50a2009ee426 100644 --- a/dom/webidl/PaymentResponse.webidl +++ b/dom/webidl/PaymentResponse.webidl @@ -17,7 +17,8 @@ enum PaymentComplete { }; [SecureContext, - Func="mozilla::dom::PaymentRequest::PrefEnabled"] + Func="mozilla::dom::PaymentRequest::PrefEnabled", + Exposed=Window] interface PaymentResponse : EventTarget { [Default] object toJSON(); diff --git a/dom/webidl/PeerConnectionImpl.webidl b/dom/webidl/PeerConnectionImpl.webidl index 629f7fa3b12c..ea7f97154fa2 100644 --- a/dom/webidl/PeerConnectionImpl.webidl +++ b/dom/webidl/PeerConnectionImpl.webidl @@ -16,7 +16,8 @@ interface nsISupports; /* Must be created first. Observer events will be dispatched on the thread provided */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface PeerConnectionImpl { constructor(); diff --git a/dom/webidl/PeerConnectionObserver.webidl b/dom/webidl/PeerConnectionObserver.webidl index ab02c850005f..130e3a425126 100644 --- a/dom/webidl/PeerConnectionObserver.webidl +++ b/dom/webidl/PeerConnectionObserver.webidl @@ -14,7 +14,8 @@ dictionary PCErrorData }; [ChromeOnly, - JSImplementation="@mozilla.org/dom/peerconnectionobserver;1"] + JSImplementation="@mozilla.org/dom/peerconnectionobserver;1", + Exposed=Window] interface PeerConnectionObserver { [Throws] diff --git a/dom/webidl/PerformanceEntryEvent.webidl b/dom/webidl/PerformanceEntryEvent.webidl index 315cbe9ed176..4ddbc8049a04 100644 --- a/dom/webidl/PerformanceEntryEvent.webidl +++ b/dom/webidl/PerformanceEntryEvent.webidl @@ -14,7 +14,8 @@ dictionary PerformanceEntryEventInit : EventInit DOMString origin = ""; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface PerformanceEntryEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/PerformanceNavigation.webidl b/dom/webidl/PerformanceNavigation.webidl index 089825c5c747..ff3dbb494417 100644 --- a/dom/webidl/PerformanceNavigation.webidl +++ b/dom/webidl/PerformanceNavigation.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface PerformanceNavigation { const unsigned short TYPE_NAVIGATE = 0; const unsigned short TYPE_RELOAD = 1; diff --git a/dom/webidl/PerformanceNavigationTiming.webidl b/dom/webidl/PerformanceNavigationTiming.webidl index b26e1c18f688..e6d6b223592c 100644 --- a/dom/webidl/PerformanceNavigationTiming.webidl +++ b/dom/webidl/PerformanceNavigationTiming.webidl @@ -17,6 +17,7 @@ enum NavigationType { "prerender" }; +[Exposed=Window] interface PerformanceNavigationTiming : PerformanceResourceTiming { readonly attribute DOMHighResTimeStamp unloadEventStart; readonly attribute DOMHighResTimeStamp unloadEventEnd; diff --git a/dom/webidl/PerformanceTiming.webidl b/dom/webidl/PerformanceTiming.webidl index 2d18e6319d4b..f1ea315c7b9e 100644 --- a/dom/webidl/PerformanceTiming.webidl +++ b/dom/webidl/PerformanceTiming.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface PerformanceTiming { readonly attribute unsigned long long navigationStart; readonly attribute unsigned long long unloadEventStart; diff --git a/dom/webidl/PeriodicWave.webidl b/dom/webidl/PeriodicWave.webidl index 11ecb29676be..e1a14b4d36d4 100644 --- a/dom/webidl/PeriodicWave.webidl +++ b/dom/webidl/PeriodicWave.webidl @@ -19,7 +19,8 @@ dictionary PeriodicWaveOptions : PeriodicWaveConstraints { sequence imag; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface PeriodicWave { [Throws] constructor(BaseAudioContext context, diff --git a/dom/webidl/PermissionStatus.webidl b/dom/webidl/PermissionStatus.webidl index 3abfd66f4076..7fa8ba53081b 100644 --- a/dom/webidl/PermissionStatus.webidl +++ b/dom/webidl/PermissionStatus.webidl @@ -13,7 +13,7 @@ enum PermissionState { "prompt" }; -[Exposed=(Window)] +[Exposed=Window] interface PermissionStatus : EventTarget { readonly attribute PermissionState state; attribute EventHandler onchange; diff --git a/dom/webidl/Permissions.webidl b/dom/webidl/Permissions.webidl index cf2a59b4795d..4ad138556d81 100644 --- a/dom/webidl/Permissions.webidl +++ b/dom/webidl/Permissions.webidl @@ -22,7 +22,7 @@ dictionary PermissionDescriptor { // We don't implement `PushPermissionDescriptor` because we use a background // message quota instead of `userVisibleOnly`. -[Exposed=(Window)] +[Exposed=Window] interface Permissions { [Throws] Promise query(object permission); diff --git a/dom/webidl/Plugin.webidl b/dom/webidl/Plugin.webidl index 2799a2055ef8..7bc1fa97dcf1 100644 --- a/dom/webidl/Plugin.webidl +++ b/dom/webidl/Plugin.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[LegacyUnenumerableNamedProperties] +[LegacyUnenumerableNamedProperties, + Exposed=Window] interface Plugin { readonly attribute DOMString description; readonly attribute DOMString filename; diff --git a/dom/webidl/PluginArray.webidl b/dom/webidl/PluginArray.webidl index 2ff862bd4b48..f7841322adc8 100644 --- a/dom/webidl/PluginArray.webidl +++ b/dom/webidl/PluginArray.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[LegacyUnenumerableNamedProperties] +[LegacyUnenumerableNamedProperties, + Exposed=Window] interface PluginArray { [NeedsCallerType] readonly attribute unsigned long length; diff --git a/dom/webidl/PluginCrashedEvent.webidl b/dom/webidl/PluginCrashedEvent.webidl index b937ed8f3839..ae27692238af 100644 --- a/dom/webidl/PluginCrashedEvent.webidl +++ b/dom/webidl/PluginCrashedEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface PluginCrashedEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/PointerEvent.webidl b/dom/webidl/PointerEvent.webidl index 2724c6d926f6..7c3ff8ad350b 100644 --- a/dom/webidl/PointerEvent.webidl +++ b/dom/webidl/PointerEvent.webidl @@ -9,7 +9,8 @@ interface WindowProxy; -[Pref="dom.w3c_pointer_events.enabled"] +[Pref="dom.w3c_pointer_events.enabled", + Exposed=Window] interface PointerEvent : MouseEvent { constructor(DOMString type, optional PointerEventInit eventInitDict = {}); diff --git a/dom/webidl/PopStateEvent.webidl b/dom/webidl/PopStateEvent.webidl index bbeae0d259a5..738a7dc14aa4 100644 --- a/dom/webidl/PopStateEvent.webidl +++ b/dom/webidl/PopStateEvent.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface PopStateEvent : Event { constructor(DOMString type, optional PopStateEventInit eventInitDict = {}); diff --git a/dom/webidl/PopupBlockedEvent.webidl b/dom/webidl/PopupBlockedEvent.webidl index 4cf6fe3f1a08..888dc3899d4a 100644 --- a/dom/webidl/PopupBlockedEvent.webidl +++ b/dom/webidl/PopupBlockedEvent.webidl @@ -5,6 +5,7 @@ */ interface URI; +[Exposed=Window] interface PopupBlockedEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/Position.webidl b/dom/webidl/Position.webidl index 93812a379148..6260f5650290 100644 --- a/dom/webidl/Position.webidl +++ b/dom/webidl/Position.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface Position { readonly attribute Coordinates coords; readonly attribute DOMTimeStamp timestamp; diff --git a/dom/webidl/PositionError.webidl b/dom/webidl/PositionError.webidl index d644cbe483e7..111f4639e65d 100644 --- a/dom/webidl/PositionError.webidl +++ b/dom/webidl/PositionError.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface PositionError { const unsigned short PERMISSION_DENIED = 1; const unsigned short POSITION_UNAVAILABLE = 2; diff --git a/dom/webidl/Presentation.webidl b/dom/webidl/Presentation.webidl index d5b331616320..883e6c285fb6 100644 --- a/dom/webidl/Presentation.webidl +++ b/dom/webidl/Presentation.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/presentation-api/#interface-presentation */ -[Pref="dom.presentation.enabled"] +[Pref="dom.presentation.enabled", + Exposed=Window] interface Presentation { /* * This should be used by the UA as the default presentation request for the diff --git a/dom/webidl/PresentationAvailability.webidl b/dom/webidl/PresentationAvailability.webidl index f72b88565d55..d95dfafcc977 100644 --- a/dom/webidl/PresentationAvailability.webidl +++ b/dom/webidl/PresentationAvailability.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/presentation-api/#interface-presentationavailability */ -[Pref="dom.presentation.controller.enabled"] +[Pref="dom.presentation.controller.enabled", + Exposed=Window] interface PresentationAvailability : EventTarget { /* * If there is at least one device discovered by UA, the value is |true|. diff --git a/dom/webidl/PresentationConnection.webidl b/dom/webidl/PresentationConnection.webidl index 9676d20692af..204af6462bae 100644 --- a/dom/webidl/PresentationConnection.webidl +++ b/dom/webidl/PresentationConnection.webidl @@ -29,7 +29,8 @@ enum PresentationConnectionBinaryType "arraybuffer" }; -[Pref="dom.presentation.enabled"] +[Pref="dom.presentation.enabled", + Exposed=Window] interface PresentationConnection : EventTarget { /* * Unique id for all existing connections. diff --git a/dom/webidl/PresentationConnectionAvailableEvent.webidl b/dom/webidl/PresentationConnectionAvailableEvent.webidl index e50f0785b21d..c20ea10d5fc6 100644 --- a/dom/webidl/PresentationConnectionAvailableEvent.webidl +++ b/dom/webidl/PresentationConnectionAvailableEvent.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/presentation-api/#interface-presentationconnectionavailableevent */ -[Pref="dom.presentation.enabled"] +[Pref="dom.presentation.enabled", + Exposed=Window] interface PresentationConnectionAvailableEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/PresentationConnectionCloseEvent.webidl b/dom/webidl/PresentationConnectionCloseEvent.webidl index 6fb837c5f29c..69fce5514c14 100644 --- a/dom/webidl/PresentationConnectionCloseEvent.webidl +++ b/dom/webidl/PresentationConnectionCloseEvent.webidl @@ -21,7 +21,8 @@ enum PresentationConnectionClosedReason "wentaway" }; -[Pref="dom.presentation.enabled"] +[Pref="dom.presentation.enabled", + Exposed=Window] interface PresentationConnectionCloseEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/PresentationConnectionList.webidl b/dom/webidl/PresentationConnectionList.webidl index 2c90ce9de4f0..875582eb2a25 100644 --- a/dom/webidl/PresentationConnectionList.webidl +++ b/dom/webidl/PresentationConnectionList.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/presentation-api/#interface-presentationconnectionlist */ -[Pref="dom.presentation.receiver.enabled"] +[Pref="dom.presentation.receiver.enabled", + Exposed=Window] interface PresentationConnectionList : EventTarget { /* * Return the non-terminated set of presentation connections in the diff --git a/dom/webidl/PresentationReceiver.webidl b/dom/webidl/PresentationReceiver.webidl index 0fa51c151a28..944860bd1000 100644 --- a/dom/webidl/PresentationReceiver.webidl +++ b/dom/webidl/PresentationReceiver.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/presentation-api/#interface-presentationreceiver */ -[Pref="dom.presentation.receiver.enabled"] +[Pref="dom.presentation.receiver.enabled", + Exposed=Window] interface PresentationReceiver { /* * Get a list which contains all connected presentation connections diff --git a/dom/webidl/PresentationRequest.webidl b/dom/webidl/PresentationRequest.webidl index 59593c788f67..2a114cc3ba00 100644 --- a/dom/webidl/PresentationRequest.webidl +++ b/dom/webidl/PresentationRequest.webidl @@ -7,7 +7,8 @@ * https://w3c.github.io/presentation-api/#interface-presentationrequest */ -[Pref="dom.presentation.controller.enabled"] +[Pref="dom.presentation.controller.enabled", + Exposed=Window] interface PresentationRequest : EventTarget { [Throws] constructor(DOMString url); diff --git a/dom/webidl/ProcessingInstruction.webidl b/dom/webidl/ProcessingInstruction.webidl index 1cbe6479229e..59f8228b838d 100644 --- a/dom/webidl/ProcessingInstruction.webidl +++ b/dom/webidl/ProcessingInstruction.webidl @@ -12,6 +12,7 @@ */ // https://dom.spec.whatwg.org/#interface-processinginstruction +[Exposed=Window] interface ProcessingInstruction : CharacterData { readonly attribute DOMString target; }; diff --git a/dom/webidl/PushManager.webidl b/dom/webidl/PushManager.webidl index f16f3776d93c..72190a838ddf 100644 --- a/dom/webidl/PushManager.webidl +++ b/dom/webidl/PushManager.webidl @@ -15,7 +15,8 @@ dictionary PushSubscriptionOptionsInit { // The main thread JS implementation. Please see comments in // dom/push/PushManager.h for the split between PushManagerImpl and PushManager. [JSImplementation="@mozilla.org/push/PushManager;1", - ChromeOnly] + ChromeOnly, + Exposed=Window] interface PushManagerImpl { [Throws] constructor(DOMString scope); diff --git a/dom/webidl/RTCCertificate.webidl b/dom/webidl/RTCCertificate.webidl index 81c3fd41fcce..982ce93f34a0 100644 --- a/dom/webidl/RTCCertificate.webidl +++ b/dom/webidl/RTCCertificate.webidl @@ -11,7 +11,8 @@ dictionary RTCCertificateExpiration { DOMTimeStamp expires; }; -[Pref="media.peerconnection.enabled", Serializable] +[Pref="media.peerconnection.enabled", Serializable, + Exposed=Window] interface RTCCertificate { readonly attribute DOMTimeStamp expires; }; diff --git a/dom/webidl/RTCDTMFSender.webidl b/dom/webidl/RTCDTMFSender.webidl index bf601a1222d7..6c1ccac21bc6 100644 --- a/dom/webidl/RTCDTMFSender.webidl +++ b/dom/webidl/RTCDTMFSender.webidl @@ -7,7 +7,8 @@ * https://www.w3.org/TR/webrtc/#rtcdtmfsender */ -[JSImplementation="@mozilla.org/dom/rtcdtmfsender;1"] +[JSImplementation="@mozilla.org/dom/rtcdtmfsender;1", + Exposed=Window] interface RTCDTMFSender : EventTarget { void insertDTMF(DOMString tones, optional unsigned long duration = 100, diff --git a/dom/webidl/RTCDTMFToneChangeEvent.webidl b/dom/webidl/RTCDTMFToneChangeEvent.webidl index 94aa903352df..e962820938ef 100644 --- a/dom/webidl/RTCDTMFToneChangeEvent.webidl +++ b/dom/webidl/RTCDTMFToneChangeEvent.webidl @@ -7,6 +7,7 @@ * https://www.w3.org/TR/webrtc/#rtcdtmftonechangeevent */ +[Exposed=Window] interface RTCDTMFToneChangeEvent : Event { constructor(DOMString type, optional RTCDTMFToneChangeEventInit eventInitDict = {}); diff --git a/dom/webidl/RTCDataChannel.webidl b/dom/webidl/RTCDataChannel.webidl index 551e64919c74..80a45f2bf4e5 100644 --- a/dom/webidl/RTCDataChannel.webidl +++ b/dom/webidl/RTCDataChannel.webidl @@ -14,6 +14,7 @@ enum RTCDataChannelType { "blob" }; +[Exposed=Window] interface RTCDataChannel : EventTarget { readonly attribute DOMString label; diff --git a/dom/webidl/RTCDataChannelEvent.webidl b/dom/webidl/RTCDataChannelEvent.webidl index f5dbefffd81d..1ad7b5fdae8f 100644 --- a/dom/webidl/RTCDataChannelEvent.webidl +++ b/dom/webidl/RTCDataChannelEvent.webidl @@ -11,7 +11,8 @@ dictionary RTCDataChannelEventInit : EventInit { required RTCDataChannel channel; }; -[Pref="media.peerconnection.enabled"] +[Pref="media.peerconnection.enabled", + Exposed=Window] interface RTCDataChannelEvent : Event { constructor(DOMString type, RTCDataChannelEventInit eventInitDict); diff --git a/dom/webidl/RTCIceCandidate.webidl b/dom/webidl/RTCIceCandidate.webidl index 1d240bde3177..865b029ab960 100644 --- a/dom/webidl/RTCIceCandidate.webidl +++ b/dom/webidl/RTCIceCandidate.webidl @@ -15,7 +15,8 @@ dictionary RTCIceCandidateInit { }; [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtcicecandidate;1"] + JSImplementation="@mozilla.org/dom/rtcicecandidate;1", + Exposed=Window] interface RTCIceCandidate { [Throws] constructor(optional RTCIceCandidateInit candidateInitDict = {}); diff --git a/dom/webidl/RTCIdentityProvider.webidl b/dom/webidl/RTCIdentityProvider.webidl index c1e6cfee2621..614c356758f7 100644 --- a/dom/webidl/RTCIdentityProvider.webidl +++ b/dom/webidl/RTCIdentityProvider.webidl @@ -6,7 +6,8 @@ * http://w3c.github.io/webrtc-pc/ (with https://github.com/w3c/webrtc-pc/pull/178) */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface RTCIdentityProviderRegistrar { void register(RTCIdentityProvider idp); diff --git a/dom/webidl/RTCPeerConnection.webidl b/dom/webidl/RTCPeerConnection.webidl index 4a3e4f0a9bc1..21a4adfc9a3b 100644 --- a/dom/webidl/RTCPeerConnection.webidl +++ b/dom/webidl/RTCPeerConnection.webidl @@ -77,7 +77,8 @@ dictionary RTCOfferOptions : RTCOfferAnswerOptions { }; [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/peerconnection;1"] + JSImplementation="@mozilla.org/dom/peerconnection;1", + Exposed=Window] interface RTCPeerConnection : EventTarget { [Throws] constructor(optional RTCConfiguration configuration = {}, diff --git a/dom/webidl/RTCPeerConnectionIceEvent.webidl b/dom/webidl/RTCPeerConnectionIceEvent.webidl index cb255a2b585a..ed43643b93d4 100644 --- a/dom/webidl/RTCPeerConnectionIceEvent.webidl +++ b/dom/webidl/RTCPeerConnectionIceEvent.webidl @@ -11,7 +11,8 @@ dictionary RTCPeerConnectionIceEventInit : EventInit { RTCIceCandidate? candidate = null; }; -[Pref="media.peerconnection.enabled"] +[Pref="media.peerconnection.enabled", + Exposed=Window] interface RTCPeerConnectionIceEvent : Event { constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict = {}); diff --git a/dom/webidl/RTCPeerConnectionStatic.webidl b/dom/webidl/RTCPeerConnectionStatic.webidl index c1ee8d0dedf4..606a5c3c2af8 100644 --- a/dom/webidl/RTCPeerConnectionStatic.webidl +++ b/dom/webidl/RTCPeerConnectionStatic.webidl @@ -25,7 +25,8 @@ callback PeerConnectionLifecycleCallback = void (RTCPeerConnection pc, [ChromeOnly, Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/peerconnectionstatic;1"] + JSImplementation="@mozilla.org/dom/peerconnectionstatic;1", + Exposed=Window] interface RTCPeerConnectionStatic { [Throws] constructor(); diff --git a/dom/webidl/RTCRtpReceiver.webidl b/dom/webidl/RTCRtpReceiver.webidl index 2d57332b7276..93343f80813f 100644 --- a/dom/webidl/RTCRtpReceiver.webidl +++ b/dom/webidl/RTCRtpReceiver.webidl @@ -8,7 +8,8 @@ */ [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtpreceiver;1"] + JSImplementation="@mozilla.org/dom/rtpreceiver;1", + Exposed=Window] interface RTCRtpReceiver { readonly attribute MediaStreamTrack track; Promise getStats(); diff --git a/dom/webidl/RTCRtpSender.webidl b/dom/webidl/RTCRtpSender.webidl index 9d148fdf5cdb..b7daca48facd 100644 --- a/dom/webidl/RTCRtpSender.webidl +++ b/dom/webidl/RTCRtpSender.webidl @@ -67,7 +67,8 @@ dictionary RTCRtpParameters { }; [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtpsender;1"] + JSImplementation="@mozilla.org/dom/rtpsender;1", + Exposed=Window] interface RTCRtpSender { readonly attribute MediaStreamTrack? track; Promise setParameters (optional RTCRtpParameters parameters = {}); diff --git a/dom/webidl/RTCRtpTransceiver.webidl b/dom/webidl/RTCRtpTransceiver.webidl index 4e7bcbd3a367..5055da3ecfd7 100644 --- a/dom/webidl/RTCRtpTransceiver.webidl +++ b/dom/webidl/RTCRtpTransceiver.webidl @@ -22,7 +22,8 @@ dictionary RTCRtpTransceiverInit { }; [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtptransceiver;1"] + JSImplementation="@mozilla.org/dom/rtptransceiver;1", + Exposed=Window] interface RTCRtpTransceiver { readonly attribute DOMString? mid; [SameObject] diff --git a/dom/webidl/RTCSessionDescription.webidl b/dom/webidl/RTCSessionDescription.webidl index 2faeeea7bf8b..ffd44b34ec26 100644 --- a/dom/webidl/RTCSessionDescription.webidl +++ b/dom/webidl/RTCSessionDescription.webidl @@ -20,7 +20,8 @@ dictionary RTCSessionDescriptionInit { }; [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtcsessiondescription;1"] + JSImplementation="@mozilla.org/dom/rtcsessiondescription;1", + Exposed=Window] interface RTCSessionDescription { [Throws] constructor(optional RTCSessionDescriptionInit descriptionInitDict = {}); diff --git a/dom/webidl/RTCStatsReport.webidl b/dom/webidl/RTCStatsReport.webidl index 8e8673a72eb4..f1a11db5cc04 100644 --- a/dom/webidl/RTCStatsReport.webidl +++ b/dom/webidl/RTCStatsReport.webidl @@ -165,7 +165,8 @@ dictionary RTCStatsReportInternal { }; [Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtcstatsreport;1"] + JSImplementation="@mozilla.org/dom/rtcstatsreport;1", + Exposed=Window] interface RTCStatsReport { readonly maplike; [ChromeOnly] diff --git a/dom/webidl/RTCTrackEvent.webidl b/dom/webidl/RTCTrackEvent.webidl index ed4a65b52f5f..91b768a3e1b9 100644 --- a/dom/webidl/RTCTrackEvent.webidl +++ b/dom/webidl/RTCTrackEvent.webidl @@ -14,7 +14,8 @@ dictionary RTCTrackEventInit : EventInit { required RTCRtpTransceiver transceiver; }; -[Pref="media.peerconnection.enabled"] +[Pref="media.peerconnection.enabled", + Exposed=Window] interface RTCTrackEvent : Event { constructor(DOMString type, RTCTrackEventInit eventInitDict); diff --git a/dom/webidl/RadioNodeList.webidl b/dom/webidl/RadioNodeList.webidl index f37e1cca36c9..d9d500204cc6 100644 --- a/dom/webidl/RadioNodeList.webidl +++ b/dom/webidl/RadioNodeList.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface RadioNodeList : NodeList { [NeedsCallerType] attribute DOMString value; diff --git a/dom/webidl/Range.webidl b/dom/webidl/Range.webidl index 784bd44c6206..281cd7235023 100644 --- a/dom/webidl/Range.webidl +++ b/dom/webidl/Range.webidl @@ -12,6 +12,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface Range : AbstractRange { [Throws] constructor(); diff --git a/dom/webidl/Reporting.webidl b/dom/webidl/Reporting.webidl index fa25a791fdb9..00d59e27c5c8 100644 --- a/dom/webidl/Reporting.webidl +++ b/dom/webidl/Reporting.webidl @@ -7,18 +7,21 @@ * https://w3c.github.io/reporting/#interface-reporting-observer */ -[Pref="dom.reporting.enabled"] +[Pref="dom.reporting.enabled", + Exposed=Window] interface ReportBody { }; -[Pref="dom.reporting.enabled"] +[Pref="dom.reporting.enabled", + Exposed=Window] interface Report { readonly attribute DOMString type; readonly attribute DOMString url; readonly attribute ReportBody? body; }; -[Pref="dom.reporting.enabled"] +[Pref="dom.reporting.enabled", + Exposed=Window] interface ReportingObserver { [Throws] constructor(ReportingObserverCallback callback, @@ -38,7 +41,8 @@ dictionary ReportingObserverOptions { typedef sequence ReportList; -[Pref="dom.reporting.enabled"] +[Pref="dom.reporting.enabled", + Exposed=Window] interface DeprecationReportBody : ReportBody { readonly attribute DOMString id; readonly attribute Date? anticipatedRemoval; diff --git a/dom/webidl/ResizeObserver.webidl b/dom/webidl/ResizeObserver.webidl index 1519505b4d26..0a186c0a1879 100644 --- a/dom/webidl/ResizeObserver.webidl +++ b/dom/webidl/ResizeObserver.webidl @@ -31,7 +31,8 @@ interface ResizeObserver { callback ResizeObserverCallback = void (sequence entries, ResizeObserver observer); -[Pref="layout.css.resizeobserver.enabled"] +[Pref="layout.css.resizeobserver.enabled", + Exposed=Window] interface ResizeObserverEntry { readonly attribute Element target; readonly attribute DOMRectReadOnly contentRect; @@ -39,7 +40,8 @@ interface ResizeObserverEntry { readonly attribute ResizeObserverSize contentBoxSize; }; -[Pref="layout.css.resizeobserver.enabled"] +[Pref="layout.css.resizeobserver.enabled", + Exposed=Window] interface ResizeObserverSize { readonly attribute unrestricted double inlineSize; readonly attribute unrestricted double blockSize; diff --git a/dom/webidl/SVGAElement.webidl b/dom/webidl/SVGAElement.webidl index 4b42bcada2f8..c63d8c6349e3 100644 --- a/dom/webidl/SVGAElement.webidl +++ b/dom/webidl/SVGAElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAElement : SVGGraphicsElement { readonly attribute SVGAnimatedString target; diff --git a/dom/webidl/SVGAngle.webidl b/dom/webidl/SVGAngle.webidl index f17b8836cc61..11946bb5af9f 100644 --- a/dom/webidl/SVGAngle.webidl +++ b/dom/webidl/SVGAngle.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAngle { // Angle Unit Types diff --git a/dom/webidl/SVGAnimateElement.webidl b/dom/webidl/SVGAnimateElement.webidl index c9841f2a84d7..cedb16fbbdf8 100644 --- a/dom/webidl/SVGAnimateElement.webidl +++ b/dom/webidl/SVGAnimateElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimateElement : SVGAnimationElement { }; diff --git a/dom/webidl/SVGAnimateMotionElement.webidl b/dom/webidl/SVGAnimateMotionElement.webidl index 38993d761959..a04cece9b2de 100644 --- a/dom/webidl/SVGAnimateMotionElement.webidl +++ b/dom/webidl/SVGAnimateMotionElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimateMotionElement : SVGAnimationElement { }; diff --git a/dom/webidl/SVGAnimateTransformElement.webidl b/dom/webidl/SVGAnimateTransformElement.webidl index 38701e61ce34..de5a247278c4 100644 --- a/dom/webidl/SVGAnimateTransformElement.webidl +++ b/dom/webidl/SVGAnimateTransformElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimateTransformElement : SVGAnimationElement { }; diff --git a/dom/webidl/SVGAnimatedAngle.webidl b/dom/webidl/SVGAnimatedAngle.webidl index 5b01c8c35ec4..6821e2c1859a 100644 --- a/dom/webidl/SVGAnimatedAngle.webidl +++ b/dom/webidl/SVGAnimatedAngle.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedAngle { [Constant] readonly attribute SVGAngle baseVal; diff --git a/dom/webidl/SVGAnimatedBoolean.webidl b/dom/webidl/SVGAnimatedBoolean.webidl index 990bbc7dee3c..7d0969a9063a 100644 --- a/dom/webidl/SVGAnimatedBoolean.webidl +++ b/dom/webidl/SVGAnimatedBoolean.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedBoolean { attribute boolean baseVal; readonly attribute boolean animVal; diff --git a/dom/webidl/SVGAnimatedEnumeration.webidl b/dom/webidl/SVGAnimatedEnumeration.webidl index 80591c2f1b14..58597a54a38d 100644 --- a/dom/webidl/SVGAnimatedEnumeration.webidl +++ b/dom/webidl/SVGAnimatedEnumeration.webidl @@ -10,6 +10,7 @@ * W3C liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedEnumeration { [SetterThrows] attribute unsigned short baseVal; diff --git a/dom/webidl/SVGAnimatedInteger.webidl b/dom/webidl/SVGAnimatedInteger.webidl index 61b43b3517ba..f1eee2b5ee2b 100644 --- a/dom/webidl/SVGAnimatedInteger.webidl +++ b/dom/webidl/SVGAnimatedInteger.webidl @@ -10,6 +10,7 @@ * W3C liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedInteger { attribute long baseVal; readonly attribute long animVal; diff --git a/dom/webidl/SVGAnimatedLength.webidl b/dom/webidl/SVGAnimatedLength.webidl index f7fac144d3c6..a6844805193e 100644 --- a/dom/webidl/SVGAnimatedLength.webidl +++ b/dom/webidl/SVGAnimatedLength.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedLength { [Constant] readonly attribute SVGLength baseVal; diff --git a/dom/webidl/SVGAnimatedLengthList.webidl b/dom/webidl/SVGAnimatedLengthList.webidl index 0d85e1616b3a..7b0a36bfc7c4 100644 --- a/dom/webidl/SVGAnimatedLengthList.webidl +++ b/dom/webidl/SVGAnimatedLengthList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedLengthList { [Constant] readonly attribute SVGLengthList baseVal; diff --git a/dom/webidl/SVGAnimatedNumber.webidl b/dom/webidl/SVGAnimatedNumber.webidl index 5908f0f868ea..31f6f06d5505 100644 --- a/dom/webidl/SVGAnimatedNumber.webidl +++ b/dom/webidl/SVGAnimatedNumber.webidl @@ -10,6 +10,7 @@ * W3C liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedNumber { attribute float baseVal; readonly attribute float animVal; diff --git a/dom/webidl/SVGAnimatedNumberList.webidl b/dom/webidl/SVGAnimatedNumberList.webidl index 81fba2e062ea..a967ee8766ea 100644 --- a/dom/webidl/SVGAnimatedNumberList.webidl +++ b/dom/webidl/SVGAnimatedNumberList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedNumberList { [Constant] readonly attribute SVGNumberList baseVal; diff --git a/dom/webidl/SVGAnimatedPreserveAspectRatio.webidl b/dom/webidl/SVGAnimatedPreserveAspectRatio.webidl index 07506a5bf812..9a5a9f645e0f 100644 --- a/dom/webidl/SVGAnimatedPreserveAspectRatio.webidl +++ b/dom/webidl/SVGAnimatedPreserveAspectRatio.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedPreserveAspectRatio { [Constant] readonly attribute SVGPreserveAspectRatio baseVal; diff --git a/dom/webidl/SVGAnimatedRect.webidl b/dom/webidl/SVGAnimatedRect.webidl index fffebbe88d78..ebfd707f7948 100644 --- a/dom/webidl/SVGAnimatedRect.webidl +++ b/dom/webidl/SVGAnimatedRect.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedRect { readonly attribute SVGRect? baseVal; readonly attribute SVGRect? animVal; diff --git a/dom/webidl/SVGAnimatedString.webidl b/dom/webidl/SVGAnimatedString.webidl index eaf3773d0e2a..5a28bfd80597 100644 --- a/dom/webidl/SVGAnimatedString.webidl +++ b/dom/webidl/SVGAnimatedString.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedString { attribute DOMString baseVal; readonly attribute DOMString animVal; diff --git a/dom/webidl/SVGAnimatedTransformList.webidl b/dom/webidl/SVGAnimatedTransformList.webidl index 3ea39d130a07..032e2a7c0eaa 100644 --- a/dom/webidl/SVGAnimatedTransformList.webidl +++ b/dom/webidl/SVGAnimatedTransformList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimatedTransformList { [Constant] readonly attribute SVGTransformList baseVal; diff --git a/dom/webidl/SVGAnimationElement.webidl b/dom/webidl/SVGAnimationElement.webidl index 0548b2c9a196..b75b45316fa7 100644 --- a/dom/webidl/SVGAnimationElement.webidl +++ b/dom/webidl/SVGAnimationElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGAnimationElement : SVGElement { readonly attribute SVGElement? targetElement; diff --git a/dom/webidl/SVGCircleElement.webidl b/dom/webidl/SVGCircleElement.webidl index 021b5be242fc..0aed71b96e72 100644 --- a/dom/webidl/SVGCircleElement.webidl +++ b/dom/webidl/SVGCircleElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGCircleElement : SVGGeometryElement { [Constant] readonly attribute SVGAnimatedLength cx; diff --git a/dom/webidl/SVGClipPathElement.webidl b/dom/webidl/SVGClipPathElement.webidl index e1421430d61c..74cb438b1354 100644 --- a/dom/webidl/SVGClipPathElement.webidl +++ b/dom/webidl/SVGClipPathElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGClipPathElement : SVGElement { [Constant] readonly attribute SVGAnimatedEnumeration clipPathUnits; diff --git a/dom/webidl/SVGComponentTransferFunctionElement.webidl b/dom/webidl/SVGComponentTransferFunctionElement.webidl index 1842fe6f5617..e24c8f499ee8 100644 --- a/dom/webidl/SVGComponentTransferFunctionElement.webidl +++ b/dom/webidl/SVGComponentTransferFunctionElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGComponentTransferFunctionElement : SVGElement { // Component Transfer Types const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0; diff --git a/dom/webidl/SVGDefsElement.webidl b/dom/webidl/SVGDefsElement.webidl index 0b37978b47bc..29f03ac023c5 100644 --- a/dom/webidl/SVGDefsElement.webidl +++ b/dom/webidl/SVGDefsElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGDefsElement : SVGGraphicsElement { }; diff --git a/dom/webidl/SVGDescElement.webidl b/dom/webidl/SVGDescElement.webidl index 1841ff54585d..50bf1b7e9107 100644 --- a/dom/webidl/SVGDescElement.webidl +++ b/dom/webidl/SVGDescElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGDescElement : SVGElement { }; diff --git a/dom/webidl/SVGElement.webidl b/dom/webidl/SVGElement.webidl index 592685a27b0e..a74e5e26b9b0 100644 --- a/dom/webidl/SVGElement.webidl +++ b/dom/webidl/SVGElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGElement : Element { attribute DOMString id; diff --git a/dom/webidl/SVGEllipseElement.webidl b/dom/webidl/SVGEllipseElement.webidl index cb509f03190f..306baf14c1ad 100644 --- a/dom/webidl/SVGEllipseElement.webidl +++ b/dom/webidl/SVGEllipseElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGEllipseElement : SVGGeometryElement { [Constant] readonly attribute SVGAnimatedLength cx; diff --git a/dom/webidl/SVGFEBlendElement.webidl b/dom/webidl/SVGFEBlendElement.webidl index 412970b44f9f..9a2590d72452 100644 --- a/dom/webidl/SVGFEBlendElement.webidl +++ b/dom/webidl/SVGFEBlendElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEBlendElement : SVGElement { // Blend Mode Types diff --git a/dom/webidl/SVGFEColorMatrixElement.webidl b/dom/webidl/SVGFEColorMatrixElement.webidl index 05a7b6a79fdd..a067a574fed4 100644 --- a/dom/webidl/SVGFEColorMatrixElement.webidl +++ b/dom/webidl/SVGFEColorMatrixElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEColorMatrixElement : SVGElement { // Color Matrix Types diff --git a/dom/webidl/SVGFEComponentTransferElement.webidl b/dom/webidl/SVGFEComponentTransferElement.webidl index df8dab5f8f1c..cdd472e5f6c1 100644 --- a/dom/webidl/SVGFEComponentTransferElement.webidl +++ b/dom/webidl/SVGFEComponentTransferElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEComponentTransferElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFECompositeElement.webidl b/dom/webidl/SVGFECompositeElement.webidl index dd0b001d1f4e..5612d6c636d1 100644 --- a/dom/webidl/SVGFECompositeElement.webidl +++ b/dom/webidl/SVGFECompositeElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFECompositeElement : SVGElement { // Composite Operators diff --git a/dom/webidl/SVGFEConvolveMatrixElement.webidl b/dom/webidl/SVGFEConvolveMatrixElement.webidl index d07c14e2f903..13b760656804 100644 --- a/dom/webidl/SVGFEConvolveMatrixElement.webidl +++ b/dom/webidl/SVGFEConvolveMatrixElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEConvolveMatrixElement : SVGElement { // Edge Mode Values diff --git a/dom/webidl/SVGFEDiffuseLightingElement.webidl b/dom/webidl/SVGFEDiffuseLightingElement.webidl index e11a07a6f954..17429cb87433 100644 --- a/dom/webidl/SVGFEDiffuseLightingElement.webidl +++ b/dom/webidl/SVGFEDiffuseLightingElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEDiffuseLightingElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFEDisplacementMapElement.webidl b/dom/webidl/SVGFEDisplacementMapElement.webidl index 1e5dfbf7ea6b..05eb55091170 100644 --- a/dom/webidl/SVGFEDisplacementMapElement.webidl +++ b/dom/webidl/SVGFEDisplacementMapElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEDisplacementMapElement : SVGElement { // Channel Selectors diff --git a/dom/webidl/SVGFEDistantLightElement.webidl b/dom/webidl/SVGFEDistantLightElement.webidl index 933befc936ae..09576510d1fc 100644 --- a/dom/webidl/SVGFEDistantLightElement.webidl +++ b/dom/webidl/SVGFEDistantLightElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEDistantLightElement : SVGElement { [Constant] readonly attribute SVGAnimatedNumber azimuth; diff --git a/dom/webidl/SVGFEDropShadowElement.webidl b/dom/webidl/SVGFEDropShadowElement.webidl index 8224436761c9..81cbabefd84e 100644 --- a/dom/webidl/SVGFEDropShadowElement.webidl +++ b/dom/webidl/SVGFEDropShadowElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEDropShadowElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFEFloodElement.webidl b/dom/webidl/SVGFEFloodElement.webidl index e268000915c8..7130c23bfc7f 100644 --- a/dom/webidl/SVGFEFloodElement.webidl +++ b/dom/webidl/SVGFEFloodElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEFloodElement : SVGElement { }; diff --git a/dom/webidl/SVGFEFuncAElement.webidl b/dom/webidl/SVGFEFuncAElement.webidl index 97282cd19550..d51583a5a81a 100644 --- a/dom/webidl/SVGFEFuncAElement.webidl +++ b/dom/webidl/SVGFEFuncAElement.webidl @@ -10,5 +10,6 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEFuncAElement : SVGComponentTransferFunctionElement { }; diff --git a/dom/webidl/SVGFEFuncBElement.webidl b/dom/webidl/SVGFEFuncBElement.webidl index 8b5c2b9255ab..c88f91e8bbbe 100644 --- a/dom/webidl/SVGFEFuncBElement.webidl +++ b/dom/webidl/SVGFEFuncBElement.webidl @@ -10,5 +10,6 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEFuncBElement : SVGComponentTransferFunctionElement { }; diff --git a/dom/webidl/SVGFEFuncGElement.webidl b/dom/webidl/SVGFEFuncGElement.webidl index 39d2f3059070..683cee3ad667 100644 --- a/dom/webidl/SVGFEFuncGElement.webidl +++ b/dom/webidl/SVGFEFuncGElement.webidl @@ -10,5 +10,6 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEFuncGElement : SVGComponentTransferFunctionElement { }; diff --git a/dom/webidl/SVGFEFuncRElement.webidl b/dom/webidl/SVGFEFuncRElement.webidl index 78e492be431a..1a27924a8d99 100644 --- a/dom/webidl/SVGFEFuncRElement.webidl +++ b/dom/webidl/SVGFEFuncRElement.webidl @@ -10,5 +10,6 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEFuncRElement : SVGComponentTransferFunctionElement { }; diff --git a/dom/webidl/SVGFEGaussianBlurElement.webidl b/dom/webidl/SVGFEGaussianBlurElement.webidl index 58e9deea7579..8e6ba06f4094 100644 --- a/dom/webidl/SVGFEGaussianBlurElement.webidl +++ b/dom/webidl/SVGFEGaussianBlurElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEGaussianBlurElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFEImageElement.webidl b/dom/webidl/SVGFEImageElement.webidl index 5ef70da3a54b..17d9701df451 100644 --- a/dom/webidl/SVGFEImageElement.webidl +++ b/dom/webidl/SVGFEImageElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEImageElement : SVGElement { [Constant] readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio; diff --git a/dom/webidl/SVGFEMergeElement.webidl b/dom/webidl/SVGFEMergeElement.webidl index ff1932bb7bf6..855df10d96f1 100644 --- a/dom/webidl/SVGFEMergeElement.webidl +++ b/dom/webidl/SVGFEMergeElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEMergeElement : SVGElement { }; diff --git a/dom/webidl/SVGFEMergeNodeElement.webidl b/dom/webidl/SVGFEMergeNodeElement.webidl index 4ff217ba77a0..f680fc5495dc 100644 --- a/dom/webidl/SVGFEMergeNodeElement.webidl +++ b/dom/webidl/SVGFEMergeNodeElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEMergeNodeElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFEMorphologyElement.webidl b/dom/webidl/SVGFEMorphologyElement.webidl index ee28b8a2dea0..8126028e66a7 100644 --- a/dom/webidl/SVGFEMorphologyElement.webidl +++ b/dom/webidl/SVGFEMorphologyElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEMorphologyElement : SVGElement { // Morphology Operators diff --git a/dom/webidl/SVGFEOffsetElement.webidl b/dom/webidl/SVGFEOffsetElement.webidl index f4921cac5790..2371813ea46f 100644 --- a/dom/webidl/SVGFEOffsetElement.webidl +++ b/dom/webidl/SVGFEOffsetElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEOffsetElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFEPointLightElement.webidl b/dom/webidl/SVGFEPointLightElement.webidl index 232edc45d056..50c4d5af622e 100644 --- a/dom/webidl/SVGFEPointLightElement.webidl +++ b/dom/webidl/SVGFEPointLightElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFEPointLightElement : SVGElement { [Constant] readonly attribute SVGAnimatedNumber x; diff --git a/dom/webidl/SVGFESpecularLightingElement.webidl b/dom/webidl/SVGFESpecularLightingElement.webidl index ca4852686782..2c456f7c2b8c 100644 --- a/dom/webidl/SVGFESpecularLightingElement.webidl +++ b/dom/webidl/SVGFESpecularLightingElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFESpecularLightingElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFESpotLightElement.webidl b/dom/webidl/SVGFESpotLightElement.webidl index 281d20c8c0bf..67351233750c 100644 --- a/dom/webidl/SVGFESpotLightElement.webidl +++ b/dom/webidl/SVGFESpotLightElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFESpotLightElement : SVGElement { [Constant] readonly attribute SVGAnimatedNumber x; diff --git a/dom/webidl/SVGFETileElement.webidl b/dom/webidl/SVGFETileElement.webidl index 42f3f8734a26..2571982dc75e 100644 --- a/dom/webidl/SVGFETileElement.webidl +++ b/dom/webidl/SVGFETileElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFETileElement : SVGElement { [Constant] readonly attribute SVGAnimatedString in1; diff --git a/dom/webidl/SVGFETurbulenceElement.webidl b/dom/webidl/SVGFETurbulenceElement.webidl index f12d8c1b801f..ad592c84e937 100644 --- a/dom/webidl/SVGFETurbulenceElement.webidl +++ b/dom/webidl/SVGFETurbulenceElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFETurbulenceElement : SVGElement { // Turbulence Types diff --git a/dom/webidl/SVGFilterElement.webidl b/dom/webidl/SVGFilterElement.webidl index 5c8203e33fe6..e063aaca935d 100644 --- a/dom/webidl/SVGFilterElement.webidl +++ b/dom/webidl/SVGFilterElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGFilterElement : SVGElement { [Constant] readonly attribute SVGAnimatedEnumeration filterUnits; diff --git a/dom/webidl/SVGForeignObjectElement.webidl b/dom/webidl/SVGForeignObjectElement.webidl index 6829f4501f79..15de9a4861f5 100644 --- a/dom/webidl/SVGForeignObjectElement.webidl +++ b/dom/webidl/SVGForeignObjectElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGForeignObjectElement : SVGGraphicsElement { [Constant] readonly attribute SVGAnimatedLength x; diff --git a/dom/webidl/SVGGElement.webidl b/dom/webidl/SVGGElement.webidl index 8d690677e5e4..477495454faf 100644 --- a/dom/webidl/SVGGElement.webidl +++ b/dom/webidl/SVGGElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGGElement : SVGGraphicsElement { }; diff --git a/dom/webidl/SVGGeometryElement.webidl b/dom/webidl/SVGGeometryElement.webidl index b4b918533b5e..f2ca9411e472 100644 --- a/dom/webidl/SVGGeometryElement.webidl +++ b/dom/webidl/SVGGeometryElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGGeometryElement : SVGGraphicsElement { [SameObject] readonly attribute SVGAnimatedNumber pathLength; diff --git a/dom/webidl/SVGGradientElement.webidl b/dom/webidl/SVGGradientElement.webidl index d5553a9b8314..7b74db779d80 100644 --- a/dom/webidl/SVGGradientElement.webidl +++ b/dom/webidl/SVGGradientElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGGradientElement : SVGElement { // Spread Method Types diff --git a/dom/webidl/SVGGraphicsElement.webidl b/dom/webidl/SVGGraphicsElement.webidl index eb8773310aad..8ea29232a0e2 100644 --- a/dom/webidl/SVGGraphicsElement.webidl +++ b/dom/webidl/SVGGraphicsElement.webidl @@ -17,6 +17,7 @@ dictionary SVGBoundingBoxOptions { boolean clipped = false; }; +[Exposed=Window] interface SVGGraphicsElement : SVGElement { readonly attribute SVGAnimatedTransformList transform; diff --git a/dom/webidl/SVGImageElement.webidl b/dom/webidl/SVGImageElement.webidl index b22758543af0..1785e9766160 100644 --- a/dom/webidl/SVGImageElement.webidl +++ b/dom/webidl/SVGImageElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGImageElement : SVGGraphicsElement { [Constant] readonly attribute SVGAnimatedLength x; diff --git a/dom/webidl/SVGLength.webidl b/dom/webidl/SVGLength.webidl index 6d56132db084..07936cdafaff 100644 --- a/dom/webidl/SVGLength.webidl +++ b/dom/webidl/SVGLength.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGLength { // Length Unit Types diff --git a/dom/webidl/SVGLengthList.webidl b/dom/webidl/SVGLengthList.webidl index c4fab44e4b7f..80602c2d9a51 100644 --- a/dom/webidl/SVGLengthList.webidl +++ b/dom/webidl/SVGLengthList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGLengthList { readonly attribute unsigned long numberOfItems; [Throws] diff --git a/dom/webidl/SVGLineElement.webidl b/dom/webidl/SVGLineElement.webidl index 3ec4ba1016b6..f37cad9dc28c 100644 --- a/dom/webidl/SVGLineElement.webidl +++ b/dom/webidl/SVGLineElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGLineElement : SVGGeometryElement { [Constant] readonly attribute SVGAnimatedLength x1; diff --git a/dom/webidl/SVGLinearGradientElement.webidl b/dom/webidl/SVGLinearGradientElement.webidl index 200bc47e67ed..db4690f43866 100644 --- a/dom/webidl/SVGLinearGradientElement.webidl +++ b/dom/webidl/SVGLinearGradientElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGLinearGradientElement : SVGGradientElement { [Constant] readonly attribute SVGAnimatedLength x1; diff --git a/dom/webidl/SVGMPathElement.webidl b/dom/webidl/SVGMPathElement.webidl index f1ca4c3c3d7e..e9287b22bbb5 100644 --- a/dom/webidl/SVGMPathElement.webidl +++ b/dom/webidl/SVGMPathElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGMPathElement : SVGElement { }; diff --git a/dom/webidl/SVGMarkerElement.webidl b/dom/webidl/SVGMarkerElement.webidl index b69c8037a80e..a72116c02e04 100644 --- a/dom/webidl/SVGMarkerElement.webidl +++ b/dom/webidl/SVGMarkerElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGMarkerElement : SVGElement { // Marker Unit Types diff --git a/dom/webidl/SVGMaskElement.webidl b/dom/webidl/SVGMaskElement.webidl index ad5096b69003..0ace0fa21630 100644 --- a/dom/webidl/SVGMaskElement.webidl +++ b/dom/webidl/SVGMaskElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGMaskElement : SVGElement { // Mask Types diff --git a/dom/webidl/SVGMatrix.webidl b/dom/webidl/SVGMatrix.webidl index 3ede75cc727a..f1f3a244a57b 100644 --- a/dom/webidl/SVGMatrix.webidl +++ b/dom/webidl/SVGMatrix.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGMatrix { [SetterThrows] diff --git a/dom/webidl/SVGMetadataElement.webidl b/dom/webidl/SVGMetadataElement.webidl index 1c404f91f2d0..370b7b029600 100644 --- a/dom/webidl/SVGMetadataElement.webidl +++ b/dom/webidl/SVGMetadataElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGMetadataElement : SVGElement { }; diff --git a/dom/webidl/SVGNumber.webidl b/dom/webidl/SVGNumber.webidl index 8e1bb58c1031..71921c84664d 100644 --- a/dom/webidl/SVGNumber.webidl +++ b/dom/webidl/SVGNumber.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGNumber { [SetterThrows] attribute float value; diff --git a/dom/webidl/SVGNumberList.webidl b/dom/webidl/SVGNumberList.webidl index b4247d33746a..3739954a0b81 100644 --- a/dom/webidl/SVGNumberList.webidl +++ b/dom/webidl/SVGNumberList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGNumberList { readonly attribute unsigned long numberOfItems; [Throws] diff --git a/dom/webidl/SVGPathElement.webidl b/dom/webidl/SVGPathElement.webidl index 51c5edbdc1e8..2cc8706cbf62 100644 --- a/dom/webidl/SVGPathElement.webidl +++ b/dom/webidl/SVGPathElement.webidl @@ -9,6 +9,7 @@ * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPathElement : SVGGeometryElement { unsigned long getPathSegAtLength(float distance); diff --git a/dom/webidl/SVGPathSeg.webidl b/dom/webidl/SVGPathSeg.webidl index 5895a8c963f6..073defada95e 100644 --- a/dom/webidl/SVGPathSeg.webidl +++ b/dom/webidl/SVGPathSeg.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSeg { // Path Segment Types @@ -41,11 +42,13 @@ interface SVGPathSeg { readonly attribute DOMString pathSegTypeAsLetter; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegClosePath : SVGPathSeg { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegMovetoAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -53,7 +56,8 @@ interface SVGPathSegMovetoAbs : SVGPathSeg { attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegMovetoRel : SVGPathSeg { [SetterThrows] attribute float x; @@ -61,7 +65,8 @@ interface SVGPathSegMovetoRel : SVGPathSeg { attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegLinetoAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -69,7 +74,8 @@ interface SVGPathSegLinetoAbs : SVGPathSeg { attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegLinetoRel : SVGPathSeg { [SetterThrows] attribute float x; @@ -77,7 +83,8 @@ interface SVGPathSegLinetoRel : SVGPathSeg { attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoCubicAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -93,7 +100,8 @@ interface SVGPathSegCurvetoCubicAbs : SVGPathSeg { attribute float y2; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoCubicRel : SVGPathSeg { [SetterThrows] attribute float x; @@ -109,7 +117,8 @@ interface SVGPathSegCurvetoCubicRel : SVGPathSeg { attribute float y2; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -121,7 +130,8 @@ interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg { attribute float y1; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg { [SetterThrows] attribute float x; @@ -133,7 +143,8 @@ interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg { attribute float y1; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegArcAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -151,7 +162,8 @@ interface SVGPathSegArcAbs : SVGPathSeg { attribute boolean sweepFlag; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegArcRel : SVGPathSeg { [SetterThrows] attribute float x; @@ -169,31 +181,36 @@ interface SVGPathSegArcRel : SVGPathSeg { attribute boolean sweepFlag; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg { [SetterThrows] attribute float x; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegLinetoHorizontalRel : SVGPathSeg { [SetterThrows] attribute float x; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegLinetoVerticalAbs : SVGPathSeg { [SetterThrows] attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegLinetoVerticalRel : SVGPathSeg { [SetterThrows] attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -205,7 +222,8 @@ interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg { attribute float y2; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg { [SetterThrows] attribute float x; @@ -217,7 +235,8 @@ interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg { attribute float y2; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg { [SetterThrows] attribute float x; @@ -225,7 +244,8 @@ interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg { attribute float y; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg { [SetterThrows] attribute float x; diff --git a/dom/webidl/SVGPathSegList.webidl b/dom/webidl/SVGPathSegList.webidl index dc8c9a436fa1..66cc22a7a714 100644 --- a/dom/webidl/SVGPathSegList.webidl +++ b/dom/webidl/SVGPathSegList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPathSegList { readonly attribute unsigned long numberOfItems; [Throws] diff --git a/dom/webidl/SVGPatternElement.webidl b/dom/webidl/SVGPatternElement.webidl index 0bde1d93f436..c69d450cfe4e 100644 --- a/dom/webidl/SVGPatternElement.webidl +++ b/dom/webidl/SVGPatternElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPatternElement : SVGElement { [Constant] readonly attribute SVGAnimatedEnumeration patternUnits; diff --git a/dom/webidl/SVGPoint.webidl b/dom/webidl/SVGPoint.webidl index c8113d40b75e..a3aca3c9dc31 100644 --- a/dom/webidl/SVGPoint.webidl +++ b/dom/webidl/SVGPoint.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPoint { [SetterThrows] diff --git a/dom/webidl/SVGPointList.webidl b/dom/webidl/SVGPointList.webidl index 2bc553855f9c..301e5238a282 100644 --- a/dom/webidl/SVGPointList.webidl +++ b/dom/webidl/SVGPointList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPointList { readonly attribute unsigned long numberOfItems; [Throws] diff --git a/dom/webidl/SVGPolygonElement.webidl b/dom/webidl/SVGPolygonElement.webidl index af64f5b5424c..89b55bc1af25 100644 --- a/dom/webidl/SVGPolygonElement.webidl +++ b/dom/webidl/SVGPolygonElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPolygonElement : SVGGeometryElement { }; diff --git a/dom/webidl/SVGPolylineElement.webidl b/dom/webidl/SVGPolylineElement.webidl index 5ab4924649ed..fa554e5f6b0c 100644 --- a/dom/webidl/SVGPolylineElement.webidl +++ b/dom/webidl/SVGPolylineElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPolylineElement : SVGGeometryElement { }; diff --git a/dom/webidl/SVGPreserveAspectRatio.webidl b/dom/webidl/SVGPreserveAspectRatio.webidl index 2a9db63f583e..5ef01f28c7c0 100644 --- a/dom/webidl/SVGPreserveAspectRatio.webidl +++ b/dom/webidl/SVGPreserveAspectRatio.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGPreserveAspectRatio { // Alignment Types diff --git a/dom/webidl/SVGRadialGradientElement.webidl b/dom/webidl/SVGRadialGradientElement.webidl index 8d7ce901681d..376ff6e56f01 100644 --- a/dom/webidl/SVGRadialGradientElement.webidl +++ b/dom/webidl/SVGRadialGradientElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGRadialGradientElement : SVGGradientElement { [Constant] readonly attribute SVGAnimatedLength cx; diff --git a/dom/webidl/SVGRect.webidl b/dom/webidl/SVGRect.webidl index 0edda0640fb9..dceb09dbbb0c 100644 --- a/dom/webidl/SVGRect.webidl +++ b/dom/webidl/SVGRect.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGRect { [SetterThrows] attribute float x; diff --git a/dom/webidl/SVGRectElement.webidl b/dom/webidl/SVGRectElement.webidl index 9dddd83bbbf3..1fdc72b86e16 100644 --- a/dom/webidl/SVGRectElement.webidl +++ b/dom/webidl/SVGRectElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGRectElement : SVGGeometryElement { [Constant] readonly attribute SVGAnimatedLength x; diff --git a/dom/webidl/SVGSVGElement.webidl b/dom/webidl/SVGSVGElement.webidl index 486f3f0813f7..422bb1e0a4f6 100644 --- a/dom/webidl/SVGSVGElement.webidl +++ b/dom/webidl/SVGSVGElement.webidl @@ -12,6 +12,7 @@ interface SVGViewSpec; +[Exposed=Window] interface SVGSVGElement : SVGGraphicsElement { [Constant] diff --git a/dom/webidl/SVGScriptElement.webidl b/dom/webidl/SVGScriptElement.webidl index d21be8403bed..676a39614434 100644 --- a/dom/webidl/SVGScriptElement.webidl +++ b/dom/webidl/SVGScriptElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGScriptElement : SVGElement { [SetterThrows] attribute DOMString type; diff --git a/dom/webidl/SVGSetElement.webidl b/dom/webidl/SVGSetElement.webidl index 8b816fa75914..7db9d3225736 100644 --- a/dom/webidl/SVGSetElement.webidl +++ b/dom/webidl/SVGSetElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGSetElement : SVGAnimationElement { }; diff --git a/dom/webidl/SVGStopElement.webidl b/dom/webidl/SVGStopElement.webidl index d75e52b73399..f8c2b1706607 100644 --- a/dom/webidl/SVGStopElement.webidl +++ b/dom/webidl/SVGStopElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGStopElement : SVGElement { [Constant] readonly attribute SVGAnimatedNumber offset; diff --git a/dom/webidl/SVGStringList.webidl b/dom/webidl/SVGStringList.webidl index ad7288fe1c09..97fe3d912a57 100644 --- a/dom/webidl/SVGStringList.webidl +++ b/dom/webidl/SVGStringList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGStringList { readonly attribute unsigned long length; readonly attribute unsigned long numberOfItems; diff --git a/dom/webidl/SVGStyleElement.webidl b/dom/webidl/SVGStyleElement.webidl index 35d251864b3d..f684ef022b0d 100644 --- a/dom/webidl/SVGStyleElement.webidl +++ b/dom/webidl/SVGStyleElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGStyleElement : SVGElement { [SetterThrows] attribute DOMString xmlspace; // Spec claims this should be on SVGElement diff --git a/dom/webidl/SVGSwitchElement.webidl b/dom/webidl/SVGSwitchElement.webidl index 43cdb6861a89..11dd3274930a 100644 --- a/dom/webidl/SVGSwitchElement.webidl +++ b/dom/webidl/SVGSwitchElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGSwitchElement : SVGGraphicsElement { }; diff --git a/dom/webidl/SVGSymbolElement.webidl b/dom/webidl/SVGSymbolElement.webidl index 6cd35429c1f5..76861ff5afed 100644 --- a/dom/webidl/SVGSymbolElement.webidl +++ b/dom/webidl/SVGSymbolElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGSymbolElement : SVGElement { }; diff --git a/dom/webidl/SVGTSpanElement.webidl b/dom/webidl/SVGTSpanElement.webidl index a6d944450cbc..69ab6a0fee06 100644 --- a/dom/webidl/SVGTSpanElement.webidl +++ b/dom/webidl/SVGTSpanElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTSpanElement : SVGTextPositioningElement { }; diff --git a/dom/webidl/SVGTextContentElement.webidl b/dom/webidl/SVGTextContentElement.webidl index 323fbd25ebb6..8e9fe253dfea 100644 --- a/dom/webidl/SVGTextContentElement.webidl +++ b/dom/webidl/SVGTextContentElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTextContentElement : SVGGraphicsElement { // lengthAdjust Types diff --git a/dom/webidl/SVGTextElement.webidl b/dom/webidl/SVGTextElement.webidl index 042326de2ee3..0fe7cfb4925a 100644 --- a/dom/webidl/SVGTextElement.webidl +++ b/dom/webidl/SVGTextElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTextElement : SVGTextPositioningElement { }; diff --git a/dom/webidl/SVGTextPathElement.webidl b/dom/webidl/SVGTextPathElement.webidl index 27694aaa1bc4..d364a366fde6 100644 --- a/dom/webidl/SVGTextPathElement.webidl +++ b/dom/webidl/SVGTextPathElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTextPathElement : SVGTextContentElement { // textPath Method Types diff --git a/dom/webidl/SVGTextPositioningElement.webidl b/dom/webidl/SVGTextPositioningElement.webidl index 80b8b94fac9f..4b4476d777e9 100644 --- a/dom/webidl/SVGTextPositioningElement.webidl +++ b/dom/webidl/SVGTextPositioningElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTextPositioningElement : SVGTextContentElement { [Constant] readonly attribute SVGAnimatedLengthList x; diff --git a/dom/webidl/SVGTitleElement.webidl b/dom/webidl/SVGTitleElement.webidl index d40c63373ea7..3d2677d462a9 100644 --- a/dom/webidl/SVGTitleElement.webidl +++ b/dom/webidl/SVGTitleElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTitleElement : SVGElement { }; diff --git a/dom/webidl/SVGTransform.webidl b/dom/webidl/SVGTransform.webidl index 7536e7549570..ddcc0eb02d52 100644 --- a/dom/webidl/SVGTransform.webidl +++ b/dom/webidl/SVGTransform.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTransform { // Transform Types diff --git a/dom/webidl/SVGTransformList.webidl b/dom/webidl/SVGTransformList.webidl index c9763aa26c97..25189ea89802 100644 --- a/dom/webidl/SVGTransformList.webidl +++ b/dom/webidl/SVGTransformList.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGTransformList { readonly attribute unsigned long numberOfItems; [Throws] diff --git a/dom/webidl/SVGUnitTypes.webidl b/dom/webidl/SVGUnitTypes.webidl index d02e7019bcd4..6cfc2ef3769c 100644 --- a/dom/webidl/SVGUnitTypes.webidl +++ b/dom/webidl/SVGUnitTypes.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGUnitTypes { // Unit Types const unsigned short SVG_UNIT_TYPE_UNKNOWN = 0; diff --git a/dom/webidl/SVGUseElement.webidl b/dom/webidl/SVGUseElement.webidl index 0443ee6a23d9..1da30df0a551 100644 --- a/dom/webidl/SVGUseElement.webidl +++ b/dom/webidl/SVGUseElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGUseElement : SVGGraphicsElement { [Constant] readonly attribute SVGAnimatedLength x; diff --git a/dom/webidl/SVGViewElement.webidl b/dom/webidl/SVGViewElement.webidl index 1c0d4e7ff0d6..4d437fb2e000 100644 --- a/dom/webidl/SVGViewElement.webidl +++ b/dom/webidl/SVGViewElement.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGViewElement : SVGElement { }; diff --git a/dom/webidl/SVGZoomAndPan.webidl b/dom/webidl/SVGZoomAndPan.webidl index 115e7e76b4fb..b744cf26ddb8 100644 --- a/dom/webidl/SVGZoomAndPan.webidl +++ b/dom/webidl/SVGZoomAndPan.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface SVGZoomAndPan { }; diff --git a/dom/webidl/Screen.webidl b/dom/webidl/Screen.webidl index 59d6ca31e400..74db942702fe 100644 --- a/dom/webidl/Screen.webidl +++ b/dom/webidl/Screen.webidl @@ -3,6 +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/. */ +[Exposed=Window] interface Screen : EventTarget { // CSSOM-View // http://dev.w3.org/csswg/cssom-view/#the-screen-interface @@ -67,7 +68,8 @@ enum ScreenColorGamut { "rec2020", }; -[Func="nsScreen::MediaCapabilitiesEnabled"] +[Func="nsScreen::MediaCapabilitiesEnabled", + Exposed=Window] interface ScreenLuminance { readonly attribute double min; readonly attribute double max; diff --git a/dom/webidl/ScreenOrientation.webidl b/dom/webidl/ScreenOrientation.webidl index 0f0b6736e4b6..dab5c84df13a 100644 --- a/dom/webidl/ScreenOrientation.webidl +++ b/dom/webidl/ScreenOrientation.webidl @@ -28,6 +28,7 @@ enum OrientationLockType { "landscape-secondary" }; +[Exposed=Window] interface ScreenOrientation : EventTarget { [Throws] Promise lock(OrientationLockType orientation); diff --git a/dom/webidl/ScriptProcessorNode.webidl b/dom/webidl/ScriptProcessorNode.webidl index 7063ad82008f..6b0ef2b619e3 100644 --- a/dom/webidl/ScriptProcessorNode.webidl +++ b/dom/webidl/ScriptProcessorNode.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface ScriptProcessorNode : AudioNode { attribute EventHandler onaudioprocess; diff --git a/dom/webidl/ScrollAreaEvent.webidl b/dom/webidl/ScrollAreaEvent.webidl index f24b7c0ad040..46ed3d9cd232 100644 --- a/dom/webidl/ScrollAreaEvent.webidl +++ b/dom/webidl/ScrollAreaEvent.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface ScrollAreaEvent : UIEvent { readonly attribute float x; diff --git a/dom/webidl/ScrollViewChangeEvent.webidl b/dom/webidl/ScrollViewChangeEvent.webidl index b0fabafed8d7..df9f83b7b625 100644 --- a/dom/webidl/ScrollViewChangeEvent.webidl +++ b/dom/webidl/ScrollViewChangeEvent.webidl @@ -10,7 +10,8 @@ dictionary ScrollViewChangeEventInit : EventInit { ScrollState state = "started"; }; -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface ScrollViewChangeEvent : Event { constructor(DOMString type, optional ScrollViewChangeEventInit eventInit = {}); diff --git a/dom/webidl/SecurityPolicyViolationEvent.webidl b/dom/webidl/SecurityPolicyViolationEvent.webidl index dbd1e0ef5b47..c4e1155e5ba6 100644 --- a/dom/webidl/SecurityPolicyViolationEvent.webidl +++ b/dom/webidl/SecurityPolicyViolationEvent.webidl @@ -7,6 +7,7 @@ enum SecurityPolicyViolationEventDisposition "enforce", "report" }; +[Exposed=Window] interface SecurityPolicyViolationEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/Selection.webidl b/dom/webidl/Selection.webidl index ec38d729b2a7..65525403df29 100644 --- a/dom/webidl/Selection.webidl +++ b/dom/webidl/Selection.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface Selection { readonly attribute Node? anchorNode; readonly attribute unsigned long anchorOffset; diff --git a/dom/webidl/ShadowRoot.webidl b/dom/webidl/ShadowRoot.webidl index fb77e394be9f..1d1704ff24af 100644 --- a/dom/webidl/ShadowRoot.webidl +++ b/dom/webidl/ShadowRoot.webidl @@ -17,6 +17,7 @@ enum ShadowRootMode { }; // https://dom.spec.whatwg.org/#shadowroot +[Exposed=Window] interface ShadowRoot : DocumentFragment { // Shadow DOM v1 diff --git a/dom/webidl/SharedWorker.webidl b/dom/webidl/SharedWorker.webidl index c7827c3cc51c..3a4d9b3ebefe 100644 --- a/dom/webidl/SharedWorker.webidl +++ b/dom/webidl/SharedWorker.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface SharedWorker : EventTarget { [Throws] constructor(USVString scriptURL, diff --git a/dom/webidl/SimpleGestureEvent.webidl b/dom/webidl/SimpleGestureEvent.webidl index ab55c9014165..e6bcab03b56f 100644 --- a/dom/webidl/SimpleGestureEvent.webidl +++ b/dom/webidl/SimpleGestureEvent.webidl @@ -102,7 +102,8 @@ * consuming events. */ -[Func="IsChromeOrXBL"] +[Func="IsChromeOrXBL", + Exposed=Window] interface SimpleGestureEvent : MouseEvent { /* Swipe direction constants */ diff --git a/dom/webidl/SourceBuffer.webidl b/dom/webidl/SourceBuffer.webidl index 9bdb5fb8d1ac..6e7617833aaf 100644 --- a/dom/webidl/SourceBuffer.webidl +++ b/dom/webidl/SourceBuffer.webidl @@ -15,7 +15,8 @@ enum SourceBufferAppendMode { "sequence" }; -[Pref="media.mediasource.enabled"] +[Pref="media.mediasource.enabled", + Exposed=Window] interface SourceBuffer : EventTarget { [SetterThrows] attribute SourceBufferAppendMode mode; diff --git a/dom/webidl/SourceBufferList.webidl b/dom/webidl/SourceBufferList.webidl index fe42de04df98..ff5d85fa34fb 100644 --- a/dom/webidl/SourceBufferList.webidl +++ b/dom/webidl/SourceBufferList.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="media.mediasource.enabled"] +[Pref="media.mediasource.enabled", + Exposed=Window] interface SourceBufferList : EventTarget { readonly attribute unsigned long length; attribute EventHandler onaddsourcebuffer; diff --git a/dom/webidl/SpeechGrammar.webidl b/dom/webidl/SpeechGrammar.webidl index ab0bee7bd90a..d64d6b40e41b 100644 --- a/dom/webidl/SpeechGrammar.webidl +++ b/dom/webidl/SpeechGrammar.webidl @@ -11,7 +11,8 @@ */ [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechGrammar { constructor(); diff --git a/dom/webidl/SpeechGrammarList.webidl b/dom/webidl/SpeechGrammarList.webidl index d5825903584e..a4848fb5883d 100644 --- a/dom/webidl/SpeechGrammarList.webidl +++ b/dom/webidl/SpeechGrammarList.webidl @@ -11,7 +11,8 @@ */ [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechGrammarList { constructor(); diff --git a/dom/webidl/SpeechRecognition.webidl b/dom/webidl/SpeechRecognition.webidl index f85e837737cb..daec8c2e83ff 100644 --- a/dom/webidl/SpeechRecognition.webidl +++ b/dom/webidl/SpeechRecognition.webidl @@ -11,7 +11,8 @@ */ [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechRecognition : EventTarget { [Throws] constructor(); diff --git a/dom/webidl/SpeechRecognitionAlternative.webidl b/dom/webidl/SpeechRecognitionAlternative.webidl index f2692404d590..746c6b125b08 100644 --- a/dom/webidl/SpeechRecognitionAlternative.webidl +++ b/dom/webidl/SpeechRecognitionAlternative.webidl @@ -11,7 +11,8 @@ */ [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechRecognitionAlternative { readonly attribute DOMString transcript; readonly attribute float confidence; diff --git a/dom/webidl/SpeechRecognitionError.webidl b/dom/webidl/SpeechRecognitionError.webidl index e7bd2f4c6d55..7e1905eeceec 100644 --- a/dom/webidl/SpeechRecognitionError.webidl +++ b/dom/webidl/SpeechRecognitionError.webidl @@ -16,7 +16,8 @@ enum SpeechRecognitionErrorCode { }; [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechRecognitionError : Event { constructor(DOMString type, diff --git a/dom/webidl/SpeechRecognitionEvent.webidl b/dom/webidl/SpeechRecognitionEvent.webidl index db7b986190cd..8dc3fd77ace2 100644 --- a/dom/webidl/SpeechRecognitionEvent.webidl +++ b/dom/webidl/SpeechRecognitionEvent.webidl @@ -6,7 +6,8 @@ interface nsISupports; [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechRecognitionEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/SpeechRecognitionResult.webidl b/dom/webidl/SpeechRecognitionResult.webidl index c66bb9ca2f06..46cf650781fe 100644 --- a/dom/webidl/SpeechRecognitionResult.webidl +++ b/dom/webidl/SpeechRecognitionResult.webidl @@ -11,7 +11,8 @@ */ [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechRecognitionResult { readonly attribute unsigned long length; getter SpeechRecognitionAlternative item(unsigned long index); diff --git a/dom/webidl/SpeechRecognitionResultList.webidl b/dom/webidl/SpeechRecognitionResultList.webidl index ec182c1def48..eb11edc9766f 100644 --- a/dom/webidl/SpeechRecognitionResultList.webidl +++ b/dom/webidl/SpeechRecognitionResultList.webidl @@ -11,7 +11,8 @@ */ [Pref="media.webspeech.recognition.enable", - Func="SpeechRecognition::IsAuthorized"] + Func="SpeechRecognition::IsAuthorized", + Exposed=Window] interface SpeechRecognitionResultList { readonly attribute unsigned long length; getter SpeechRecognitionResult item(unsigned long index); diff --git a/dom/webidl/SpeechSynthesis.webidl b/dom/webidl/SpeechSynthesis.webidl index f57a07b8bb50..6353317ffeed 100644 --- a/dom/webidl/SpeechSynthesis.webidl +++ b/dom/webidl/SpeechSynthesis.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="media.webspeech.synth.enabled"] +[Pref="media.webspeech.synth.enabled", + Exposed=Window] interface SpeechSynthesis : EventTarget{ readonly attribute boolean pending; readonly attribute boolean speaking; diff --git a/dom/webidl/SpeechSynthesisErrorEvent.webidl b/dom/webidl/SpeechSynthesisErrorEvent.webidl index 305f25fd75ad..baab54f02500 100644 --- a/dom/webidl/SpeechSynthesisErrorEvent.webidl +++ b/dom/webidl/SpeechSynthesisErrorEvent.webidl @@ -24,7 +24,8 @@ enum SpeechSynthesisErrorCode { "invalid-argument", }; -[Pref="media.webspeech.synth.enabled"] +[Pref="media.webspeech.synth.enabled", + Exposed=Window] interface SpeechSynthesisErrorEvent : SpeechSynthesisEvent { constructor(DOMString type, SpeechSynthesisErrorEventInit eventInitDict); diff --git a/dom/webidl/SpeechSynthesisEvent.webidl b/dom/webidl/SpeechSynthesisEvent.webidl index 90b8c1c9e6db..7eabe1096b5f 100644 --- a/dom/webidl/SpeechSynthesisEvent.webidl +++ b/dom/webidl/SpeechSynthesisEvent.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="media.webspeech.synth.enabled"] +[Pref="media.webspeech.synth.enabled", + Exposed=Window] interface SpeechSynthesisEvent : Event { constructor(DOMString type, SpeechSynthesisEventInit eventInitDict); diff --git a/dom/webidl/SpeechSynthesisUtterance.webidl b/dom/webidl/SpeechSynthesisUtterance.webidl index b2d29ead03f2..334b1adf9126 100644 --- a/dom/webidl/SpeechSynthesisUtterance.webidl +++ b/dom/webidl/SpeechSynthesisUtterance.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="media.webspeech.synth.enabled"] +[Pref="media.webspeech.synth.enabled", + Exposed=Window] interface SpeechSynthesisUtterance : EventTarget { [Throws] constructor(); diff --git a/dom/webidl/SpeechSynthesisVoice.webidl b/dom/webidl/SpeechSynthesisVoice.webidl index 39ea6964d0fc..a457b9593bc9 100644 --- a/dom/webidl/SpeechSynthesisVoice.webidl +++ b/dom/webidl/SpeechSynthesisVoice.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="media.webspeech.synth.enabled"] +[Pref="media.webspeech.synth.enabled", + Exposed=Window] interface SpeechSynthesisVoice { readonly attribute DOMString voiceURI; readonly attribute DOMString name; diff --git a/dom/webidl/StaticRange.webidl b/dom/webidl/StaticRange.webidl index d65e4d30926b..5a61b8f87b60 100644 --- a/dom/webidl/StaticRange.webidl +++ b/dom/webidl/StaticRange.webidl @@ -11,6 +11,7 @@ */ // Currently, StaticRange cannot be created from web apps. +[Exposed=Window] interface StaticRange : AbstractRange { // And no additional functions/properties. }; diff --git a/dom/webidl/StereoPannerNode.webidl b/dom/webidl/StereoPannerNode.webidl index 323fa95df188..d1e8f17c351a 100644 --- a/dom/webidl/StereoPannerNode.webidl +++ b/dom/webidl/StereoPannerNode.webidl @@ -14,7 +14,8 @@ dictionary StereoPannerOptions : AudioNodeOptions { float pan = 0; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface StereoPannerNode : AudioNode { [Throws] constructor(BaseAudioContext context, diff --git a/dom/webidl/Storage.webidl b/dom/webidl/Storage.webidl index 8d1d88573771..56e76ff38af8 100644 --- a/dom/webidl/Storage.webidl +++ b/dom/webidl/Storage.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface Storage { [Throws, NeedsSubjectPrincipal] readonly attribute unsigned long length; diff --git a/dom/webidl/StorageEvent.webidl b/dom/webidl/StorageEvent.webidl index 45cab9245786..7cab2e5f4b9e 100644 --- a/dom/webidl/StorageEvent.webidl +++ b/dom/webidl/StorageEvent.webidl @@ -10,6 +10,7 @@ * Event sent to a window when a storage area changes. */ +[Exposed=Window] interface StorageEvent : Event { constructor(DOMString type, optional StorageEventInit eventInitDict = {}); diff --git a/dom/webidl/StyleRuleChangeEvent.webidl b/dom/webidl/StyleRuleChangeEvent.webidl index 83399fcac18b..7937e51fb9ab 100644 --- a/dom/webidl/StyleRuleChangeEvent.webidl +++ b/dom/webidl/StyleRuleChangeEvent.webidl @@ -3,7 +3,8 @@ * 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 StyleRuleChangeEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/StyleSheet.webidl b/dom/webidl/StyleSheet.webidl index 049f3d9d0791..513b80f56d8b 100644 --- a/dom/webidl/StyleSheet.webidl +++ b/dom/webidl/StyleSheet.webidl @@ -7,6 +7,7 @@ * http://dev.w3.org/csswg/cssom/ */ +[Exposed=Window] interface StyleSheet { [Constant] readonly attribute DOMString type; diff --git a/dom/webidl/StyleSheetApplicableStateChangeEvent.webidl b/dom/webidl/StyleSheetApplicableStateChangeEvent.webidl index 286ee26aca08..82714bad0090 100644 --- a/dom/webidl/StyleSheetApplicableStateChangeEvent.webidl +++ b/dom/webidl/StyleSheetApplicableStateChangeEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface StyleSheetApplicableStateChangeEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/StyleSheetChangeEvent.webidl b/dom/webidl/StyleSheetChangeEvent.webidl index f1d8f1bd5bf7..1e6b9d65f1b0 100644 --- a/dom/webidl/StyleSheetChangeEvent.webidl +++ b/dom/webidl/StyleSheetChangeEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface StyleSheetChangeEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/StyleSheetList.webidl b/dom/webidl/StyleSheetList.webidl index e6091ac296eb..b9a9740938f7 100644 --- a/dom/webidl/StyleSheetList.webidl +++ b/dom/webidl/StyleSheetList.webidl @@ -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 StyleSheetList { readonly attribute unsigned long length; getter StyleSheet? item(unsigned long index); diff --git a/dom/webidl/SubtleCrypto.webidl b/dom/webidl/SubtleCrypto.webidl index e0eae2115996..3049fd6cce3c 100644 --- a/dom/webidl/SubtleCrypto.webidl +++ b/dom/webidl/SubtleCrypto.webidl @@ -152,7 +152,8 @@ dictionary JsonWebKey { /***** The Main API *****/ -[Serializable] +[Serializable, + Exposed=Window] interface CryptoKey { readonly attribute KeyType type; readonly attribute boolean extractable; diff --git a/dom/webidl/TCPSocket.webidl b/dom/webidl/TCPSocket.webidl index defd6ecea909..9fbae485c684 100644 --- a/dom/webidl/TCPSocket.webidl +++ b/dom/webidl/TCPSocket.webidl @@ -27,7 +27,8 @@ enum TCPReadyState { "closed", }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface LegacyMozTCPSocket { /** * Legacy constructor for API compatibility. diff --git a/dom/webidl/TestFunctions.webidl b/dom/webidl/TestFunctions.webidl index 4e3f50ce0602..0e596c427760 100644 --- a/dom/webidl/TestFunctions.webidl +++ b/dom/webidl/TestFunctions.webidl @@ -8,11 +8,13 @@ callback PromiseReturner = Promise(); -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface WrapperCachedNonISupportsTestInterface { }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestFunctions { constructor(); diff --git a/dom/webidl/TestInterfaceJS.webidl b/dom/webidl/TestInterfaceJS.webidl index fc5e42f0245c..7bbb7f4e8d94 100644 --- a/dom/webidl/TestInterfaceJS.webidl +++ b/dom/webidl/TestInterfaceJS.webidl @@ -10,7 +10,8 @@ dictionary TestInterfaceJSUnionableDictionary { }; [JSImplementation="@mozilla.org/dom/test-interface-js;1", - Pref="dom.expose_test_interfaces"] + Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceJS : EventTarget { [Throws] constructor(optional any anyArg, optional object objectArg, diff --git a/dom/webidl/TestInterfaceJSMaplikeSetlikeIterable.webidl b/dom/webidl/TestInterfaceJSMaplikeSetlikeIterable.webidl index 9a9792904d1d..5141b2cb6bd6 100644 --- a/dom/webidl/TestInterfaceJSMaplikeSetlikeIterable.webidl +++ b/dom/webidl/TestInterfaceJSMaplikeSetlikeIterable.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceMaplike { [Throws] constructor(); @@ -16,7 +17,8 @@ interface TestInterfaceMaplike { boolean hasInternal(DOMString aKey); }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceMaplikeObject { [Throws] constructor(); @@ -29,7 +31,8 @@ interface TestInterfaceMaplikeObject { }; [Pref="dom.expose_test_interfaces", - JSImplementation="@mozilla.org/dom/test-interface-js-maplike;1"] + JSImplementation="@mozilla.org/dom/test-interface-js-maplike;1", + Exposed=Window] interface TestInterfaceJSMaplike { [Throws] constructor(); @@ -40,7 +43,8 @@ interface TestInterfaceJSMaplike { boolean deleteInternal(DOMString aKey); }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceSetlike { [Throws] constructor(); @@ -48,7 +52,8 @@ interface TestInterfaceSetlike { setlike; }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceSetlikeNode { [Throws] constructor(); @@ -56,7 +61,8 @@ interface TestInterfaceSetlikeNode { setlike; }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceIterableSingle { [Throws] constructor(); @@ -66,7 +72,8 @@ interface TestInterfaceIterableSingle { readonly attribute unsigned long length; }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceIterableDouble { [Throws] constructor(); @@ -74,7 +81,8 @@ interface TestInterfaceIterableDouble { iterable; }; -[Pref="dom.expose_test_interfaces"] +[Pref="dom.expose_test_interfaces", + Exposed=Window] interface TestInterfaceIterableDoubleUnion { [Throws] constructor(); diff --git a/dom/webidl/Text.webidl b/dom/webidl/Text.webidl index c7e1ce25e942..3235857370e7 100644 --- a/dom/webidl/Text.webidl +++ b/dom/webidl/Text.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface Text : CharacterData { [Throws] constructor(optional DOMString data = ""); diff --git a/dom/webidl/TextClause.webidl b/dom/webidl/TextClause.webidl index 2baeeb2d7856..9ed1c7184365 100644 --- a/dom/webidl/TextClause.webidl +++ b/dom/webidl/TextClause.webidl @@ -4,7 +4,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface TextClause { // The start offset of TextClause diff --git a/dom/webidl/TextTrack.webidl b/dom/webidl/TextTrack.webidl index 442a1667f199..13d468bd8cd5 100644 --- a/dom/webidl/TextTrack.webidl +++ b/dom/webidl/TextTrack.webidl @@ -21,6 +21,7 @@ enum TextTrackMode { "showing" }; +[Exposed=Window] interface TextTrack : EventTarget { readonly attribute TextTrackKind kind; readonly attribute DOMString label; diff --git a/dom/webidl/TextTrackCue.webidl b/dom/webidl/TextTrackCue.webidl index 2dc242dd1670..444d470bbdf8 100644 --- a/dom/webidl/TextTrackCue.webidl +++ b/dom/webidl/TextTrackCue.webidl @@ -7,6 +7,7 @@ * https://html.spec.whatwg.org/#texttrackcue */ +[Exposed=Window] interface TextTrackCue : EventTarget { readonly attribute TextTrack? track; diff --git a/dom/webidl/TextTrackCueList.webidl b/dom/webidl/TextTrackCueList.webidl index 0854004bdb86..b9f82c754922 100644 --- a/dom/webidl/TextTrackCueList.webidl +++ b/dom/webidl/TextTrackCueList.webidl @@ -7,6 +7,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/#texttrackcuelist */ +[Exposed=Window] interface TextTrackCueList { readonly attribute unsigned long length; getter VTTCue (unsigned long index); diff --git a/dom/webidl/TextTrackList.webidl b/dom/webidl/TextTrackList.webidl index 1150871e3a76..e46208d6cb84 100644 --- a/dom/webidl/TextTrackList.webidl +++ b/dom/webidl/TextTrackList.webidl @@ -7,6 +7,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/#texttracklist */ +[Exposed=Window] interface TextTrackList : EventTarget { readonly attribute unsigned long length; getter TextTrack (unsigned long index); diff --git a/dom/webidl/TimeEvent.webidl b/dom/webidl/TimeEvent.webidl index 8bbe4db53fa1..9e97d4b668de 100644 --- a/dom/webidl/TimeEvent.webidl +++ b/dom/webidl/TimeEvent.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface TimeEvent : Event { readonly attribute long detail; diff --git a/dom/webidl/TimeRanges.webidl b/dom/webidl/TimeRanges.webidl index 9f9b5270b1bb..f09be7c168ea 100644 --- a/dom/webidl/TimeRanges.webidl +++ b/dom/webidl/TimeRanges.webidl @@ -11,6 +11,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface TimeRanges { readonly attribute unsigned long length; diff --git a/dom/webidl/Touch.webidl b/dom/webidl/Touch.webidl index 226d7085c246..91ea3b1990b9 100644 --- a/dom/webidl/Touch.webidl +++ b/dom/webidl/Touch.webidl @@ -25,7 +25,8 @@ dictionary TouchInit { float force = 0; }; -[Func="mozilla::dom::Touch::PrefEnabled"] +[Func="mozilla::dom::Touch::PrefEnabled", + Exposed=Window] interface Touch { constructor(TouchInit touchInitDict); diff --git a/dom/webidl/TouchEvent.webidl b/dom/webidl/TouchEvent.webidl index f52e0394397f..9e8cd1154612 100644 --- a/dom/webidl/TouchEvent.webidl +++ b/dom/webidl/TouchEvent.webidl @@ -10,7 +10,8 @@ dictionary TouchEventInit : EventModifierInit { sequence changedTouches = []; }; -[Func="mozilla::dom::TouchEvent::PrefEnabled"] +[Func="mozilla::dom::TouchEvent::PrefEnabled", + Exposed=Window] interface TouchEvent : UIEvent { constructor(DOMString type, optional TouchEventInit eventInitDict = {}); diff --git a/dom/webidl/TouchList.webidl b/dom/webidl/TouchList.webidl index 562a7fb4fcb3..a6fc8f5e3d9b 100644 --- a/dom/webidl/TouchList.webidl +++ b/dom/webidl/TouchList.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Func="mozilla::dom::TouchList::PrefEnabled"] +[Func="mozilla::dom::TouchList::PrefEnabled", + Exposed=Window] interface TouchList { [Pure] readonly attribute unsigned long length; diff --git a/dom/webidl/TrackEvent.webidl b/dom/webidl/TrackEvent.webidl index 5900a4a25c9b..730c2b81480d 100644 --- a/dom/webidl/TrackEvent.webidl +++ b/dom/webidl/TrackEvent.webidl @@ -7,6 +7,7 @@ * http://www.whatwg.org/specs/web-apps/current-work/#trackevent */ +[Exposed=Window] interface TrackEvent : Event { constructor(DOMString type, optional TrackEventInit eventInitDict = {}); diff --git a/dom/webidl/TransceiverImpl.webidl b/dom/webidl/TransceiverImpl.webidl index 3910c4297ed7..7893af2c1eee 100644 --- a/dom/webidl/TransceiverImpl.webidl +++ b/dom/webidl/TransceiverImpl.webidl @@ -14,7 +14,8 @@ */ // Constructed by PeerConnectionImpl::CreateTransceiverImpl. -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface TransceiverImpl { MediaStreamTrack getReceiveTrack(); void setReceiveTrackMuted(boolean muted); diff --git a/dom/webidl/TransitionEvent.webidl b/dom/webidl/TransitionEvent.webidl index f25d61dc0cc4..b609e414d336 100644 --- a/dom/webidl/TransitionEvent.webidl +++ b/dom/webidl/TransitionEvent.webidl @@ -11,6 +11,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface TransitionEvent : Event { constructor(DOMString type, optional TransitionEventInit eventInitDict = {}); diff --git a/dom/webidl/TreeColumn.webidl b/dom/webidl/TreeColumn.webidl index 7709e1d7fe2e..3a4f50d094fb 100644 --- a/dom/webidl/TreeColumn.webidl +++ b/dom/webidl/TreeColumn.webidl @@ -2,7 +2,8 @@ * 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/. */ -[Func="IsChromeOrXBL"] +[Func="IsChromeOrXBL", + Exposed=Window] interface TreeColumn { readonly attribute Element element; diff --git a/dom/webidl/TreeColumns.webidl b/dom/webidl/TreeColumns.webidl index 3814d59b46b8..2b9978f0120e 100644 --- a/dom/webidl/TreeColumns.webidl +++ b/dom/webidl/TreeColumns.webidl @@ -2,7 +2,8 @@ * 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/. */ -[Func="IsChromeOrXBL"] +[Func="IsChromeOrXBL", +Exposed=Window] interface TreeColumns { /** * The tree widget for these columns. diff --git a/dom/webidl/TreeContentView.webidl b/dom/webidl/TreeContentView.webidl index d540c408a2dc..2f05561fc4f0 100644 --- a/dom/webidl/TreeContentView.webidl +++ b/dom/webidl/TreeContentView.webidl @@ -3,7 +3,8 @@ * 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/. */ -[Func="IsChromeOrXBL"] +[Func="IsChromeOrXBL", + Exposed=Window] interface TreeContentView { /** diff --git a/dom/webidl/TreeWalker.webidl b/dom/webidl/TreeWalker.webidl index 2cd302f00789..a94224ef7b89 100644 --- a/dom/webidl/TreeWalker.webidl +++ b/dom/webidl/TreeWalker.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface TreeWalker { [Constant] readonly attribute Node root; diff --git a/dom/webidl/U2F.webidl b/dom/webidl/U2F.webidl index 55ff2fa922c8..c5e614ab1472 100644 --- a/dom/webidl/U2F.webidl +++ b/dom/webidl/U2F.webidl @@ -66,7 +66,8 @@ dictionary SignResponse { callback U2FRegisterCallback = void(RegisterResponse response); callback U2FSignCallback = void(SignResponse response); -[SecureContext, Pref="security.webauth.u2f"] +[SecureContext, Pref="security.webauth.u2f", + Exposed=Window] interface U2F { // These enumerations are defined in the FIDO U2F Javascript API under the // interface "ErrorCode" as constant integers, and also in the U2F.cpp file. diff --git a/dom/webidl/UDPMessageEvent.webidl b/dom/webidl/UDPMessageEvent.webidl index 100b2921c3c4..22ffc83f8901 100644 --- a/dom/webidl/UDPMessageEvent.webidl +++ b/dom/webidl/UDPMessageEvent.webidl @@ -9,7 +9,8 @@ //Bug 1056444: This interface should be removed after UDPSocket.input/UDPSocket.output are ready. [Pref="dom.udpsocket.enabled", - ChromeOnly] + ChromeOnly, + Exposed=Window] interface UDPMessageEvent : Event { constructor(DOMString type, optional UDPMessageEventInit eventInitDict = {}); diff --git a/dom/webidl/UDPSocket.webidl b/dom/webidl/UDPSocket.webidl index dcd027c1f095..4d6119b1d51b 100644 --- a/dom/webidl/UDPSocket.webidl +++ b/dom/webidl/UDPSocket.webidl @@ -18,7 +18,8 @@ dictionary UDPOptions { }; [Pref="dom.udpsocket.enabled", - ChromeOnly] + ChromeOnly, + Exposed=Window] interface UDPSocket : EventTarget { [Throws] constructor(optional UDPOptions options = {}); diff --git a/dom/webidl/UIEvent.webidl b/dom/webidl/UIEvent.webidl index c9621398a015..a52f9a09c9c9 100644 --- a/dom/webidl/UIEvent.webidl +++ b/dom/webidl/UIEvent.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface UIEvent : Event { constructor(DOMString type, optional UIEventInit eventInitDict = {}); diff --git a/dom/webidl/UserProximityEvent.webidl b/dom/webidl/UserProximityEvent.webidl index d1910f10a517..67ae1ceef2b6 100644 --- a/dom/webidl/UserProximityEvent.webidl +++ b/dom/webidl/UserProximityEvent.webidl @@ -4,7 +4,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[Pref="device.sensors.proximity.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled"] +[Pref="device.sensors.proximity.enabled", Func="nsGlobalWindowInner::DeviceSensorsEnabled", + Exposed=Window] interface UserProximityEvent : Event { constructor(DOMString type, diff --git a/dom/webidl/VRDisplay.webidl b/dom/webidl/VRDisplay.webidl index 0484e5c091df..104b62c67e87 100644 --- a/dom/webidl/VRDisplay.webidl +++ b/dom/webidl/VRDisplay.webidl @@ -9,7 +9,8 @@ enum VREye { }; [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VRFieldOfView { readonly attribute double upDegrees; readonly attribute double rightDegrees; @@ -49,7 +50,8 @@ dictionary VRLayer { * These are expected to be static per-device/per-user. */ [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VRDisplayCapabilities { /** * hasPosition is true if the VRDisplay is capable of tracking its position. @@ -90,7 +92,8 @@ interface VRDisplayCapabilities { * that support room-scale experiences. */ [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VRStageParameters { /** * A 16-element array containing the components of a column-major 4x4 @@ -115,7 +118,8 @@ interface VRStageParameters { }; [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VRPose { /** @@ -135,7 +139,8 @@ interface VRPose }; [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VRFrameData { constructor(); @@ -151,7 +156,8 @@ interface VRFrameData { }; [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VREyeParameters { /** * offset is a 3-component vector representing an offset to @@ -174,7 +180,8 @@ interface VREyeParameters { }; [Pref="dom.vr.enabled", - HeaderFile="mozilla/dom/VRDisplay.h"] + HeaderFile="mozilla/dom/VRDisplay.h", + Exposed=Window] interface VRDisplay : EventTarget { /** * presentingGroups is a bitmask indicating which VR session groups diff --git a/dom/webidl/VRDisplayEvent.webidl b/dom/webidl/VRDisplayEvent.webidl index f7850881a22e..320bda57c4a8 100644 --- a/dom/webidl/VRDisplayEvent.webidl +++ b/dom/webidl/VRDisplayEvent.webidl @@ -15,7 +15,8 @@ dictionary VRDisplayEventInit : EventInit { VRDisplayEventReason reason; }; -[Pref="dom.vr.enabled"] +[Pref="dom.vr.enabled", + Exposed=Window] interface VRDisplayEvent : Event { constructor(DOMString type, VRDisplayEventInit eventInitDict); diff --git a/dom/webidl/VRServiceTest.webidl b/dom/webidl/VRServiceTest.webidl index ac1c42e9ede0..f27f072e6bf4 100644 --- a/dom/webidl/VRServiceTest.webidl +++ b/dom/webidl/VRServiceTest.webidl @@ -6,7 +6,8 @@ */ [Pref="dom.vr.puppet.enabled", - HeaderFile="mozilla/dom/VRServiceTest.h"] + HeaderFile="mozilla/dom/VRServiceTest.h", + Exposed=Window] interface VRMockDisplay { void create(); attribute boolean capPosition; @@ -35,7 +36,8 @@ interface VRMockDisplay { }; [Pref="dom.vr.puppet.enabled", - HeaderFile="mozilla/dom/VRServiceTest.h"] + HeaderFile="mozilla/dom/VRServiceTest.h", + Exposed=Window] interface VRMockController { void create(); void clear(); @@ -57,7 +59,8 @@ interface VRMockController { }; [Pref="dom.vr.puppet.enabled", - HeaderFile="mozilla/dom/VRServiceTest.h"] + HeaderFile="mozilla/dom/VRServiceTest.h", + Exposed=Window] interface VRServiceTest { VRMockDisplay getVRDisplay(); [Throws] VRMockController getVRController(unsigned long controllerIdx); diff --git a/dom/webidl/VTTCue.webidl b/dom/webidl/VTTCue.webidl index bfc895ee675a..92855ac77875 100644 --- a/dom/webidl/VTTCue.webidl +++ b/dom/webidl/VTTCue.webidl @@ -36,6 +36,7 @@ enum DirectionSetting { "lr" }; +[Exposed=Window] interface VTTCue : TextTrackCue { [Throws] constructor(double startTime, double endTime, DOMString text); diff --git a/dom/webidl/VTTRegion.webidl b/dom/webidl/VTTRegion.webidl index c434ffbc7fd1..359e5d9a8b74 100644 --- a/dom/webidl/VTTRegion.webidl +++ b/dom/webidl/VTTRegion.webidl @@ -12,7 +12,8 @@ enum ScrollSetting { "up" }; -[Pref="media.webvtt.regions.enabled"] +[Pref="media.webvtt.regions.enabled", + Exposed=Window] interface VTTRegion { [Throws] constructor(); diff --git a/dom/webidl/ValidityState.webidl b/dom/webidl/ValidityState.webidl index 7e99870e9ec3..d9ca079e3ae6 100644 --- a/dom/webidl/ValidityState.webidl +++ b/dom/webidl/ValidityState.webidl @@ -10,6 +10,7 @@ * and create derivative works of this document. */ +[Exposed=Window] interface ValidityState { readonly attribute boolean valueMissing; readonly attribute boolean typeMismatch; diff --git a/dom/webidl/VideoPlaybackQuality.webidl b/dom/webidl/VideoPlaybackQuality.webidl index a65024ae38ed..7201596aad22 100644 --- a/dom/webidl/VideoPlaybackQuality.webidl +++ b/dom/webidl/VideoPlaybackQuality.webidl @@ -10,7 +10,8 @@ * liability, trademark and document use rules apply. */ -[Pref="media.mediasource.enabled"] +[Pref="media.mediasource.enabled", + Exposed=Window] interface VideoPlaybackQuality { readonly attribute DOMHighResTimeStamp creationTime; readonly attribute unsigned long totalVideoFrames; diff --git a/dom/webidl/VideoTrack.webidl b/dom/webidl/VideoTrack.webidl index 7f5974f21204..6c628cbced07 100644 --- a/dom/webidl/VideoTrack.webidl +++ b/dom/webidl/VideoTrack.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/#videotrack */ -[Pref="media.track.enabled"] +[Pref="media.track.enabled", + Exposed=Window] interface VideoTrack { readonly attribute DOMString id; readonly attribute DOMString kind; diff --git a/dom/webidl/VideoTrackList.webidl b/dom/webidl/VideoTrackList.webidl index 144120226c4c..3506af57794a 100644 --- a/dom/webidl/VideoTrackList.webidl +++ b/dom/webidl/VideoTrackList.webidl @@ -7,7 +7,8 @@ * http://www.whatwg.org/specs/web-apps/current-work/#videotracklist */ -[Pref="media.track.enabled"] +[Pref="media.track.enabled", + Exposed=Window] interface VideoTrackList : EventTarget { readonly attribute unsigned long length; getter VideoTrack (unsigned long index); diff --git a/dom/webidl/VisualViewport.webidl b/dom/webidl/VisualViewport.webidl index 88a103e7eb3f..cacda509b671 100644 --- a/dom/webidl/VisualViewport.webidl +++ b/dom/webidl/VisualViewport.webidl @@ -7,6 +7,7 @@ * https://wicg.github.io/visual-viewport/#the-visualviewport-interface */ +[Exposed=Window] interface VisualViewport : EventTarget { readonly attribute double offsetLeft; readonly attribute double offsetTop; diff --git a/dom/webidl/WaveShaperNode.webidl b/dom/webidl/WaveShaperNode.webidl index 8ffe1479eb41..20198ffe681e 100644 --- a/dom/webidl/WaveShaperNode.webidl +++ b/dom/webidl/WaveShaperNode.webidl @@ -21,7 +21,8 @@ dictionary WaveShaperOptions : AudioNodeOptions { OverSampleType oversample = "none"; }; -[Pref="dom.webaudio.enabled"] +[Pref="dom.webaudio.enabled", + Exposed=Window] interface WaveShaperNode : AudioNode { [Throws] constructor(BaseAudioContext context, diff --git a/dom/webidl/WebAuthentication.webidl b/dom/webidl/WebAuthentication.webidl index 22fa1d8e36dd..2876475a4705 100644 --- a/dom/webidl/WebAuthentication.webidl +++ b/dom/webidl/WebAuthentication.webidl @@ -9,7 +9,8 @@ /***** Interfaces to Data *****/ -[SecureContext, Pref="security.webauth.webauthn"] +[SecureContext, Pref="security.webauth.webauthn", + Exposed=Window] interface PublicKeyCredential : Credential { [SameObject] readonly attribute ArrayBuffer rawId; [SameObject] readonly attribute AuthenticatorResponse response; @@ -23,17 +24,20 @@ partial interface PublicKeyCredential { static Promise isExternalCTAP2SecurityKeySupported(); }; -[SecureContext, Pref="security.webauth.webauthn"] +[SecureContext, Pref="security.webauth.webauthn", + Exposed=Window] interface AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer clientDataJSON; }; -[SecureContext, Pref="security.webauth.webauthn"] +[SecureContext, Pref="security.webauth.webauthn", + Exposed=Window] interface AuthenticatorAttestationResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer attestationObject; }; -[SecureContext, Pref="security.webauth.webauthn"] +[SecureContext, Pref="security.webauth.webauthn", + Exposed=Window] interface AuthenticatorAssertionResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer authenticatorData; [SameObject] readonly attribute ArrayBuffer signature; diff --git a/dom/webidl/WebGL2RenderingContext.webidl b/dom/webidl/WebGL2RenderingContext.webidl index a4c5e68d1f5e..5aa6fa0b5a6e 100644 --- a/dom/webidl/WebGL2RenderingContext.webidl +++ b/dom/webidl/WebGL2RenderingContext.webidl @@ -10,15 +10,18 @@ typedef long long GLint64; typedef unsigned long long GLuint64; -[Pref="webgl.enable-webgl2"] +[Pref="webgl.enable-webgl2", + Exposed=Window] interface WebGLSampler { }; -[Pref="webgl.enable-webgl2"] +[Pref="webgl.enable-webgl2", + Exposed=Window] interface WebGLSync { }; -[Pref="webgl.enable-webgl2"] +[Pref="webgl.enable-webgl2", + Exposed=Window] interface WebGLTransformFeedback { }; @@ -26,7 +29,8 @@ typedef (Uint32Array or sequence) Uint32List; // WebGL2 spec has this as an empty interface that pulls in everything // via WebGL2RenderingContextBase. -[Pref="webgl.enable-webgl2"] +[Pref="webgl.enable-webgl2", + Exposed=Window] interface WebGL2RenderingContext { }; @@ -696,11 +700,13 @@ interface mixin WebGL2RenderingContextBase WebGL2RenderingContext includes WebGLRenderingContextBase; WebGL2RenderingContext includes WebGL2RenderingContextBase; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_color_buffer_float { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OVR_multiview2 { const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630; const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632; diff --git a/dom/webidl/WebGLRenderingContext.webidl b/dom/webidl/WebGLRenderingContext.webidl index 708032a88f0b..716dae2a5855 100644 --- a/dom/webidl/WebGLRenderingContext.webidl +++ b/dom/webidl/WebGLRenderingContext.webidl @@ -87,6 +87,7 @@ interface WebGLTexture { interface WebGLUniformLocation { }; +[Exposed=Window] interface WebGLVertexArrayObject { }; @@ -817,7 +818,8 @@ partial interface WebGLRenderingContext { //////////////////////////////////////// // specific extension interfaces -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_texture_compression_bptc { const GLenum COMPRESSED_RGBA_BPTC_UNORM_EXT = 0x8E8C; const GLenum COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 0x8E8D; @@ -825,7 +827,8 @@ interface EXT_texture_compression_bptc { const GLenum COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 0x8E8F; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_texture_compression_rgtc { const GLenum COMPRESSED_RED_RGTC1_EXT = 0x8DBB; const GLenum COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC; @@ -833,7 +836,8 @@ interface EXT_texture_compression_rgtc { const GLenum COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_compressed_texture_s3tc { const GLenum COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0; @@ -842,7 +846,8 @@ interface WEBGL_compressed_texture_s3tc const GLenum COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_compressed_texture_s3tc_srgb { /* Compressed Texture Formats */ const GLenum COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C; @@ -851,7 +856,8 @@ interface WEBGL_compressed_texture_s3tc_srgb { const GLenum COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_compressed_texture_astc { /* Compressed Texture Format */ const GLenum COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0; @@ -888,7 +894,8 @@ interface WEBGL_compressed_texture_astc { sequence? getSupportedProfiles(); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_compressed_texture_etc { const GLenum COMPRESSED_R11_EAC = 0x9270; @@ -903,13 +910,15 @@ interface WEBGL_compressed_texture_etc const GLenum COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_compressed_texture_etc1 { const GLenum COMPRESSED_RGB_ETC1_WEBGL = 0x8D64; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_compressed_texture_pvrtc { const GLenum COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00; @@ -918,49 +927,57 @@ interface WEBGL_compressed_texture_pvrtc const GLenum COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_debug_renderer_info { const GLenum UNMASKED_VENDOR_WEBGL = 0x9245; const GLenum UNMASKED_RENDERER_WEBGL = 0x9246; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_debug_shaders { DOMString getTranslatedShaderSource(WebGLShader shader); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_depth_texture { const GLenum UNSIGNED_INT_24_8_WEBGL = 0x84FA; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_element_index_uint { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_frag_depth { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_lose_context { void loseContext(); void restoreContext(); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_texture_filter_anisotropic { const GLenum TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE; const GLenum MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_sRGB { const GLenum SRGB_EXT = 0x8C40; @@ -969,17 +986,20 @@ interface EXT_sRGB const GLenum FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_standard_derivatives { const GLenum FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_texture_float { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_draw_buffers { const GLenum COLOR_ATTACHMENT0_WEBGL = 0x8CE0; const GLenum COLOR_ATTACHMENT1_WEBGL = 0x8CE1; @@ -1021,28 +1041,33 @@ interface WEBGL_draw_buffers { void drawBuffersWEBGL(sequence buffers); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_texture_float_linear { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_shader_texture_lod { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_texture_half_float { const GLenum HALF_FLOAT_OES = 0x8D61; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_texture_half_float_linear { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_color_buffer_float { const GLenum RGBA32F_EXT = 0x8814; @@ -1051,7 +1076,8 @@ interface WEBGL_color_buffer_float const GLenum UNSIGNED_NORMALIZED_EXT = 0x8C17; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_color_buffer_half_float { const GLenum RGBA16F_EXT = 0x881A; @@ -1060,7 +1086,8 @@ interface EXT_color_buffer_half_float const GLenum UNSIGNED_NORMALIZED_EXT = 0x8C17; }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_vertex_array_object { const GLenum VERTEX_ARRAY_BINDING_OES = 0x85B5; @@ -1070,7 +1097,8 @@ interface OES_vertex_array_object { void bindVertexArrayOES(WebGLVertexArrayObject? arrayObject); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface ANGLE_instanced_arrays { const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE; @@ -1079,16 +1107,19 @@ interface ANGLE_instanced_arrays { void vertexAttribDivisorANGLE(GLuint index, GLuint divisor); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_blend_minmax { const GLenum MIN_EXT = 0x8007; const GLenum MAX_EXT = 0x8008; }; +[Exposed=Window] interface WebGLQuery { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_disjoint_timer_query { const GLenum QUERY_COUNTER_BITS_EXT = 0x8864; const GLenum CURRENT_QUERY_EXT = 0x8865; @@ -1108,7 +1139,8 @@ interface EXT_disjoint_timer_query { any getQueryObjectEXT(WebGLQuery query, GLenum pname); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface MOZ_debug { const GLenum EXTENSIONS = 0x1F03; @@ -1120,15 +1152,18 @@ interface MOZ_debug { any getParameter(GLenum pname); }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface EXT_float_blend { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface OES_fbo_render_mipmap { }; -[NoInterfaceObject] +[NoInterfaceObject, + Exposed=Window] interface WEBGL_explicit_present { void present(); }; diff --git a/dom/webidl/WebGPU.webidl b/dom/webidl/WebGPU.webidl index 8f3821314b48..e7dd005a4db4 100644 --- a/dom/webidl/WebGPU.webidl +++ b/dom/webidl/WebGPU.webidl @@ -20,7 +20,8 @@ enum WebGPULogEntryType { "recoverable-out-of-memory", }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPULogEntry { readonly attribute WebGPULogEntryType type; readonly attribute any obj; @@ -43,7 +44,8 @@ callback WebGPULogCallback = void (WebGPULogEntry error); // Buffer typedef u32 WebGPUBufferUsageFlags; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBufferUsage { const u32 NONE = 0; const u32 MAP_READ = 1; @@ -61,7 +63,8 @@ dictionary WebGPUBufferDescriptor { WebGPUBufferUsageFlags usage; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBuffer { readonly attribute ArrayBuffer? mapping; void unmap(); @@ -72,13 +75,15 @@ dictionary WebGPUTextureViewDescriptor { // TODO Investigate what goes in there. }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUTextureView { }; // Texture typedef u32 WebGPUTextureDimensionEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUTextureDimension { const u32 e1D = 0; const u32 e2D = 1; @@ -87,7 +92,8 @@ interface WebGPUTextureDimension { }; typedef u32 WebGPUTextureFormatEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUTextureFormat { const u32 R8_G8_B8_A8_UNORM = 0; const u32 R8_G8_B8_A8_UINT = 1; @@ -97,7 +103,8 @@ interface WebGPUTextureFormat { }; typedef u32 WebGPUTextureUsageFlags; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUTextureUsage { const u32 NONE = 0; const u32 TRANSFER_SRC = 1; @@ -118,14 +125,16 @@ dictionary WebGPUTextureDescriptor { WebGPUTextureUsageFlags usage; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUTexture { WebGPUTextureView createTextureView(optional WebGPUTextureViewDescriptor desc = {}); }; // Sampler typedef u32 WebGPUFilterModeEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUFilterMode { const u32 NEAREST = 0; const u32 LINEAR = 1; @@ -137,7 +146,8 @@ dictionary WebGPUSamplerDescriptor { WebGPUFilterModeEnum mipmapFilter; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUSampler { }; @@ -147,7 +157,8 @@ interface WebGPUSampler { // BindGroupLayout typedef u32 WebGPUShaderStageFlags; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUShaderStageBit { const u32 NONE = 0; const u32 VERTEX = 1; @@ -156,7 +167,8 @@ interface WebGPUShaderStageBit { }; typedef u32 WebGPUBindingTypeEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBindingType { const u32 UNIFORM_BUFFER = 0; const u32 SAMPLER = 1; @@ -176,7 +188,8 @@ dictionary WebGPUBindGroupLayoutDescriptor { sequence bindingTypes; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBindGroupLayout { }; @@ -185,7 +198,8 @@ dictionary WebGPUPipelineLayoutDescriptor { sequence bindGroupLayouts; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUPipelineLayout { }; @@ -211,7 +225,8 @@ dictionary WebGPUBindGroupDescriptor { sequence bindings; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBindGroup { }; @@ -221,7 +236,8 @@ interface WebGPUBindGroup { // BlendState typedef u32 WebGPUBlendFactorEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBlendFactor { const u32 ZERO = 0; const u32 ONE = 1; @@ -239,7 +255,8 @@ interface WebGPUBlendFactor { }; typedef u32 WebGPUBlendOperationEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBlendOperation { const u32 ADD = 0; const u32 SUBTRACT = 1; @@ -249,7 +266,8 @@ interface WebGPUBlendOperation { }; typedef u32 WebGPUColorWriteFlags; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUColorWriteBits { const u32 NONE = 0; const u32 RED = 1; @@ -272,13 +290,15 @@ dictionary WebGPUBlendStateDescriptor { WebGPUColorWriteFlags writeMask; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUBlendState { }; // DepthStencilState typedef u32 WebGPUCompareFunctionEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUCompareFunction { const u32 NEVER = 0; const u32 LESS = 1; @@ -291,7 +311,8 @@ interface WebGPUCompareFunction { }; typedef u32 WebGPUStencilOperationEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUStencilOperation { const u32 KEEP = 0; const u32 ZERO = 1; @@ -321,20 +342,23 @@ dictionary WebGPUDepthStencilStateDescriptor { u32 stencilWriteMask; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUDepthStencilState { }; // InputState typedef u32 WebGPUIndexFormatEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUIndexFormat { const u32 UINT16 = 0; const u32 UINT32 = 1; }; typedef u32 WebGPUVertexFormatEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUVertexFormat { const u32 FLOAT_R32_G32_B32_A32 = 0; const u32 FLOAT_R32_G32_B32 = 1; @@ -344,7 +368,8 @@ interface WebGPUVertexFormat { }; typedef u32 WebGPUInputStepModeEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUInputStepMode { const u32 VERTEX = 0; const u32 INSTANCE = 1; @@ -370,7 +395,8 @@ dictionary WebGPUInputStateDescriptor { sequence inputs; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUInputState { }; @@ -379,7 +405,8 @@ dictionary WebGPUShaderModuleDescriptor { required ArrayBuffer code; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUShaderModule { }; @@ -389,13 +416,15 @@ dictionary WebGPUAttachmentStateDescriptor { // TODO other stuff like sample count etc. }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUAttachmentState { }; // Common stuff for ComputePipeline and RenderPipeline typedef u32 WebGPUShaderStageEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUShaderStage { const u32 VERTEX = 0; const u32 FRAGMENT = 1; @@ -418,13 +447,15 @@ dictionary WebGPUPipelineDescriptorBase { dictionary WebGPUComputePipelineDescriptor : WebGPUPipelineDescriptorBase { }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUComputePipeline { }; // WebGPURenderPipeline typedef u32 WebGPUPrimitiveTopologyEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUPrimitiveTopology { const u32 POINT_LIST = 0; const u32 LINE_LIST = 1; @@ -442,7 +473,8 @@ dictionary WebGPURenderPipelineDescriptor : WebGPUPipelineDescriptorBase { // TODO other properties }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPURenderPipeline { }; // **************************************************************************** @@ -450,14 +482,16 @@ interface WebGPURenderPipeline { // **************************************************************************** typedef u32 WebGPULoadOpEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPULoadOp { const u32 CLEAR = 0; const u32 LOAD = 1; }; typedef u32 WebGPUStoreOpEnum; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUStoreOp { const u32 STORE = 0; }; @@ -473,14 +507,16 @@ dictionary WebGPURenderPassDescriptor { WebGPURenderPassAttachmentDescriptor depthStencilAttachment; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUCommandBuffer { }; dictionary WebGPUCommandEncoderDescriptor { }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUCommandEncoder { WebGPUCommandBuffer finishEncoding(); @@ -531,14 +567,16 @@ interface WebGPUCommandEncoder { // **************************************************************************** // Fence -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUFence { boolean wait(double milliseconds); readonly attribute Promise promise; }; // Queue -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUQueue { void submit(sequence buffers); WebGPUFence insertFence(); @@ -552,7 +590,8 @@ dictionary WebGPUSwapChainDescriptor { u32 height; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUSwapChain { void configure(optional WebGPUSwapChainDescriptor descriptor = {}); WebGPUTexture getNextTexture(); @@ -574,7 +613,8 @@ dictionary WebGPULimits { }; // Device -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUDevice { readonly attribute WebGPUAdapter adapter; WebGPUExtensions extensions(); @@ -611,7 +651,8 @@ dictionary WebGPUDeviceDescriptor { // TODO are other things configurable like queues? }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPUAdapter { readonly attribute DOMString name; WebGPUExtensions extensions(); @@ -626,7 +667,8 @@ dictionary WebGPUAdapterDescriptor { WebGPUPowerPreference powerPreference; }; -[Pref="dom.webgpu.enable"] +[Pref="dom.webgpu.enable", + Exposed=Window] interface WebGPU { WebGPUAdapter getAdapter(optional WebGPUAdapterDescriptor desc = {}); }; diff --git a/dom/webidl/WebrtcDeprecated.webidl b/dom/webidl/WebrtcDeprecated.webidl index 077e303177cd..4b0fe1b51215 100644 --- a/dom/webidl/WebrtcDeprecated.webidl +++ b/dom/webidl/WebrtcDeprecated.webidl @@ -11,7 +11,8 @@ [Deprecated="WebrtcDeprecatedPrefix", Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtcicecandidate;1"] + JSImplementation="@mozilla.org/dom/rtcicecandidate;1", + Exposed=Window] interface mozRTCIceCandidate : RTCIceCandidate { [Throws] constructor(optional RTCIceCandidateInit candidateInitDict = {}); @@ -19,7 +20,8 @@ interface mozRTCIceCandidate : RTCIceCandidate { [Deprecated="WebrtcDeprecatedPrefix", Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/peerconnection;1"] + JSImplementation="@mozilla.org/dom/peerconnection;1", + Exposed=Window] interface mozRTCPeerConnection : RTCPeerConnection { [Throws] constructor(optional RTCConfiguration configuration = {}, @@ -28,7 +30,8 @@ interface mozRTCPeerConnection : RTCPeerConnection { [Deprecated="WebrtcDeprecatedPrefix", Pref="media.peerconnection.enabled", - JSImplementation="@mozilla.org/dom/rtcsessiondescription;1"] + JSImplementation="@mozilla.org/dom/rtcsessiondescription;1", + Exposed=Window] interface mozRTCSessionDescription : RTCSessionDescription { [Throws] constructor(optional RTCSessionDescriptionInit descriptionInitDict = {}); diff --git a/dom/webidl/WebrtcGlobalInformation.webidl b/dom/webidl/WebrtcGlobalInformation.webidl index 40bd990a28f3..dd93cf2de1ad 100644 --- a/dom/webidl/WebrtcGlobalInformation.webidl +++ b/dom/webidl/WebrtcGlobalInformation.webidl @@ -11,7 +11,7 @@ dictionary WebrtcGlobalStatisticsReport { callback WebrtcGlobalStatisticsCallback = void (WebrtcGlobalStatisticsReport reports); callback WebrtcGlobalLoggingCallback = void (sequence logMessages); -[ChromeOnly] +[ChromeOnly, Exposed=Window] namespace WebrtcGlobalInformation { [Throws] diff --git a/dom/webidl/WheelEvent.webidl b/dom/webidl/WheelEvent.webidl index 6a541b257165..64ece720df05 100644 --- a/dom/webidl/WheelEvent.webidl +++ b/dom/webidl/WheelEvent.webidl @@ -10,6 +10,7 @@ * liability, trademark and document use rules apply. */ +[Exposed=Window] interface WheelEvent : MouseEvent { constructor(DOMString type, optional WheelEventInit eventInitDict = {}); diff --git a/dom/webidl/Window.webidl b/dom/webidl/Window.webidl index d075ba053725..67db63a9fa98 100644 --- a/dom/webidl/Window.webidl +++ b/dom/webidl/Window.webidl @@ -26,7 +26,8 @@ interface nsIDOMWindowUtils; typedef OfflineResourceList ApplicationCache; // http://www.whatwg.org/specs/web-apps/current-work/ -[PrimaryGlobal, LegacyUnenumerableNamedProperties, NeedResolve] +[Global, LegacyUnenumerableNamedProperties, NeedResolve, + Exposed=Window] /*sealed*/ interface Window : EventTarget { // the current browsing context [Unforgeable, Constant, StoreInSlot, diff --git a/dom/webidl/WindowRoot.webidl b/dom/webidl/WindowRoot.webidl index 0ddb1a9fb685..71f0bff1dcbe 100644 --- a/dom/webidl/WindowRoot.webidl +++ b/dom/webidl/WindowRoot.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ -[ChromeOnly] +[ChromeOnly, + Exposed=Window] interface WindowRoot : EventTarget { }; diff --git a/dom/webidl/Worklet.webidl b/dom/webidl/Worklet.webidl index 0a8a742ab4fc..793ff63a03ad 100644 --- a/dom/webidl/Worklet.webidl +++ b/dom/webidl/Worklet.webidl @@ -7,7 +7,8 @@ * https://drafts.css-houdini.org/worklets/#idl-index */ -[Pref="dom.worklet.enabled"] +[Pref="dom.worklet.enabled", + Exposed=Window] interface Worklet { [NewObject, Throws, NeedsCallerType] Promise addModule(USVString moduleURL, optional WorkletOptions options = {}); diff --git a/dom/webidl/XMLDocument.webidl b/dom/webidl/XMLDocument.webidl index e631afec9085..5d89739bdb41 100644 --- a/dom/webidl/XMLDocument.webidl +++ b/dom/webidl/XMLDocument.webidl @@ -9,6 +9,7 @@ */ // http://dom.spec.whatwg.org/#xmldocument +[Exposed=Window] interface XMLDocument : Document {}; // http://www.whatwg.org/specs/web-apps/current-work/#xmldocument diff --git a/dom/webidl/XMLSerializer.webidl b/dom/webidl/XMLSerializer.webidl index 6893dad6b339..0e7e7655c229 100644 --- a/dom/webidl/XMLSerializer.webidl +++ b/dom/webidl/XMLSerializer.webidl @@ -8,6 +8,7 @@ interface OutputStream; +[Exposed=Window] interface XMLSerializer { constructor(); diff --git a/dom/webidl/XPathEvaluator.webidl b/dom/webidl/XPathEvaluator.webidl index b57a70ae3f17..0d658c1a65a0 100644 --- a/dom/webidl/XPathEvaluator.webidl +++ b/dom/webidl/XPathEvaluator.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface XPathEvaluator { constructor(); }; diff --git a/dom/webidl/XPathExpression.webidl b/dom/webidl/XPathExpression.webidl index 90bc603f82e1..4ccc76d6ad3c 100644 --- a/dom/webidl/XPathExpression.webidl +++ b/dom/webidl/XPathExpression.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] interface XPathExpression { // The result specifies a specific result object which may be reused and // returned by this method. If this is specified as null or it's not an diff --git a/dom/webidl/XPathNSResolver.webidl b/dom/webidl/XPathNSResolver.webidl index 6309ff38c1c6..1011f92e1fd9 100644 --- a/dom/webidl/XPathNSResolver.webidl +++ b/dom/webidl/XPathNSResolver.webidl @@ -4,6 +4,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ +[Exposed=Window] callback interface XPathNSResolver { DOMString? lookupNamespaceURI(DOMString? prefix); diff --git a/dom/webidl/XPathResult.webidl b/dom/webidl/XPathResult.webidl index d50063771d62..dbd8402f2a9a 100644 --- a/dom/webidl/XPathResult.webidl +++ b/dom/webidl/XPathResult.webidl @@ -6,6 +6,7 @@ * Corresponds to http://www.w3.org/TR/2002/WD-DOM-Level-3-XPath-20020208 */ +[Exposed=Window] interface XPathResult { // XPathResultType const unsigned short ANY_TYPE = 0; diff --git a/dom/webidl/XSLTProcessor.webidl b/dom/webidl/XSLTProcessor.webidl index 68c01be1b278..8334ef08ebd9 100644 --- a/dom/webidl/XSLTProcessor.webidl +++ b/dom/webidl/XSLTProcessor.webidl @@ -5,6 +5,7 @@ interface nsIVariant; +[Exposed=Window] interface XSLTProcessor { constructor(); diff --git a/dom/webidl/XULCommandEvent.webidl b/dom/webidl/XULCommandEvent.webidl index 898f221ade82..10d97fe297a4 100644 --- a/dom/webidl/XULCommandEvent.webidl +++ b/dom/webidl/XULCommandEvent.webidl @@ -8,7 +8,8 @@ * This interface is supported by command events, which are dispatched to * XUL elements as a result of mouse or keyboard activation. */ -[Func="IsChromeOrXBL"] +[Func="IsChromeOrXBL", + Exposed=Window] interface XULCommandEvent : UIEvent { /** diff --git a/dom/webidl/XULElement.webidl b/dom/webidl/XULElement.webidl index 4bb6fce7f4f3..0e09cf6cebf1 100644 --- a/dom/webidl/XULElement.webidl +++ b/dom/webidl/XULElement.webidl @@ -6,7 +6,8 @@ interface XULControllers; -[HTMLConstructor, Func="IsChromeOrXBL"] +[HTMLConstructor, Func="IsChromeOrXBL", + Exposed=Window] interface XULElement : Element { // Layout properties [SetterThrows] diff --git a/dom/webidl/XULPopupElement.webidl b/dom/webidl/XULPopupElement.webidl index 5b17dc7d98a9..9749eee2d18c 100644 --- a/dom/webidl/XULPopupElement.webidl +++ b/dom/webidl/XULPopupElement.webidl @@ -20,7 +20,8 @@ dictionary OpenPopupOptions { typedef (DOMString or OpenPopupOptions) StringOrOpenPopupOptions; -[HTMLConstructor, Func="IsChromeOrXBL"] +[HTMLConstructor, Func="IsChromeOrXBL", + Exposed=Window] interface XULPopupElement : XULElement { /**