aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index c356a7d066c..057246f05aa 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1695,7 +1695,7 @@ class CGImports(CGWrapper):
"""
Generates the appropriate import/use statements.
"""
- def __init__(self, child, descriptors, callbacks, imports, ignored_warnings=None):
+ def __init__(self, child, descriptors, callbacks, imports, config, ignored_warnings=None):
"""
Adds a set of imports.
"""
@@ -1756,7 +1756,11 @@ class CGImports(CGWrapper):
for c in callbacks:
types += relatedTypesForSignatures(c)
- imports += ['dom::types::%s' % getIdentifier(t).name for t in types if isImportable(t)]
+ descriptorProvider = config.getDescriptorProvider()
+ for t in types:
+ if isImportable(t):
+ descriptor = descriptorProvider.getDescriptor(getIdentifier(t).name)
+ imports += ['%s' % descriptor.path]
statements = []
if len(ignored_warnings) > 0:
@@ -2090,7 +2094,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, config):
# Sort unionStructs by key, retrieve value
unionStructs = (i[1] for i in sorted(unionStructs.items(), key=operator.itemgetter(0)))
- return CGImports(CGList(unionStructs, "\n\n"), [], [], imports, ignored_warnings=[])
+ return CGImports(CGList(unionStructs, "\n\n"), [], [], imports, config, ignored_warnings=[])
class Argument():
@@ -5460,7 +5464,8 @@ class CGBindingRoot(CGThing):
# (hence hasInterfaceObject=False).
descriptors.extend(config.getDescriptors(webIDLFile=webIDLFile,
hasInterfaceObject=False,
- isCallback=False))
+ isCallback=False,
+ register=True))
dictionaries = config.getDictionaries(webIDLFile=webIDLFile)
@@ -5588,6 +5593,7 @@ class CGBindingRoot(CGThing):
'dom::bindings::str::{ByteString, DOMString, USVString}',
'dom::bindings::trace::RootedVec',
'dom::bindings::weakref::{DOM_WEAK_SLOT, WeakBox, WeakReferenceable}',
+ 'dom::browsingcontext::BrowsingContext',
'mem::heap_size_of_raw_self_and_children',
'libc',
'util::prefs',
@@ -5602,7 +5608,7 @@ class CGBindingRoot(CGThing):
'std::rc::Rc',
'std::default::Default',
'std::ffi::CString',
- ])
+ ], config)
# Add the auto-generated comment.
curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT)
@@ -6278,7 +6284,7 @@ class GlobalGenRoots():
'dom::bindings::codegen',
'dom::bindings::codegen::PrototypeList::Proxies',
'libc',
- ], ignored_warnings=[])
+ ], config, ignored_warnings=[])
@staticmethod
def InterfaceTypes(config):