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

Unified Diff: third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Issue 2312823002: Added support for isInherited flags to ComputedStyleBase (Closed)
Patch Set: Rebase and a bit more cleanup work... Maybe needs a rethink Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
diff --git a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
index c9425504570bae6c8afcc3658ecc82f5cbbf2d79..d140fc58adb3df52894eb47601d1fed64acac8b7 100644
--- a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
+++ b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
@@ -19,6 +19,7 @@ namespace blink {
// in ComputedStyle.h.
class CORE_EXPORT ComputedStyleBase : public RefCounted<ComputedStyleBase> {
public:
+ // Empty constructor.
ALWAYS_INLINE ComputedStyleBase() :
RefCounted<ComputedStyleBase>(),
{% for field in fields %}
@@ -28,6 +29,7 @@ public:
{}
~ComputedStyleBase() {}
+ // Copy constructor.
ALWAYS_INLINE ComputedStyleBase(const ComputedStyleBase& o) :
{% for field in fields %}
{% set trailing_comma = "," if field != fields[-1] else "" %}
@@ -35,6 +37,7 @@ public:
{% endfor %}
{}
+ // Comparison functions.
bool operator==(const ComputedStyleBase& o) const
{
return true
@@ -49,7 +52,7 @@ public:
inline bool inheritedEqual(const ComputedStyleBase& o) const
{
return true
- {% for field in fields if field.property['inherited'] %}
+ {% for field in fields if field.comparison_function_independent_inherited or field.comparison_function_non_independent_inherited %}
&& {{field.name}} == o.{{field.name}}
{% endfor %}
&& true;
@@ -58,7 +61,7 @@ public:
inline bool independentInheritedEqual(const ComputedStyleBase& o) const
{
return true
- {% for field in fields if field.property['inherited'] and field.property['independent'] %}
+ {% for field in fields if field.comparison_function_independent_inherited %}
&& {{field.name}} == o.{{field.name}}
{% endfor %}
&& true;
@@ -67,7 +70,7 @@ public:
inline bool nonIndependentInheritedEqual(const ComputedStyleBase& o) const
{
return true
- {% for field in fields if field.property['inherited'] and not field.property['independent'] %}
+ {% for field in fields if field.comparison_function_non_independent_inherited %}
&& {{field.name}} == o.{{field.name}}
{% endfor %}
&& true;
@@ -76,16 +79,17 @@ public:
inline bool nonInheritedEqual(const ComputedStyleBase& o) const
{
return true
- {% for field in fields if not field.property['inherited'] %}
+ {% for field in fields if field.comparison_function_non_inherited %}
&& {{field.name}} == o.{{field.name}}
{% endfor %}
&& true;
}
+ // Resets all fields to their default values.
void setBitDefaults()
{
{% for field in fields %}
- reset{{field.property['upper_camel_name']}}();
+ reset{{field.upper_camel_name}}();
{% endfor %}
}
@@ -94,18 +98,23 @@ public:
NotAtShadowBoundary,
};
void inheritFrom(const ComputedStyleBase& inheritParent, IsAtShadowBoundary isAtShadowBoundary = NotAtShadowBoundary);
+ void copyNonInheritedFromCached(const ComputedStyleBase&);
+ void propagateIndependentInheritedProperties(const ComputedStyleBase& parentStyle);
// Fields.
- // TODO(sashab): Remove initialFoo() static methods and update callers to
- // use resetFoo(), which can be more efficient.
+ // TODO(sashab): Remove initialFoo() static methods and update callers to use
+ // resetFoo(), which can be made more efficient.
+
+ {% for property_name, fields in fields_per_property.items() if fields %}
+ // {{property_name}}
{% for field in fields %}
- // {{field.property['name']}}
- inline static {{field.type}} initial{{field.property['upper_camel_name']}}() { return {{field.default_value}}; }
- {{field.type}} {{field.property['lower_camel_name']}}() const { return static_cast<{{field.type}}>({{field.name}}); }
- void set{{field.property['upper_camel_name']}}({{field.type}} v) { {{field.name}} = static_cast<unsigned>(v); }
- inline void reset{{field.property['upper_camel_name']}}() { {{field.name}} = {{default_value(field)}}; }
+ inline static {{field.type}} initial{{field.upper_camel_name}}() { return {{field.default_value}}; }
+ {{field.type}} {{field.lower_camel_name}}() const { return static_cast<{{field.type}}>({{field.name}}); }
+ void set{{field.upper_camel_name}}({{field.type}} v) { {{field.name}} = static_cast<unsigned>(v); }
+ inline void reset{{field.upper_camel_name}}() { {{field.name}} = {{default_value(field)}}; }
{% endfor %}
+ {% endfor %}
protected:
// Storage.
{% for field in fields %}

Powered by Google App Engine
This is Rietveld 408576698