Chromium Code Reviews| Index: tools/dom/scripts/dartdomgenerator.py |
| diff --git a/tools/dom/scripts/dartdomgenerator.py b/tools/dom/scripts/dartdomgenerator.py |
| index 2ba67aae96c2ad0d01f020326e7a7bec9358f9d5..0b5ae84747ea32593c43c938940c80f4ddf0fa1a 100755 |
| --- a/tools/dom/scripts/dartdomgenerator.py |
| +++ b/tools/dom/scripts/dartdomgenerator.py |
| @@ -85,8 +85,8 @@ def GenerateFromDatabase(common_database, dart2js_output_dir, |
| event_generator = HtmlEventGenerator(webkit_database, renamer, metadata, |
| template_loader) |
| - def generate_interface(interface): |
| - backend = backend_factory(interface) |
| + def generate_interface(interface, cid): |
| + backend = backend_factory(interface, cid) |
| interface_generator = HtmlDartInterfaceGenerator( |
| options, dart_library_emitter, event_generator, interface, backend) |
| interface_generator.Generate() |
| @@ -103,7 +103,7 @@ def GenerateFromDatabase(common_database, dart2js_output_dir, |
| backend_options = GeneratorOptions( |
| template_loader, webkit_database, type_registry, renamer, |
| metadata) |
| - backend_factory = lambda interface:\ |
| + backend_factory = lambda interface, cid:\ |
| Dart2JSBackend(interface, backend_options) |
| dart_output_dir = os.path.join(dart2js_output_dir, 'dart') |
| @@ -123,8 +123,8 @@ def GenerateFromDatabase(common_database, dart2js_output_dir, |
| metadata) |
| cpp_output_dir = os.path.join(dartium_output_dir, 'cpp') |
| cpp_library_emitter = CPPLibraryEmitter(emitters, cpp_output_dir) |
| - backend_factory = lambda interface:\ |
| - DartiumBackend(interface, cpp_library_emitter, backend_options) |
| + backend_factory = lambda interface, cid:\ |
| + DartiumBackend(interface, cid, cpp_library_emitter, backend_options) |
| dart_output_dir = os.path.join(dartium_output_dir, 'dart') |
| dart_libraries = DartLibraries( |
| @@ -138,6 +138,22 @@ def GenerateFromDatabase(common_database, dart2js_output_dir, |
| cpp_library_emitter.EmitResolver( |
| template_loader.Load('cpp_resolver.template'), dartium_output_dir) |
| + path = os.path.join(cpp_output_dir, 'class_ids.h') |
|
vsm
2013/09/12 01:08:50
The generated bindings files all have camel case.
rmacnak
2013/09/12 17:56:16
Done.
|
| + e = emitters.FileEmitter(path) |
| + e.Emit('#ifndef class_ids_h\n') |
| + e.Emit('#define class_ids_h\n') |
| + e.Emit('#include "bindings/dart/DartDOMWrapper.h"\n') |
|
vsm
2013/09/12 01:08:50
You can combine adjacent calls:
e.Emit(
'#ifnd
rmacnak
2013/09/12 17:56:16
Done.
|
| + e.Emit('namespace WebCore {\n') |
| + e.Emit('enum {\n') |
| + e.Emit(' UnusedClassId = DartDOMWrapper::NumCustomBindingClassIds,\n') |
|
vsm
2013/09/12 01:08:50
Does it make sense to just list out the builtin cl
rmacnak
2013/09/12 17:56:16
Yes, and it allows us to allocate a fixed-size tab
|
| + for interface in webkit_database.GetInterfaces(): |
| + interface_name = interface.id |
| + e.Emit(' %sClassId,\n' % interface_name) |
| + e.Emit(' NumClassIds\n'); |
| + e.Emit('};\n'); |
| + e.Emit('} // namespace WebCore\n') |
| + e.Emit('#endif // class_ids_h\n'); |
| + |
| _logger.info('Flush...') |
| emitters.Flush() |