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

Side by Side Diff: third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Issue 2911593002: Ensure the diff functions are generated in order specified in the JSON file (Closed)
Patch Set: shend@ suggestions Created 3 years, 7 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 | « no previous file | no next file » | 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 2016 The Chromium Authors. All rights reserved. 2 # Copyright 2016 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import math 6 import math
7 import sys 7 import sys
8 8
9 import json5_generator 9 import json5_generator
10 import template_expander 10 import template_expander
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 field_dependencies += entry['field_dependencies'] 204 field_dependencies += entry['field_dependencies']
205 return field_dependencies 205 return field_dependencies
206 206
207 207
208 def _create_diff_groups(fields_to_diff, methods_to_diff, predicates_to_test, roo t_group): 208 def _create_diff_groups(fields_to_diff, methods_to_diff, predicates_to_test, roo t_group):
209 diff_group = DiffGroup(root_group.member_name) 209 diff_group = DiffGroup(root_group.member_name)
210 field_dependencies = _list_field_dependencies(methods_to_diff + predicates_t o_test) 210 field_dependencies = _list_field_dependencies(methods_to_diff + predicates_t o_test)
211 for subgroup in root_group.subgroups: 211 for subgroup in root_group.subgroups:
212 if any(field.property_name in (fields_to_diff + field_dependencies) for field in subgroup.all_fields): 212 if any(field.property_name in (fields_to_diff + field_dependencies) for field in subgroup.all_fields):
213 diff_group.subgroups.append(_create_diff_groups(fields_to_diff, meth ods_to_diff, predicates_to_test, subgroup)) 213 diff_group.subgroups.append(_create_diff_groups(fields_to_diff, meth ods_to_diff, predicates_to_test, subgroup))
214 for field in root_group.fields: 214 for entry in fields_to_diff:
215 if not field.is_inherited_flag: 215 for field in root_group.fields:
216 if field.property_name in fields_to_diff: 216 if not field.is_inherited_flag and entry == field.property_name:
217 diff_group.expressions.append(field.getter_expression) 217 diff_group.expressions.append(field.getter_expression)
218 for entry in methods_to_diff: 218 for entry in methods_to_diff:
219 if field.property_name in entry['field_dependencies']: 219 for field in root_group.fields:
220 diff_group.expressions.append(entry['method']) 220 if not field.is_inherited_flag and field.property_name in entry['fie ld_dependencies']:
221 for entry in predicates_to_test: 221 diff_group.expressions.append(entry['method'])
222 if field.property_name in entry['field_dependencies']: 222 for entry in predicates_to_test:
223 diff_group.predicates.append(entry['predicate']) 223 for field in root_group.fields:
224 if not field.is_inherited_flag and field.property_name in entry['fie ld_dependencies']:
225 diff_group.predicates.append(entry['predicate'])
224 return diff_group 226 return diff_group
225 227
226 228
227 def _create_enums(properties): 229 def _create_enums(properties):
228 """ 230 """
229 Returns an OrderedDict of enums to be generated, enum name -> [list of enum values] 231 Returns an OrderedDict of enums to be generated, enum name -> [list of enum values]
230 """ 232 """
231 enums = {} 233 enums = {}
232 for property_ in properties: 234 for property_ in properties:
233 # Only generate enums for keyword properties that use the default field_ type_path. 235 # Only generate enums for keyword properties that use the default field_ type_path.
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 459
458 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') 460 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl')
459 def generate_base_computed_style_constants(self): 461 def generate_base_computed_style_constants(self):
460 return { 462 return {
461 'properties': self._properties, 463 'properties': self._properties,
462 'enums': self._generated_enums, 464 'enums': self._generated_enums,
463 } 465 }
464 466
465 if __name__ == '__main__': 467 if __name__ == '__main__':
466 json5_generator.Maker(ComputedStyleBaseWriter).main() 468 json5_generator.Maker(ComputedStyleBaseWriter).main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698