Commit 228c0897 authored by Anders Hartvoll Ruud's avatar Anders Hartvoll Ruud Committed by Commit Bot

Perform grid property application in CSSProperty classes.

R=futhark@chromium.org

Bug: 751354
Change-Id: I9d2813bc8228bd0346e255bba24a2975fc8de310
Reviewed-on: https://chromium-review.googlesource.com/1067922Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Commit-Queue: Anders Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561822}
parent d843375f
...@@ -97,7 +97,7 @@ class CSSPropertiesWriter(CSSPropertyBaseWriter): ...@@ -97,7 +97,7 @@ class CSSPropertiesWriter(CSSPropertyBaseWriter):
return generate_property_cpp return generate_property_cpp
def calculate_apply_functions_to_declare(self, property_): def calculate_apply_functions_to_declare(self, property_):
if property_['style_builder_template'] in ['background_layer', 'color', 'counter', 'mask_layer']: if property_['style_builder_template'] in ['background_layer', 'color', 'counter', 'grid', 'mask_layer']:
property_['should_implement_apply_functions_in_cpp'] = True property_['should_implement_apply_functions_in_cpp'] = True
property_['should_implement_apply_functions'] = ( property_['should_implement_apply_functions'] = (
...@@ -153,7 +153,8 @@ class CSSPropertiesWriter(CSSPropertyBaseWriter): ...@@ -153,7 +153,8 @@ class CSSPropertiesWriter(CSSPropertyBaseWriter):
if property_.get('style_builder_template') in ['counter']: if property_.get('style_builder_template') in ['counter']:
yield "core/css/css_value_pair.h" yield "core/css/css_value_pair.h"
yield "core/css/css_custom_ident_value.h" yield "core/css/css_custom_ident_value.h"
if property_.get('style_builder_template') in ['grid']:
yield "core/css/resolver/style_builder_converter.h"
if __name__ == '__main__': if __name__ == '__main__':
json5_generator.Maker(CSSPropertiesWriter).main() json5_generator.Maker(CSSPropertiesWriter).main()
...@@ -155,6 +155,61 @@ namespace CSSLonghand { ...@@ -155,6 +155,61 @@ namespace CSSLonghand {
} }
DCHECK(!map.IsEmpty()); DCHECK(!map.IsEmpty());
} }
{% elif property.style_builder_template == 'grid' %}
{% set type = property.style_builder_template_args['type'] %}
{{declare_initial(property.upper_camel_name)}} {
state.Style()->SetGridTemplate{{type}}s(ComputedStyleInitialValues::InitialGridTemplate{{type}}s());
state.Style()->SetNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialNamedGrid{{type}}Lines());
state.Style()->SetOrderedNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialOrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}s(ComputedStyleInitialValues::InitialGridAutoRepeat{{type}}s());
state.Style()->SetGridAutoRepeat{{type}}sInsertionPoint(ComputedStyleInitialValues::InitialGridAutoRepeat{{type}}sInsertionPoint());
state.Style()->SetAutoRepeatNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialNamedGrid{{type}}Lines());
state.Style()->SetAutoRepeatOrderedNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialOrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}sType(ComputedStyleInitialValues::InitialGridAutoRepeat{{type}}sType());
}
{{declare_inherit(property.upper_camel_name)}} {
state.Style()->SetGridTemplate{{type}}s(state.ParentStyle()->GridTemplate{{type}}s());
state.Style()->SetNamedGrid{{type}}Lines(state.ParentStyle()->NamedGrid{{type}}Lines());
state.Style()->SetOrderedNamedGrid{{type}}Lines(state.ParentStyle()->OrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}s(state.ParentStyle()->GridAutoRepeat{{type}}s());
state.Style()->SetGridAutoRepeat{{type}}sInsertionPoint(state.ParentStyle()->GridAutoRepeat{{type}}sInsertionPoint());
state.Style()->SetAutoRepeatNamedGrid{{type}}Lines(state.ParentStyle()->AutoRepeatNamedGrid{{type}}Lines());
state.Style()->SetAutoRepeatOrderedNamedGrid{{type}}Lines(state.ParentStyle()->AutoRepeatOrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}sType(state.ParentStyle()->GridAutoRepeat{{type}}sType());
}
{{declare_value(property.upper_camel_name)}} {
Vector<GridTrackSize> trackSizes;
Vector<GridTrackSize> autoRepeatTrackSizes;
NamedGridLinesMap namedGridLines;
OrderedNamedGridLines orderedNamedGridLines;
NamedGridLinesMap autoRepeatNamedGridLines;
OrderedNamedGridLines autoRepeatOrderedNamedGridLines;
AutoRepeatType autoRepeatType = ComputedStyleInitialValues::InitialGridAutoRepeatType();
size_t autoRepeatInsertionPoint =
ComputedStyleInitialValues::InitialGridAutoRepeatInsertionPoint();
StyleBuilderConverter::ConvertGridTrackList(
value, trackSizes, namedGridLines, orderedNamedGridLines,
autoRepeatTrackSizes, autoRepeatNamedGridLines,
autoRepeatOrderedNamedGridLines, autoRepeatInsertionPoint,
autoRepeatType, state);
const NamedGridAreaMap& namedGridAreas = state.Style()->NamedGridArea();
if (!namedGridAreas.IsEmpty()) {
StyleBuilderConverter::CreateImplicitNamedGridLinesFromGridArea(
namedGridAreas, namedGridLines, kFor{{type}}s);
}
state.Style()->SetGridTemplate{{type}}s(trackSizes);
state.Style()->SetNamedGrid{{type}}Lines(namedGridLines);
state.Style()->SetOrderedNamedGrid{{type}}Lines(orderedNamedGridLines);
state.Style()->SetGridAutoRepeat{{type}}s(autoRepeatTrackSizes);
state.Style()->SetGridAutoRepeat{{type}}sInsertionPoint(
autoRepeatInsertionPoint);
state.Style()->SetAutoRepeatNamedGrid{{type}}Lines(autoRepeatNamedGridLines);
state.Style()->SetAutoRepeatOrderedNamedGrid{{type}}Lines(
autoRepeatOrderedNamedGridLines);
state.Style()->SetGridAutoRepeat{{type}}sType(autoRepeatType);
}
{% endif %} {% endif %}
} // namespace CSSLonghand } // namespace CSSLonghand
......
...@@ -86,65 +86,6 @@ namespace blink { ...@@ -86,65 +86,6 @@ namespace blink {
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% macro apply_grid_template(property_id, type) %}
{{declare_initial_function(property_id)}} {
state.Style()->SetGridTemplate{{type}}s(ComputedStyleInitialValues::InitialGridTemplate{{type}}s());
state.Style()->SetNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialNamedGrid{{type}}Lines());
state.Style()->SetOrderedNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialOrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}s(ComputedStyleInitialValues::InitialGridAutoRepeat{{type}}s());
state.Style()->SetGridAutoRepeat{{type}}sInsertionPoint(ComputedStyleInitialValues::InitialGridAutoRepeat{{type}}sInsertionPoint());
state.Style()->SetAutoRepeatNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialNamedGrid{{type}}Lines());
state.Style()->SetAutoRepeatOrderedNamedGrid{{type}}Lines(ComputedStyleInitialValues::InitialOrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}sType(ComputedStyleInitialValues::InitialGridAutoRepeat{{type}}sType());
}
{{declare_inherit_function(property_id)}} {
state.Style()->SetGridTemplate{{type}}s(state.ParentStyle()->GridTemplate{{type}}s());
state.Style()->SetNamedGrid{{type}}Lines(state.ParentStyle()->NamedGrid{{type}}Lines());
state.Style()->SetOrderedNamedGrid{{type}}Lines(state.ParentStyle()->OrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}s(state.ParentStyle()->GridAutoRepeat{{type}}s());
state.Style()->SetGridAutoRepeat{{type}}sInsertionPoint(state.ParentStyle()->GridAutoRepeat{{type}}sInsertionPoint());
state.Style()->SetAutoRepeatNamedGrid{{type}}Lines(state.ParentStyle()->AutoRepeatNamedGrid{{type}}Lines());
state.Style()->SetAutoRepeatOrderedNamedGrid{{type}}Lines(state.ParentStyle()->AutoRepeatOrderedNamedGrid{{type}}Lines());
state.Style()->SetGridAutoRepeat{{type}}sType(state.ParentStyle()->GridAutoRepeat{{type}}sType());
}
{{declare_value_function(property_id)}} {
Vector<GridTrackSize> trackSizes;
Vector<GridTrackSize> autoRepeatTrackSizes;
NamedGridLinesMap namedGridLines;
OrderedNamedGridLines orderedNamedGridLines;
NamedGridLinesMap autoRepeatNamedGridLines;
OrderedNamedGridLines autoRepeatOrderedNamedGridLines;
AutoRepeatType autoRepeatType = ComputedStyleInitialValues::InitialGridAutoRepeatType();
size_t autoRepeatInsertionPoint =
ComputedStyleInitialValues::InitialGridAutoRepeatInsertionPoint();
StyleBuilderConverter::ConvertGridTrackList(
value, trackSizes, namedGridLines, orderedNamedGridLines,
autoRepeatTrackSizes, autoRepeatNamedGridLines,
autoRepeatOrderedNamedGridLines, autoRepeatInsertionPoint,
autoRepeatType, state);
const NamedGridAreaMap& namedGridAreas = state.Style()->NamedGridArea();
if (!namedGridAreas.IsEmpty()) {
StyleBuilderConverter::CreateImplicitNamedGridLinesFromGridArea(
namedGridAreas, namedGridLines, kFor{{type}}s);
}
state.Style()->SetGridTemplate{{type}}s(trackSizes);
state.Style()->SetNamedGrid{{type}}Lines(namedGridLines);
state.Style()->SetOrderedNamedGrid{{type}}Lines(orderedNamedGridLines);
state.Style()->SetGridAutoRepeat{{type}}s(autoRepeatTrackSizes);
state.Style()->SetGridAutoRepeat{{type}}sInsertionPoint(
autoRepeatInsertionPoint);
state.Style()->SetAutoRepeatNamedGrid{{type}}Lines(autoRepeatNamedGridLines);
state.Style()->SetAutoRepeatOrderedNamedGrid{{type}}Lines(
autoRepeatOrderedNamedGridLines);
state.Style()->SetGridAutoRepeat{{type}}sType(autoRepeatType);
}
{% endmacro %}
{{apply_grid_template('CSSPropertyGridTemplateColumns', 'Column')}}
{{apply_grid_template('CSSPropertyGridTemplateRows', 'Row')}}
{% macro apply_svg_paint(property_id, paint_type) %} {% macro apply_svg_paint(property_id, paint_type) %}
{% set property = properties_by_id[property_id] %} {% set property = properties_by_id[property_id] %}
{% set visited_link_setter = 'SetVisitedLink' + paint_type %} {% set visited_link_setter = 'SetVisitedLink' + paint_type %}
......
...@@ -669,7 +669,9 @@ css_properties("make_core_generated_css_longhand_property_classes") { ...@@ -669,7 +669,9 @@ css_properties("make_core_generated_css_longhand_property_classes") {
"$blink_core_output_dir/css/properties/longhands/grid_row_start.h", "$blink_core_output_dir/css/properties/longhands/grid_row_start.h",
"$blink_core_output_dir/css/properties/longhands/grid_template_areas.h", "$blink_core_output_dir/css/properties/longhands/grid_template_areas.h",
"$blink_core_output_dir/css/properties/longhands/grid_template_columns.h", "$blink_core_output_dir/css/properties/longhands/grid_template_columns.h",
"$blink_core_output_dir/css/properties/longhands/grid_template_columns.cc",
"$blink_core_output_dir/css/properties/longhands/grid_template_rows.h", "$blink_core_output_dir/css/properties/longhands/grid_template_rows.h",
"$blink_core_output_dir/css/properties/longhands/grid_template_rows.cc",
"$blink_core_output_dir/css/properties/longhands/height.h", "$blink_core_output_dir/css/properties/longhands/height.h",
"$blink_core_output_dir/css/properties/longhands/hyphens.h", "$blink_core_output_dir/css/properties/longhands/hyphens.h",
"$blink_core_output_dir/css/properties/longhands/image_orientation.h", "$blink_core_output_dir/css/properties/longhands/image_orientation.h",
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
"border_image", "border_image",
"color", "color",
"counter", "counter",
"grid",
// The legacy template means that regular code generation should not be // The legacy template means that regular code generation should not be
// be performed, and that the property is hard-coded in // be performed, and that the property is hard-coded in
// style_builder_functions.cc.tmpl. // style_builder_functions.cc.tmpl.
...@@ -1821,8 +1822,10 @@ ...@@ -1821,8 +1822,10 @@
"third_party/blink/renderer/core/style/grid_track_size.h"], "third_party/blink/renderer/core/style/grid_track_size.h"],
default_value: "Vector<GridTrackSize>()", default_value: "Vector<GridTrackSize>()",
type_name: "Vector<GridTrackSize>", type_name: "Vector<GridTrackSize>",
style_builder_legacy: true, style_builder_template: "grid",
style_builder_template: "legacy", style_builder_template_args: {
type: "Column",
},
keywords: ["none"], keywords: ["none"],
typedom_types: ["Keyword"] typedom_types: ["Keyword"]
}, },
...@@ -1836,8 +1839,10 @@ ...@@ -1836,8 +1839,10 @@
"third_party/blink/renderer/core/style/grid_track_size.h"], "third_party/blink/renderer/core/style/grid_track_size.h"],
default_value: "Vector<GridTrackSize>()", default_value: "Vector<GridTrackSize>()",
type_name: "Vector<GridTrackSize>", type_name: "Vector<GridTrackSize>",
style_builder_legacy: true, style_builder_template: "grid",
style_builder_template: "legacy", style_builder_template_args: {
type: "Row",
},
keywords: ["none"], keywords: ["none"],
typedom_types: ["Keyword"] typedom_types: ["Keyword"]
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment