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

Side by Side Diff: headless/lib/browser/devtools_api/client_api_generator.py

Issue 2666503002: Make headless_shell target compile for Windows (Closed)
Patch Set: Fix initlogging placing, always enable logging in Windows Created 3 years, 10 months 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
« no previous file with comments | « headless/app/headless_shell.cc ('k') | headless/lib/browser/devtools_api/domain_cc.template » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 collections 6 import collections
7 import os.path 7 import os.path
8 import re 8 import re
9 import sys 9 import sys
10 try: 10 try:
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 # 'LoLoLoL'). 58 # 'LoLoLoL').
59 name = re.sub(r'([^_])([A-Z][a-z]+?)', r'\1_\2', name) 59 name = re.sub(r'([^_])([A-Z][a-z]+?)', r'\1_\2', name)
60 name = re.sub(r'([^_])([A-Z][a-z]+?)', r'\1_\2', name) 60 name = re.sub(r'([^_])([A-Z][a-z]+?)', r'\1_\2', name)
61 return name.lower() 61 return name.lower()
62 62
63 63
64 def SanitizeLiteral(literal): 64 def SanitizeLiteral(literal):
65 return { 65 return {
66 # Rename null enumeration values to avoid a clash with the NULL macro. 66 # Rename null enumeration values to avoid a clash with the NULL macro.
67 'null': 'none', 67 'null': 'none',
68 # Rename literals that clash with Win32 defined macros.
69 'error': 'err',
70 'mouseMoved': 'mouse_ptr_moved',
71 'Strict': 'exact',
72 'getCurrentTime': 'getCurrentAnimationTime',
68 # Rename mathematical constants to avoid colliding with C macros. 73 # Rename mathematical constants to avoid colliding with C macros.
69 'Infinity': 'InfinityValue', 74 'Infinity': 'InfinityValue',
70 '-Infinity': 'NegativeInfinityValue', 75 '-Infinity': 'NegativeInfinityValue',
71 'NaN': 'NaNValue', 76 'NaN': 'NaNValue',
72 # Turn negative zero into a safe identifier. 77 # Turn negative zero into a safe identifier.
73 '-0': 'NegativeZeroValue', 78 '-0': 'NegativeZeroValue',
74 }.get(literal, literal) 79 }.get(literal, literal)
75 80
76 81
77 def InitializeJinjaEnv(cache_dir): 82 def InitializeJinjaEnv(cache_dir):
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 for property in type.get('properties', []): 319 for property in type.get('properties', []):
315 if 'enum' in property and not '$ref' in property: 320 if 'enum' in property and not '$ref' in property:
316 SynthesizeEnumType(domain, type['id'], property) 321 SynthesizeEnumType(domain, type['id'], property)
317 322
318 for command in domain.get('commands', []): 323 for command in domain.get('commands', []):
319 if 'parameters' in command: 324 if 'parameters' in command:
320 for parameter in command['parameters']: 325 for parameter in command['parameters']:
321 if 'enum' in parameter and not '$ref' in parameter: 326 if 'enum' in parameter and not '$ref' in parameter:
322 SynthesizeEnumType(domain, command['name'], parameter) 327 SynthesizeEnumType(domain, command['name'], parameter)
323 parameters_type = { 328 parameters_type = {
324 'id': ToTitleCase(command['name']) + 'Params', 329 'id': ToTitleCase(SanitizeLiteral(command['name'])) + 'Params',
325 'type': 'object', 330 'type': 'object',
326 'description': 'Parameters for the %s command.' % ToTitleCase( 331 'description': 'Parameters for the %s command.' % ToTitleCase(
327 command['name']), 332 SanitizeLiteral(command['name'])),
328 'properties': command['parameters'] 333 'properties': command['parameters']
329 } 334 }
330 domain['types'].append(parameters_type) 335 domain['types'].append(parameters_type)
331 if 'returns' in command: 336 if 'returns' in command:
332 for parameter in command['returns']: 337 for parameter in command['returns']:
333 if 'enum' in parameter and not '$ref' in parameter: 338 if 'enum' in parameter and not '$ref' in parameter:
334 SynthesizeEnumType(domain, command['name'], parameter) 339 SynthesizeEnumType(domain, command['name'], parameter)
335 result_type = { 340 result_type = {
336 'id': ToTitleCase(command['name']) + 'Result', 341 'id': ToTitleCase(SanitizeLiteral(command['name'])) + 'Result',
337 'type': 'object', 342 'type': 'object',
338 'description': 'Result for the %s command.' % ToTitleCase( 343 'description': 'Result for the %s command.' % ToTitleCase(
339 command['name']), 344 SanitizeLiteral(command['name'])),
340 'properties': command['returns'] 345 'properties': command['returns']
341 } 346 }
342 domain['types'].append(result_type) 347 domain['types'].append(result_type)
343 348
344 349
345 def SynthesizeEventTypes(json_api): 350 def SynthesizeEventTypes(json_api):
346 """Generate types for events and their properties. 351 """Generate types for events and their properties.
347 352
348 Note that parameter objects are also created for events without parameters to 353 Note that parameter objects are also created for events without parameters to
349 make it easier to introduce parameters later. 354 make it easier to introduce parameters later.
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 InitializeDomainDependencies(json_api) 532 InitializeDomainDependencies(json_api)
528 PatchExperimentalCommandsAndEvents(json_api) 533 PatchExperimentalCommandsAndEvents(json_api)
529 EnsureCommandsHaveParametersAndReturnTypes(json_api) 534 EnsureCommandsHaveParametersAndReturnTypes(json_api)
530 SynthesizeCommandTypes(json_api) 535 SynthesizeCommandTypes(json_api)
531 SynthesizeEventTypes(json_api) 536 SynthesizeEventTypes(json_api)
532 PatchFullQualifiedRefs(json_api) 537 PatchFullQualifiedRefs(json_api)
533 CreateTypeDefinitions(json_api) 538 CreateTypeDefinitions(json_api)
534 GenerateDomains(jinja_env, output_dirname, json_api) 539 GenerateDomains(jinja_env, output_dirname, json_api)
535 GenerateTypes(jinja_env, output_dirname, json_api) 540 GenerateTypes(jinja_env, output_dirname, json_api)
536 GenerateTypeConversions(jinja_env, output_dirname, json_api) 541 GenerateTypeConversions(jinja_env, output_dirname, json_api)
OLDNEW
« no previous file with comments | « headless/app/headless_shell.cc ('k') | headless/lib/browser/devtools_api/domain_cc.template » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698