OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 import argparse | 5 import argparse |
6 import os.path | 6 import os.path |
7 import sys | 7 import sys |
8 import re | 8 import re |
9 try: | 9 try: |
10 import json | 10 import json |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 event_type = { | 344 event_type = { |
345 'id': ToTitleCase(event['name']) + 'Params', | 345 'id': ToTitleCase(event['name']) + 'Params', |
346 'type': 'object', | 346 'type': 'object', |
347 'description': 'Parameters for the %s event.' % ToTitleCase( | 347 'description': 'Parameters for the %s event.' % ToTitleCase( |
348 event['name']), | 348 event['name']), |
349 'properties': event['parameters'] | 349 'properties': event['parameters'] |
350 } | 350 } |
351 domain['types'].append(event_type) | 351 domain['types'].append(event_type) |
352 | 352 |
353 | 353 |
| 354 def HideHiddenDomains(json_api): |
| 355 """Mark all commands and events in hidden domains as hidden.""" |
| 356 for domain in json_api['domains']: |
| 357 if not 'hidden' in domain or not domain['hidden']: |
| 358 continue |
| 359 for command in domain.get('commands', []): |
| 360 command['hidden'] = True |
| 361 for event in domain.get('events', []): |
| 362 event['hidden'] = True |
| 363 |
| 364 |
354 def Generate(jinja_env, output_dirname, json_api, class_name, file_types): | 365 def Generate(jinja_env, output_dirname, json_api, class_name, file_types): |
355 template_context = { | 366 template_context = { |
356 'api': json_api, | 367 'api': json_api, |
357 'join_arrays': JoinArrays, | 368 'join_arrays': JoinArrays, |
358 'resolve_type': ResolveType, | 369 'resolve_type': ResolveType, |
359 'type_definition': TypeDefinition, | 370 'type_definition': TypeDefinition, |
360 } | 371 } |
361 for file_type in file_types: | 372 for file_type in file_types: |
362 template = jinja_env.get_template('/%s_%s.template' % ( | 373 template = jinja_env.get_template('/%s_%s.template' % ( |
363 class_name, file_type)) | 374 class_name, file_type)) |
(...skipping 18 matching lines...) Expand all Loading... |
382 f.write(template.render(template_context)) | 393 f.write(template.render(template_context)) |
383 | 394 |
384 | 395 |
385 if __name__ == '__main__': | 396 if __name__ == '__main__': |
386 json_api, output_dirname = ParseArguments(sys.argv[1:]) | 397 json_api, output_dirname = ParseArguments(sys.argv[1:]) |
387 jinja_env = InitializeJinjaEnv(output_dirname) | 398 jinja_env = InitializeJinjaEnv(output_dirname) |
388 SynthesizeCommandTypes(json_api) | 399 SynthesizeCommandTypes(json_api) |
389 SynthesizeEventTypes(json_api) | 400 SynthesizeEventTypes(json_api) |
390 PatchFullQualifiedRefs(json_api) | 401 PatchFullQualifiedRefs(json_api) |
391 CreateTypeDefinitions(json_api) | 402 CreateTypeDefinitions(json_api) |
| 403 HideHiddenDomains(json_api) |
392 Generate(jinja_env, output_dirname, json_api, 'types', ['cc', 'h']) | 404 Generate(jinja_env, output_dirname, json_api, 'types', ['cc', 'h']) |
393 Generate(jinja_env, output_dirname, json_api, 'type_conversions', ['h']) | 405 Generate(jinja_env, output_dirname, json_api, 'type_conversions', ['h']) |
394 GenerateDomains(jinja_env, output_dirname, json_api, 'domain', ['cc', 'h']) | 406 GenerateDomains(jinja_env, output_dirname, json_api, 'domain', ['cc', 'h']) |
OLD | NEW |