diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index c4bd53c42c1..b46f127253b 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -2577,7 +2577,7 @@ class CGGetProtoObjectMethod(CGGetPerInterfaceObject): """ def __init__(self, descriptor): CGGetPerInterfaceObject.__init__(self, descriptor, "GetProtoObject", - "PrototypeList::", pub=True) + "PrototypeList::", pub=descriptor.hasDescendants()) def definition_body(self): return CGList([ @@ -2594,7 +2594,7 @@ class CGGetConstructorObjectMethod(CGGetPerInterfaceObject): """ def __init__(self, descriptor): CGGetPerInterfaceObject.__init__(self, descriptor, "GetConstructorObject", - "constructors::") + "constructors::", pub=descriptor.hasDescendants()) def definition_body(self): return CGList([ @@ -4964,7 +4964,8 @@ class CGDescriptor(CGThing): cgThings.append(CGWrapMethod(descriptor)) if not descriptor.interface.isCallback(): - cgThings.append(CGIDLInterface(descriptor)) + if descriptor.concrete or descriptor.hasDescendants(): + cgThings.append(CGIDLInterface(descriptor)) cgThings.append(CGInterfaceTrait(descriptor)) if descriptor.weakReferenceable: cgThings.append(CGWeakReferenceableTrait(descriptor)) diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py index 0fa06c83ea7..2106ff4adee 100644 --- a/components/script/dom/bindings/codegen/Configuration.py +++ b/components/script/dom/bindings/codegen/Configuration.py @@ -185,7 +185,7 @@ class Descriptor(DescriptorProvider): # If we're concrete, we need to crawl our ancestor interfaces and mark # them as having a concrete descendant. self.concrete = (not self.interface.isCallback() and - desc.get('concrete', True)) + not self.interface.getExtendedAttribute("Abstract")) self.hasUnforgeableMembers = (self.concrete and any(MemberIsUnforgeable(m, self) for m in self.interface.members)) diff --git a/components/script/dom/webidls/CSS.webidl b/components/script/dom/webidls/CSS.webidl index 4ad2f07d893..7b5e31b0160 100644 --- a/components/script/dom/webidls/CSS.webidl +++ b/components/script/dom/webidls/CSS.webidl @@ -6,6 +6,7 @@ * http://dev.w3.org/csswg/cssom/#the-css-interface */ +[Abstract] interface CSS { [Throws] static DOMString escape(DOMString ident);