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

Side by Side Diff: Source/build/scripts/make_runtime_features.py

Issue 335453007: Introduce new runtime feature state "deprecated" and use it for showModalDialog (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/platform/RuntimeEnabledFeatures.in » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (C) 2013 Google Inc. All rights reserved. 2 # Copyright (C) 2013 Google Inc. All rights reserved.
3 # 3 #
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 25 matching lines...) Expand all
36 36
37 37
38 class RuntimeFeatureWriter(in_generator.Writer): 38 class RuntimeFeatureWriter(in_generator.Writer):
39 class_name = 'RuntimeEnabledFeatures' 39 class_name = 'RuntimeEnabledFeatures'
40 filters = { 40 filters = {
41 'enable_conditional': name_utilities.enable_conditional_if_endif, 41 'enable_conditional': name_utilities.enable_conditional_if_endif,
42 } 42 }
43 43
44 # FIXME: valid_values and defaults should probably roll into one object. 44 # FIXME: valid_values and defaults should probably roll into one object.
45 valid_values = { 45 valid_values = {
46 'status': ['stable', 'experimental', 'test'], 46 'status': ['stable', 'experimental', 'test', 'deprecated'],
47 } 47 }
48 defaults = { 48 defaults = {
49 'condition' : None, 49 'condition' : None,
50 'depends_on' : [], 50 'depends_on' : [],
51 'custom': False, 51 'custom': False,
52 'status': None, 52 'status': None,
53 } 53 }
54 54
55 _status_aliases = {
56 'deprecated': 'test',
57 }
58
55 def __init__(self, in_file_path): 59 def __init__(self, in_file_path):
56 super(RuntimeFeatureWriter, self).__init__(in_file_path) 60 super(RuntimeFeatureWriter, self).__init__(in_file_path)
57 self._outputs = {(self.class_name + '.h'): self.generate_header, 61 self._outputs = {(self.class_name + '.h'): self.generate_header,
58 (self.class_name + '.cpp'): self.generate_implementatio n, 62 (self.class_name + '.cpp'): self.generate_implementatio n,
59 } 63 }
60 64
61 self._features = self.in_file.name_dictionaries 65 self._features = self.in_file.name_dictionaries
62 # Make sure the resulting dictionaries have all the keys we expect. 66 # Make sure the resulting dictionaries have all the keys we expect.
63 for feature in self._features: 67 for feature in self._features:
64 feature['first_lowered_name'] = lower_first(feature['name']) 68 feature['first_lowered_name'] = lower_first(feature['name'])
69 feature['status'] = self._status_aliases.get(feature['status'], feat ure['status'])
65 # Most features just check their isFooEnabled bool 70 # Most features just check their isFooEnabled bool
66 # but some depend on more than one bool. 71 # but some depend on more than one bool.
67 enabled_condition = 'is%sEnabled' % feature['name'] 72 enabled_condition = 'is%sEnabled' % feature['name']
68 for dependant_name in feature['depends_on']: 73 for dependant_name in feature['depends_on']:
69 enabled_condition += ' && is%sEnabled' % dependant_name 74 enabled_condition += ' && is%sEnabled' % dependant_name
70 feature['enabled_condition'] = enabled_condition 75 feature['enabled_condition'] = enabled_condition
71 self._non_custom_features = filter(lambda feature: not feature['custom'] , self._features) 76 self._non_custom_features = filter(lambda feature: not feature['custom'] , self._features)
72 77
73 def _feature_sets(self): 78 def _feature_sets(self):
74 # Another way to think of the status levels is as "sets of features" 79 # Another way to think of the status levels is as "sets of features"
75 # which is how we're referring to them in this generator. 80 # which is how we're referring to them in this generator.
76 return self.valid_values['status'] 81 return [status for status in self.valid_values['status'] if status not i n self._status_aliases]
77 82
78 @template_expander.use_jinja(class_name + '.h.tmpl', filters=filters) 83 @template_expander.use_jinja(class_name + '.h.tmpl', filters=filters)
79 def generate_header(self): 84 def generate_header(self):
80 return { 85 return {
81 'features': self._features, 86 'features': self._features,
82 'feature_sets': self._feature_sets(), 87 'feature_sets': self._feature_sets(),
83 } 88 }
84 89
85 @template_expander.use_jinja(class_name + '.cpp.tmpl', filters=filters) 90 @template_expander.use_jinja(class_name + '.cpp.tmpl', filters=filters)
86 def generate_implementation(self): 91 def generate_implementation(self):
87 return { 92 return {
88 'features': self._features, 93 'features': self._features,
89 'feature_sets': self._feature_sets(), 94 'feature_sets': self._feature_sets(),
90 } 95 }
91 96
92 97
93 if __name__ == '__main__': 98 if __name__ == '__main__':
94 in_generator.Maker(RuntimeFeatureWriter).main(sys.argv) 99 in_generator.Maker(RuntimeFeatureWriter).main(sys.argv)
OLDNEW
« no previous file with comments | « no previous file | Source/platform/RuntimeEnabledFeatures.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698