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

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

Issue 2351993002: Added support for non-inherited flags in ComputedStyleBase (Closed)
Patch Set: Rebase Created 4 years, 2 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
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 from collections import namedtuple 6 from collections import namedtuple
7 import math 7 import math
8 import sys 8 import sys
9 9
10 import in_generator 10 import in_generator
(...skipping 24 matching lines...) Expand all
35 # Name of field member variable 35 # Name of field member variable
36 'name', 36 'name',
37 # Property field is for 37 # Property field is for
38 'property', 38 'property',
39 # Field storage type 39 # Field storage type
40 'type', 40 'type',
41 # Bits needed for storage 41 # Bits needed for storage
42 'size', 42 'size',
43 # Default value for field 43 # Default value for field
44 'default_value', 44 'default_value',
45 # Method names
46 'getter_method_name',
47 'setter_method_name',
48 'initial_method_name',
49 'resetter_method_name',
45 ]) 50 ])
46 self._fields = [] 51 self._fields = []
47 for property in self._properties.values(): 52 for property in self._properties.values():
48 if property['keyword_only']: 53 if property['keyword_only']:
54 property_name = property['upper_camel_name']
55 if property['name_for_methods']:
56 property_name = property['name_for_methods']
57 property_name_lower = property_name[0].lower() + property_name[1 :]
58
49 # From the Blink style guide: Other data members should be prefi xed by "m_". [names-data-members] 59 # From the Blink style guide: Other data members should be prefi xed by "m_". [names-data-members]
50 field_name = 'm_' + property['lower_camel_name'] 60 field_name = 'm_' + property_name_lower
51 bits_needed = math.log(len(property['keywords']), 2) 61 bits_needed = math.log(len(property['keywords']), 2)
52 type_name = property['type_name'] 62 type_name = property['type_name']
53 # For now, assume the default value is the first enum value. 63 # For now, assume the default value is the first enum value.
54 default_value = type_name + '::' + self._computed_enums[type_nam e][0] 64 default_value = type_name + '::' + self._computed_enums[type_nam e][0]
65
55 self._fields.append(Field( 66 self._fields.append(Field(
56 name=field_name, 67 name=field_name,
57 property=property, 68 property=property,
58 type=type_name, 69 type=type_name,
59 size=int(math.ceil(bits_needed)), 70 size=int(math.ceil(bits_needed)),
60 default_value=default_value, 71 default_value=default_value,
72 getter_method_name=property_name_lower,
73 setter_method_name='set' + property_name,
74 initial_method_name='initial' + property_name,
75 resetter_method_name='reset' + property_name,
61 )) 76 ))
62 77
63 @template_expander.use_jinja('ComputedStyleBase.h.tmpl') 78 @template_expander.use_jinja('ComputedStyleBase.h.tmpl')
64 def generate_base_computed_style_h(self): 79 def generate_base_computed_style_h(self):
65 return { 80 return {
66 'properties': self._properties, 81 'properties': self._properties,
67 'enums': self._computed_enums, 82 'enums': self._computed_enums,
68 'fields': self._fields, 83 'fields': self._fields,
69 } 84 }
70 85
71 @template_expander.use_jinja('ComputedStyleBase.cpp.tmpl') 86 @template_expander.use_jinja('ComputedStyleBase.cpp.tmpl')
72 def generate_base_computed_style_cpp(self): 87 def generate_base_computed_style_cpp(self):
73 return { 88 return {
74 'properties': self._properties, 89 'properties': self._properties,
75 'enums': self._computed_enums, 90 'enums': self._computed_enums,
76 'fields': self._fields, 91 'fields': self._fields,
77 } 92 }
78 93
79 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl') 94 @template_expander.use_jinja('ComputedStyleBaseConstants.h.tmpl')
80 def generate_base_computed_style_constants(self): 95 def generate_base_computed_style_constants(self):
81 return { 96 return {
82 'properties': self._properties, 97 'properties': self._properties,
83 'enums': self._computed_enums, 98 'enums': self._computed_enums,
84 'fields': self._fields, 99 'fields': self._fields,
85 } 100 }
86 101
87 if __name__ == '__main__': 102 if __name__ == '__main__':
88 in_generator.Maker(ComputedStyleBaseWriter).main(sys.argv) 103 in_generator.Maker(ComputedStyleBaseWriter).main(sys.argv)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698