Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_js_generator.py

Issue 697723003: Switch "html" Mojo modules to the Sky module system (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generates JavaScript source files from a mojom.Module.""" 5 """Generates JavaScript source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 "module": self.module, 299 "module": self.module,
300 "structs": self.GetStructs() + self.GetStructsFromMethods(), 300 "structs": self.GetStructs() + self.GetStructsFromMethods(),
301 "interfaces": self.module.interfaces, 301 "interfaces": self.module.interfaces,
302 "imported_interfaces": self.GetImportedInterfaces(), 302 "imported_interfaces": self.GetImportedInterfaces(),
303 } 303 }
304 304
305 @UseJinja("js_templates/module.amd.tmpl", filters=js_filters) 305 @UseJinja("js_templates/module.amd.tmpl", filters=js_filters)
306 def GenerateAMDModule(self): 306 def GenerateAMDModule(self):
307 return self.GetParameters() 307 return self.GetParameters()
308 308
309 @UseJinja("js_templates/module.html.tmpl", filters=js_filters) 309 @UseJinja("js_templates/module.sky.tmpl", filters=js_filters)
310 def GenerateHTMLModule(self): 310 def GenerateHTMLModule(self):
311 return self.GetParameters() 311 return self.GetParameters()
312 312
313 def GenerateFiles(self, args): 313 def GenerateFiles(self, args):
314 self.Write(self.GenerateAMDModule(), 314 self.Write(self.GenerateAMDModule(),
315 self.MatchMojomFilePath("%s.js" % self.module.name)) 315 self.MatchMojomFilePath("%s.js" % self.module.name))
316 self.Write(self.GenerateHTMLModule(), 316 self.Write(self.GenerateHTMLModule(),
317 self.MatchMojomFilePath("%s.html" % self.module.name)) 317 self.MatchMojomFilePath("%s.sky" % self.module.name))
318 318
319 def GetImports(self): 319 def GetImports(self):
320 used_names = set() 320 used_names = set()
321 for each_import in self.module.imports: 321 for each_import in self.module.imports:
322 simple_name = each_import["module_name"].split(".")[0] 322 simple_name = each_import["module_name"].split(".")[0]
323 323
324 # Since each import is assigned a variable in JS, they need to have unique 324 # Since each import is assigned a variable in JS, they need to have unique
325 # names. 325 # names.
326 unique_name = simple_name 326 unique_name = simple_name
327 counter = 0 327 counter = 0
328 while unique_name in used_names: 328 while unique_name in used_names:
329 counter += 1 329 counter += 1
330 unique_name = simple_name + str(counter) 330 unique_name = simple_name + str(counter)
331 331
332 used_names.add(unique_name) 332 used_names.add(unique_name)
333 each_import["unique_name"] = unique_name 333 each_import["unique_name"] = unique_name
334 counter += 1 334 counter += 1
335 return self.module.imports 335 return self.module.imports
336 336
337 def GetImportedInterfaces(self): 337 def GetImportedInterfaces(self):
338 interface_to_import = {}; 338 interface_to_import = {};
339 for each_import in self.module.imports: 339 for each_import in self.module.imports:
340 for each_interface in each_import["module"].interfaces: 340 for each_interface in each_import["module"].interfaces:
341 name = each_interface.name 341 name = each_interface.name
342 interface_to_import[name] = each_import["unique_name"] + "." + name 342 interface_to_import[name] = each_import["unique_name"] + "." + name
343 return interface_to_import; 343 return interface_to_import;
344 344
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/generators/js_templates/module.sky.tmpl ('k') | mojo/public/tools/bindings/mojom.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698