Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 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 os.path | 5 import os.path |
| 6 | 6 |
| 7 from json_parse import OrderedDict | 7 from json_parse import OrderedDict |
| 8 from memoize import memoize | 8 from memoize import memoize |
| 9 | 9 |
| 10 class ParseException(Exception): | 10 class ParseException(Exception): |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 27 | 27 |
| 28 def AddNamespace(self, json, source_file, include_compiler_options=False): | 28 def AddNamespace(self, json, source_file, include_compiler_options=False): |
| 29 """Add a namespace's json to the model and returns the namespace. | 29 """Add a namespace's json to the model and returns the namespace. |
| 30 """ | 30 """ |
| 31 namespace = Namespace(json, | 31 namespace = Namespace(json, |
| 32 source_file, | 32 source_file, |
| 33 include_compiler_options=include_compiler_options) | 33 include_compiler_options=include_compiler_options) |
| 34 self.namespaces[namespace.name] = namespace | 34 self.namespaces[namespace.name] = namespace |
| 35 return namespace | 35 return namespace |
| 36 | 36 |
| 37 class Feature(object): | |
| 38 """ A Feature | |
|
not at google - send to devlin
2013/09/12 16:20:43
"""A feature, as specified in files such as
chrome
dhnishi (use Chromium)
2013/09/13 17:36:42
Done.
| |
| 39 | |
| 40 Properties: | |
| 41 - |name| the name of the feature | |
| 42 - |constant_name| the name of the constant equivalent to the feature | |
| 43 - |source_file| the file that contained the namespace definition | |
| 44 - |source_file_dir| the directory component of |source_file| | |
| 45 - |source_file_filename| the filename component of |source_file| | |
| 46 - |channel| the channel where the feature is released | |
| 47 - |extension_types| the types which can use the permission feature | |
| 48 - |whitelist| a list of exetnsions allowed to use the feature | |
| 49 """ | |
| 50 def __init__(self, feature_name, feature_def, source_file): | |
| 51 self.name = feature_name | |
| 52 self.constant_name = self._constant_name(self.name) | |
|
not at google - send to devlin
2013/09/12 16:20:43
this is a property of the C++ code not of the abst
dhnishi (use Chromium)
2013/09/13 17:36:42
Removed from the abstract model.
| |
| 53 self.unix_name = UnixName(self.name) | |
| 54 self.source_file = source_file | |
| 55 self.source_file_dir, self.source_file_filename = os.path.split(source_file) | |
|
not at google - send to devlin
2013/09/12 16:20:43
would be nice not to have source_file nor source_f
dhnishi (use Chromium)
2013/09/13 17:36:42
I don't think I had anything actually using those
| |
| 56 self.channel = feature_def['channel'] | |
| 57 self.extension_types = feature_def['extension_types'] | |
| 58 self.whitelist = feature_def.get('whitelist') | |
| 59 | |
| 60 def _constant_name(self, target): | |
|
not at google - send to devlin
2013/09/12 16:20:43
(move this into cpp_util.py if something like that
dhnishi (use Chromium)
2013/09/13 17:36:42
Done.
| |
| 61 return ('k' + ''.join(word[0].upper() + word[1:] | |
| 62 for word in target.replace('.', ' ').split())) | |
| 63 | |
| 37 class Namespace(object): | 64 class Namespace(object): |
| 38 """An API namespace. | 65 """An API namespace. |
| 39 | 66 |
| 40 Properties: | 67 Properties: |
| 41 - |name| the name of the namespace | 68 - |name| the name of the namespace |
| 42 - |description| the description of the namespace | 69 - |description| the description of the namespace |
| 43 - |unix_name| the unix_name of the namespace | 70 - |unix_name| the unix_name of the namespace |
| 44 - |source_file| the file that contained the namespace definition | 71 - |source_file| the file that contained the namespace definition |
| 45 - |source_file_dir| the directory component of |source_file| | 72 - |source_file_dir| the directory component of |source_file| |
| 46 - |source_file_filename| the filename component of |source_file| | 73 - |source_file_filename| the filename component of |source_file| |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 484 def _GetPlatforms(json): | 511 def _GetPlatforms(json): |
| 485 if 'platforms' not in json: | 512 if 'platforms' not in json: |
| 486 return None | 513 return None |
| 487 platforms = [] | 514 platforms = [] |
| 488 for platform_name in json['platforms']: | 515 for platform_name in json['platforms']: |
| 489 for platform_enum in _Enum.GetAll(Platforms): | 516 for platform_enum in _Enum.GetAll(Platforms): |
| 490 if platform_name == platform_enum.name: | 517 if platform_name == platform_enum.name: |
| 491 platforms.append(platform_enum) | 518 platforms.append(platform_enum) |
| 492 break | 519 break |
| 493 return platforms | 520 return platforms |
| 521 | |
|
not at google - send to devlin
2013/09/12 16:20:43
no blank line?
dhnishi (use Chromium)
2013/09/13 17:36:42
Done.
| |
| OLD | NEW |