diff options
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 21 | ||||
-rw-r--r-- | components/script/dom/bindings/interface.rs | 7 | ||||
-rw-r--r-- | components/script/dom/webidls/DOMMatrix.webidl | 3 | ||||
-rw-r--r-- | components/script/dom/webidls/URL.webidl | 3 | ||||
-rw-r--r-- | tests/wpt/metadata/css/geometry/WebKitCSSMatrix.html.ini | 7 | ||||
-rw-r--r-- | tests/wpt/metadata/url/idlharness.any.js.ini | 18 | ||||
-rw-r--r-- | tests/wpt/mozilla/meta/MANIFEST.json | 4 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/interfaces.html | 1 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/mozilla/interfaces.js | 1 |
9 files changed, 32 insertions, 33 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index ad76ef5d8d3..a644e352e7a 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -2925,13 +2925,14 @@ class CGCreateInterfaceObjectsMethod(CGAbstractMethod): properties should be a PropertyArrays instance. """ - def __init__(self, descriptor, properties, haveUnscopables): + def __init__(self, descriptor, properties, haveUnscopables, haveLegacyWindowAliases): args = [Argument('SafeJSContext', 'cx'), Argument('HandleObject', 'global'), Argument('*mut ProtoOrIfaceArray', 'cache')] CGAbstractMethod.__init__(self, descriptor, 'CreateInterfaceObjects', 'void', args, unsafe=True) self.properties = properties self.haveUnscopables = haveUnscopables + self.haveLegacyWindowAliases = haveLegacyWindowAliases def definition_body(self): name = self.descriptor.interface.identifier.name @@ -2990,7 +2991,8 @@ assert!(!prototype_proto.is_null());""" % getPrototypeProto)] properties = { "id": name, - "unscopables": "unscopable_names" if self.haveUnscopables else "&[]" + "unscopables": "unscopable_names" if self.haveUnscopables else "&[]", + "legacyWindowAliases": "legacy_window_aliases" if self.haveLegacyWindowAliases else "&[]" } for arrayName in self.properties.arrayNames(): array = getattr(self.properties, arrayName) @@ -3058,6 +3060,7 @@ create_noncallback_interface_object(cx, prototype.handle(), %(name)s, %(length)s, + %(legacyWindowAliases)s, interface.handle_mut()); assert!(!interface.is_null());""" % properties)) if self.descriptor.shouldCacheConstructor(): @@ -6266,6 +6269,15 @@ class CGDescriptor(CGThing): if descriptor.weakReferenceable: cgThings.append(CGWeakReferenceableTrait(descriptor)) + legacyWindowAliases = descriptor.interface.legacyWindowAliases + haveLegacyWindowAliases = len(legacyWindowAliases) != 0 + if haveLegacyWindowAliases: + cgThings.append( + CGList([CGGeneric("const legacy_window_aliases: &'static [&'static [u8]] = &["), + CGIndenter(CGList([CGGeneric(str_to_const_array(name)) for + name in legacyWindowAliases], ",\n")), + CGGeneric("];\n")], "\n")) + cgThings.append(CGGeneric(str(properties))) if not descriptor.interface.getExtendedAttribute("Inline"): @@ -6287,7 +6299,8 @@ class CGDescriptor(CGThing): cgThings.append(CGDefineDOMInterfaceMethod(descriptor)) reexports.append('DefineDOMInterface') cgThings.append(CGConstructorEnabled(descriptor)) - cgThings.append(CGCreateInterfaceObjectsMethod(descriptor, properties, haveUnscopables)) + cgThings.append(CGCreateInterfaceObjectsMethod(descriptor, properties, haveUnscopables, + haveLegacyWindowAliases)) cgThings = generate_imports(config, CGList(cgThings, '\n'), [descriptor]) cgThings = CGWrapper(CGNamespace(toBindingNamespace(descriptor.name), @@ -7453,6 +7466,8 @@ class GlobalGenRoots(): for d in config.getDescriptors(hasInterfaceObject=True, isInline=False): binding = toBindingNamespace(d.name) pairs.append((d.name, binding, binding)) + for alias in d.interface.legacyWindowAliases: + pairs.append((alias, binding, binding)) for ctor in d.interface.namedConstructors: pairs.append((ctor.identifier.name, binding, binding)) pairs.sort(key=operator.itemgetter(0)) diff --git a/components/script/dom/bindings/interface.rs b/components/script/dom/bindings/interface.rs index 0a5ee24fb23..2514efcf063 100644 --- a/components/script/dom/bindings/interface.rs +++ b/components/script/dom/bindings/interface.rs @@ -238,6 +238,7 @@ pub fn create_noncallback_interface_object( interface_prototype_object: HandleObject, name: &[u8], length: u32, + legacy_window_alias_names: &[&[u8]], rval: MutableHandleObject, ) { create_object( @@ -260,6 +261,12 @@ pub fn create_noncallback_interface_object( define_name(cx, rval.handle(), name); define_length(cx, rval.handle(), i32::try_from(length).expect("overflow")); define_on_global_object(cx, global, name, rval.handle()); + + if is_exposed_in(global, Globals::WINDOW) { + for legacy_window_alias in legacy_window_alias_names { + define_on_global_object(cx, global, legacy_window_alias, rval.handle()); + } + } } /// Create and define the named constructors of a non-callback interface. diff --git a/components/script/dom/webidls/DOMMatrix.webidl b/components/script/dom/webidls/DOMMatrix.webidl index 9911f868710..1731116c051 100644 --- a/components/script/dom/webidls/DOMMatrix.webidl +++ b/components/script/dom/webidls/DOMMatrix.webidl @@ -10,7 +10,8 @@ * related or neighboring rights to this work. */ -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker), + LegacyWindowAlias=WebKitCSSMatrix] interface DOMMatrix : DOMMatrixReadOnly { [Throws] constructor(optional (DOMString or sequence<unrestricted double>) init); diff --git a/components/script/dom/webidls/URL.webidl b/components/script/dom/webidls/URL.webidl index 31425fcd843..d51f675ec0a 100644 --- a/components/script/dom/webidls/URL.webidl +++ b/components/script/dom/webidls/URL.webidl @@ -3,7 +3,8 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ // https://url.spec.whatwg.org/#url -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker), + LegacyWindowAlias=webkitURL] interface URL { [Throws] constructor(USVString url, optional USVString base); [SetterThrows] diff --git a/tests/wpt/metadata/css/geometry/WebKitCSSMatrix.html.ini b/tests/wpt/metadata/css/geometry/WebKitCSSMatrix.html.ini deleted file mode 100644 index 49236db8460..00000000000 --- a/tests/wpt/metadata/css/geometry/WebKitCSSMatrix.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[WebKitCSSMatrix.html] - [Equivalence test] - expected: FAIL - - [Property descriptor for WebKitCSSMatrix] - expected: FAIL - diff --git a/tests/wpt/metadata/url/idlharness.any.js.ini b/tests/wpt/metadata/url/idlharness.any.js.ini deleted file mode 100644 index c7f8449baa1..00000000000 --- a/tests/wpt/metadata/url/idlharness.any.js.ini +++ /dev/null @@ -1,18 +0,0 @@ -[idlharness.any.html] - [idlharness] - expected: FAIL - - [Testing Symbol.iterator property of iterable interface URLSearchParams] - expected: FAIL - - [URL interface: legacy window alias] - expected: FAIL - - -[idlharness.any.worker.html] - [idlharness] - expected: FAIL - - [Testing Symbol.iterator property of iterable interface URLSearchParams] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 6274543554e..cf90fd08a31 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -18966,11 +18966,11 @@ "testharness" ], "mozilla/interfaces.html": [ - "7aed97b42d8fe974ea489db66905d9fbc0edb84d", + "1207eaa2d8ff55e0c2216086b5a2c90a41ff78cf", "testharness" ], "mozilla/interfaces.js": [ - "26db0c23e544d38f02b9573ffaa44bf5dee8370a", + "f1854a3ae00493554006ad2c483489f4be8450a6", "support" ], "mozilla/interfaces.worker.js": [ diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html index 7aed97b42d8..1207eaa2d8f 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.html +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html @@ -244,6 +244,7 @@ test_interfaces([ "WebGLObject", "WebGLActiveInfo", "WebGLShaderPrecisionFormat", + "WebKitCSSMatrix", "WebSocket", "WheelEvent", "Window", diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.js b/tests/wpt/mozilla/tests/mozilla/interfaces.js index 26db0c23e54..f1854a3ae00 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.js @@ -45,7 +45,6 @@ function test_interfaces(interfaceNamesInGlobalScope) { "Uint32Array", "Uint8Array", "Uint8ClampedArray", - "Uint8ClampedArray", "WeakMap", "WeakSet", "WebAssembly", |