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

Side by Side Diff: Source/build/scripts/templates/StyleBuilder.cpp.tmpl

Issue 350333003: Cascade declared property values instead of applying values on top of each other (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 6 years, 4 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 | « Source/build/scripts/make_style_builder.py ('k') | Source/core/core.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 {% from 'macros.tmpl' import license %} 1 {% from 'macros.tmpl' import license %}
2 {{license()}} 2 {{license()}}
3 3
4 #include "config.h" 4 #include "config.h"
5 #include "core/css/resolver/StyleBuilder.h" 5 #include "core/css/resolver/StyleBuilder.h"
6 6
7 #include "StyleBuilderFunctions.h" 7 #include "StyleBuilderFunctions.h"
8 #include "core/css/CSSProperty.h" 8 #include "core/css/CSSProperty.h"
9 #include "core/css/resolver/StyleResolverState.h" 9 #include "core/css/resolver/StyleResolverState.h"
10 10
11 // FIXME: currently we're just generating a switch statement, but we should 11 // FIXME: currently we're just generating a switch statement, but we should
12 // test other variations for performance once we have more properties here. 12 // test other variations for performance once we have more properties here.
13 13
14 namespace blink { 14 namespace blink {
15 15
16 void StyleBuilder::applyProperty(CSSPropertyID property, StyleResolverState& sta te, CSSValue* value, bool isInitial, bool isInherit) { 16 void StyleBuilder::applyProperty(CSSPropertyID property, StyleResolverState& sta te, CSSValue* value, bool isInitial, bool isInherit) {
17 switch(property) { 17 switch(property) {
18 {% for property_id, property in properties.items() 18 {% for property_id, property in properties.items()
19 if not property.direction_aware and not property.skip %} 19 if property.should_declare_functions %}
20 {% set used_property = properties[property.use_handlers_for] or property %}
21 {% set used_property_id = used_property.property_id %}
22 case {{property_id}}: 20 case {{property_id}}:
23 if (isInitial) 21 if (isInitial)
24 StyleBuilderFunctions::applyInitial{{used_property_id}}(state); 22 StyleBuilderFunctions::applyInitial{{property_id}}(state);
25 else if (isInherit) 23 else if (isInherit)
26 StyleBuilderFunctions::applyInherit{{used_property_id}}(state); 24 StyleBuilderFunctions::applyInherit{{property_id}}(state);
27 else 25 else
28 StyleBuilderFunctions::applyValue{{used_property_id}}(state, value); 26 StyleBuilderFunctions::applyValue{{property_id}}(state, value);
29 return; 27 return;
30 28
31 {% endfor %} 29 {% endfor %}
32 {% for property_id, property in properties.items() if property.direction_awa re %}
33 case {{property_id}}:
34 {% endfor %}
35 {
36 CSSPropertyID resolvedProperty = CSSProperty::resolveDirectionAwarePrope rty(property, state.style()->direction(), state.style()->writingMode());
37 ASSERT(resolvedProperty != property);
38 applyProperty(resolvedProperty, state, value);
39 return;
40 }
41 {% for property_id, property in properties.items() if property.skip %} 30 {% for property_id, property in properties.items() if property.skip %}
42 case {{property_id}}: 31 case {{property_id}}:
43 {% endfor %} 32 {% endfor %}
44 return; 33 return;
45 default: 34 default:
46 // FIXME: We should explicitly handle all cases here once we merge the v arious .in files 35 // FIXME: We should explicitly handle all cases here once we merge the v arious .in files
47 ASSERT_NOT_REACHED(); 36 ASSERT_NOT_REACHED();
48 } 37 }
49 } 38 }
50 39
51 } // namespace blink 40 } // namespace blink
OLDNEW
« no previous file with comments | « Source/build/scripts/make_style_builder.py ('k') | Source/core/core.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698