aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/parser/WebIDL.py
diff options
context:
space:
mode:
authorShing Lyu <shing.lyu@gmail.com>2016-01-29 17:32:39 +0800
committerShing Lyu <shing.lyu@gmail.com>2016-01-29 21:12:21 +0800
commit18b6817755b3509990e0a9fbe1acb5318d81c957 (patch)
treef55fc21d3188f4890532401d0c5d680d08a1c68f /components/script/dom/bindings/codegen/parser/WebIDL.py
parent1483a5de32511f4f8e4868e8ae55ef6e8406f0f6 (diff)
downloadservo-18b6817755b3509990e0a9fbe1acb5318d81c957.tar.gz
servo-18b6817755b3509990e0a9fbe1acb5318d81c957.zip
Add mach test-webidl command
Diffstat (limited to 'components/script/dom/bindings/codegen/parser/WebIDL.py')
-rw-r--r--components/script/dom/bindings/codegen/parser/WebIDL.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/parser/WebIDL.py b/components/script/dom/bindings/codegen/parser/WebIDL.py
index 8bf415c269b..273824fb1b0 100644
--- a/components/script/dom/bindings/codegen/parser/WebIDL.py
+++ b/components/script/dom/bindings/codegen/parser/WebIDL.py
@@ -501,6 +501,10 @@ class IDLExposureMixins():
def isExposedInWindow(self):
return 'Window' in self.exposureSet
+ def isExposedOnMainThread(self):
+ return (self.isExposedInWindow() or
+ self.isExposedInSystemGlobals())
+
def isExposedInAnyWorker(self):
return len(self.getWorkerExposureSet()) > 0
@@ -564,6 +568,9 @@ class IDLExternalInterface(IDLObjectWithIdentifier, IDLExposureMixins):
def isJSImplemented(self):
return False
+ def isProbablyShortLivingObject(self):
+ return False
+
def getNavigatorProperty(self):
return None
@@ -1409,6 +1416,7 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
identifier == "Unforgeable" or
identifier == "UnsafeInPrerendering" or
identifier == "LegacyEventInit" or
+ identifier == "ProbablyShortLivingObject" or
identifier == "Abstract"):
# Known extended attributes that do not take values
if not attr.noArguments():
@@ -1523,6 +1531,14 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
def isJSImplemented(self):
return bool(self.getJSImplementation())
+ def isProbablyShortLivingObject(self):
+ current = self
+ while current:
+ if current.getExtendedAttribute("ProbablyShortLivingObject"):
+ return True
+ current = current.parent
+ return False
+
def getNavigatorProperty(self):
naviProp = self.getExtendedAttribute("NavigatorProperty")
if not naviProp: