Index: headless/lib/browser/client_api_generator.py |
diff --git a/headless/lib/browser/client_api_generator.py b/headless/lib/browser/client_api_generator.py |
index 3903b1eab6b87c1d795a45b8ccdc82d2b1b28f16..40f1206d17b206eb0adf31233bd0ced994c0b3b8 100644 |
--- a/headless/lib/browser/client_api_generator.py |
+++ b/headless/lib/browser/client_api_generator.py |
@@ -353,6 +353,31 @@ def SynthesizeEventTypes(json_api): |
domain['types'].append(event_type) |
+def PatchHiddenCommandsAndEvents(json_api): |
+ """ |
+ Mark all commands and events in hidden domains as hidden and make sure hidden |
+ commands have at least empty parameters and return values. |
+ """ |
+ for domain in json_api['domains']: |
+ if domain.get('hidden', False): |
+ for command in domain.get('commands', []): |
+ command['hidden'] = True |
+ for event in domain.get('events', []): |
+ event['hidden'] = True |
+ for command in domain.get('commands', []): |
+ if not command.get('hidden', False): |
+ continue |
+ if not 'parameters' in command: |
+ command['parameters'] = [] |
+ if not 'returns' in command: |
+ command['returns'] = [] |
+ for event in domain.get('events', []): |
+ if not event.get('hidden', False): |
+ continue |
+ if not 'parameters' in event: |
+ event['parameters'] = [] |
+ |
+ |
def Generate(jinja_env, output_dirname, json_api, class_name, file_types): |
template_context = { |
'api': json_api, |
@@ -387,6 +412,7 @@ def GenerateDomains(jinja_env, output_dirname, json_api, class_name, |
if __name__ == '__main__': |
json_api, output_dirname = ParseArguments(sys.argv[1:]) |
jinja_env = InitializeJinjaEnv(output_dirname) |
+ PatchHiddenCommandsAndEvents(json_api) |
SynthesizeCommandTypes(json_api) |
SynthesizeEventTypes(json_api) |
PatchFullQualifiedRefs(json_api) |