| Index: third_party/WebKit/Source/build/scripts/make_computed_style_base.py
|
| diff --git a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
|
| index e301f3b653fbb456da6bf0f255c704cd3a165ead..aeba875a4778a7c63c2b8a57e7c124e8ffb408b2 100755
|
| --- a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
|
| +++ b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
|
| @@ -35,8 +35,9 @@ class Field(object):
|
| self.name = kwargs.pop('name')
|
| # Name of property field is for
|
| self.property_name = kwargs.pop('property_name')
|
| - # Internal field storage type
|
| + # Internal field storage type (storage_type_path can be None)
|
| self.storage_type = kwargs.pop('storage_type')
|
| + self.storage_type_path = kwargs.pop('storage_type_path')
|
| # Bits needed for storage
|
| self.size = kwargs.pop('size')
|
| # Default value for field
|
| @@ -78,7 +79,8 @@ class ComputedStyleBaseWriter(make_style_builder.StyleBuilderWriter):
|
| # A map of enum name -> list of enum values
|
| self._computed_enums = {}
|
| for property in self._properties.values():
|
| - if property['keyword_only']:
|
| + # Only generate enums for keyword properties that use the default field_storage_type.
|
| + if property['keyword_only'] and property['field_storage_type'] is None:
|
| enum_name = property['type_name']
|
| # From the Blink style guide: Enum members should use InterCaps with an initial capital letter. [names-enum-members]
|
| enum_values = [camel_case(k) for k in property['keywords']]
|
| @@ -94,7 +96,13 @@ class ComputedStyleBaseWriter(make_style_builder.StyleBuilderWriter):
|
| # From the Blink style guide: Other data members should be prefixed by "m_". [names-data-members]
|
| field_name = 'm_' + property_name_lower
|
| bits_needed = math.log(len(property['keywords']), 2)
|
| +
|
| + # Separate the type path from the type name, if specified.
|
| type_name = property['type_name']
|
| + type_path = None
|
| + if property['field_storage_type']:
|
| + type_path = property['field_storage_type']
|
| + type_name = type_path.split('/')[-1]
|
|
|
| assert property['initial_keyword'] is not None, \
|
| ('MakeComputedStyleBase requires an initial keyword for keyword_only values, none specified '
|
| @@ -111,6 +119,7 @@ class ComputedStyleBaseWriter(make_style_builder.StyleBuilderWriter):
|
| name='m_' + field_name_suffix_lower,
|
| property_name=property['name'],
|
| storage_type='bool',
|
| + storage_type_path=None,
|
| size=1,
|
| default_value='true',
|
| getter_method_name=field_name_suffix_lower,
|
| @@ -127,6 +136,7 @@ class ComputedStyleBaseWriter(make_style_builder.StyleBuilderWriter):
|
| inherited=property['inherited'],
|
| independent=property['independent'],
|
| storage_type=type_name,
|
| + storage_type_path=type_path,
|
| size=int(math.ceil(bits_needed)),
|
| default_value=default_value,
|
| getter_method_name=property_name_lower,
|
|
|