diff options
Diffstat (limited to 'components/script/dom/bindings/codegen')
-rw-r--r-- | components/script/dom/bindings/codegen/Bindings.conf | 6 | ||||
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/components/script/dom/bindings/codegen/Bindings.conf b/components/script/dom/bindings/codegen/Bindings.conf index 0f847e4eead..c8eba92d7b0 100644 --- a/components/script/dom/bindings/codegen/Bindings.conf +++ b/components/script/dom/bindings/codegen/Bindings.conf @@ -48,6 +48,10 @@ DOMInterfaces = { 'WorkerGlobalScope': { 'inCompartments': ['Fetch'], -} +}, + +'TestBinding': { + 'inCompartments': ['PromiseAttribute'], +}, } diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 9032012dea7..a4a74cff753 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5627,13 +5627,16 @@ class CGInterfaceTrait(CGThing): def __init__(self, descriptor): CGThing.__init__(self) - def attribute_arguments(needCx, argument=None): + def attribute_arguments(needCx, argument=None, inCompartment=False): if needCx: yield "cx", "*mut JSContext" if argument: yield "value", argument_type(descriptor, argument) + if inCompartment: + yield "_comp", "InCompartment" + def members(): for m in descriptor.interface.members: if (m.isMethod() and not m.isStatic() and @@ -5649,7 +5652,7 @@ class CGInterfaceTrait(CGThing): name = CGSpecializedGetter.makeNativeName(descriptor, m) infallible = 'infallible' in descriptor.getExtendedAttributes(m, getter=True) yield (name, - attribute_arguments(typeNeedsCx(m.type, True)), + attribute_arguments(typeNeedsCx(m.type, True), inCompartment=name in descriptor.inCompartmentMethods), return_type(descriptor, m.type, infallible)) if not m.readonly: @@ -5659,7 +5662,7 @@ class CGInterfaceTrait(CGThing): rettype = "()" else: rettype = "ErrorResult" - yield name, attribute_arguments(typeNeedsCx(m.type, False), m.type), rettype + yield name, attribute_arguments(typeNeedsCx(m.type, False), m.type, inCompartment=name in descriptor.inCompartmentMethods), rettype if descriptor.proxy: for name, operation in descriptor.operations.iteritems(): |