From f4c1529f56d158953fb8b8826fcb98995636c9f6 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Wed, 23 Mar 2016 17:11:14 -0400 Subject: [PATCH] Forbid unconditionally-exposed interfaces that inherit from conditionally-exposed ones. --- components/script/dom/bindings/codegen/Configuration.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py index 9a1c5e2f4df..3ee7fb37e77 100644 --- a/components/script/dom/bindings/codegen/Configuration.py +++ b/components/script/dom/bindings/codegen/Configuration.py @@ -165,6 +165,12 @@ class Descriptor(DescriptorProvider): DescriptorProvider.__init__(self, config) self.interface = interface + if not self.isExposedConditionally(): + if interface.parent and interface.parent.isExposedConditionally(): + raise TypeError("%s is not conditionally exposed but inherits from " + "%s which is" % + (interface.identifier.name, interface.parent.identifier.name)) + # Read the desc, and fill in the relevant defaults. ifaceName = self.interface.identifier.name