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

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

Issue 2793843002: Generalise 'flag' template to 'primitive' when generating ComputedStyle. (Closed)
Patch Set: Created 3 years, 8 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 | third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl » ('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 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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 size = int(math.ceil(math.log(len(property_['keywords']), 2))) 186 size = int(math.ceil(math.log(len(property_['keywords']), 2)))
187 elif property_['field_template'] == 'storage_only': 187 elif property_['field_template'] == 'storage_only':
188 # 'storage_only' fields need to specify a size, type_name and default_va lue 188 # 'storage_only' fields need to specify a size, type_name and default_va lue
189 type_name = property_['type_name'] 189 type_name = property_['type_name']
190 default_value = property_['default_value'] 190 default_value = property_['default_value']
191 size = property_['size'] 191 size = property_['size']
192 elif property_['field_template'] == 'external': 192 elif property_['field_template'] == 'external':
193 type_name = property_['type_name'] 193 type_name = property_['type_name']
194 default_value = property_['default_value'] 194 default_value = property_['default_value']
195 size = None 195 size = None
196 elif property_['field_template'] == 'primitive':
197 type_name = property_['type_name']
198 default_value = property_['default_value']
199 size = 1 if type_name == 'bool' else None # pack bools with 1 bit.
196 else: 200 else:
197 assert property_['field_template'] in ('flag', 'monotonic_flag') 201 assert property_['field_template'] in ('monotonic_flag',)
198 type_name = 'bool' 202 type_name = 'bool'
199 default_value = 'false' 203 default_value = 'false'
200 size = 1 204 size = 1
201 205
202 return Field( 206 return Field(
203 field_role, 207 field_role,
204 name_for_methods, 208 name_for_methods,
205 property_name=property_['name'], 209 property_name=property_['name'],
206 inherited=property_['inherited'], 210 inherited=property_['inherited'],
207 independent=property_['independent'], 211 independent=property_['independent'],
208 type_name=type_name, 212 type_name=type_name,
209 field_template=property_['field_template'], 213 field_template=property_['field_template'],
210 size=size, 214 size=size,
211 default_value=default_value, 215 default_value=default_value,
212 ) 216 )
213 217
214 218
215 def _create_inherited_flag_field(property_): 219 def _create_inherited_flag_field(property_):
216 """ 220 """
217 Create the field used for an inheritance fast path from an independent CSS p roperty, 221 Create the field used for an inheritance fast path from an independent CSS p roperty,
218 and return the Field object. 222 and return the Field object.
219 """ 223 """
220 return Field( 224 return Field(
221 'inherited_flag', 225 'inherited_flag',
222 join_name(property_['name_for_methods'], 'is inherited'), 226 join_name(property_['name_for_methods'], 'is inherited'),
223 property_name=property_['name'], 227 property_name=property_['name'],
224 type_name='bool', 228 type_name='bool',
225 field_template='flag', 229 field_template='primitive',
226 size=1, 230 size=1,
227 default_value='true', 231 default_value='true',
228 ) 232 )
229 233
230 234
231 def _create_fields(field_role, properties): 235 def _create_fields(field_role, properties):
232 """ 236 """
233 Create ComputedStyle fields from properties or nonproperties and return a li st of Field objects. 237 Create ComputedStyle fields from properties or nonproperties and return a li st of Field objects.
234 """ 238 """
235 fields = [] 239 fields = []
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 'mapping': [(enum_value_name(k), enum_for_css_keyword(k)) fo r k in property_['keywords']], 389 'mapping': [(enum_value_name(k), enum_for_css_keyword(k)) fo r k in property_['keywords']],
386 } 390 }
387 391
388 return { 392 return {
389 'include_paths': self._include_paths, 393 'include_paths': self._include_paths,
390 'mappings': mappings, 394 'mappings': mappings,
391 } 395 }
392 396
393 if __name__ == '__main__': 397 if __name__ == '__main__':
394 json5_generator.Maker(ComputedStyleBaseWriter).main() 398 json5_generator.Maker(ComputedStyleBaseWriter).main()
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698