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

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

Issue 2919343002: Remove template parameter on ComputedStyleBase. (Closed)
Patch Set: Address comments Created 3 years, 6 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 ca07105ec44fd1e607b76f0f352ddda59697d668..614a49cb91b946b350f9e74bcfbedcba5b866b38 100644
--- a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
+++ b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
@@ -1,6 +1,6 @@
{% from 'macros.tmpl' import license, print_if %}
{% from 'fields/field.tmpl' import encode, getter_expression, setter_expression, declare_storage, fieldwise_compare, fieldwise_copy, fieldwise_diff, fieldwise_pointer_compare_inherited %}
-{% from 'fields/group.tmpl' import define_field_group_class %}
+{% from 'fields/group.tmpl' import declare_field_group_class %}
{{license()}}
#ifndef ComputedStyleBase_h
@@ -36,15 +36,8 @@
namespace blink {
-struct SameSizeAsComputedStyleBase {
- {% if computed_style.subgroups is defined %}
- void* dataRefs[{{computed_style.subgroups|length}}];
- {% endif %}
- {% for field in computed_style.fields|rejectattr("is_bit_field") %}
- {{field.type_name}} {{field.name}};
- {% endfor %}
- unsigned m_bit_fields[{{computed_style.num_32_bit_words_for_bit_fields}}];
-};
+// Forward declaration for diff functions.
+class ComputedStyle;
// The generated portion of ComputedStyle. For more info, see the header comment
// in ComputedStyle.h.
@@ -82,12 +75,6 @@ struct SameSizeAsComputedStyleBase {
// example, a field with the 'keyword' template has only one setter, whereas an
// 'external' field has an extra setter that takes an rvalue reference. A list
// of the available templates can be found in CSSProperties.json5.
-//
-// ComputedStyleBase is a template class to allow it to use functions on
-// ComputedStyle. This allows ComputedStyleBase to use hand written functions it
-// would otherwise not know about. It should only be templated with the
-// ComputedStyle class and no other class is allowed.
-template <class ComputedStyleFinal>
class CORE_EXPORT ComputedStyleBase {
public:
inline bool IndependentInheritedEqual(const ComputedStyleBase& o) const {
@@ -142,39 +129,18 @@ class CORE_EXPORT ComputedStyleBase {
};
void InheritFrom(const ComputedStyleBase& other,
- IsAtShadowBoundary isAtShadowBoundary) {
- {{fieldwise_copy(computed_style, computed_style.all_fields
- |selectattr("is_property")
- |selectattr("is_inherited")
- |list
- )|indent(4)}}
- }
+ IsAtShadowBoundary isAtShadowBoundary);
void CopyNonInheritedFromCached(
- const ComputedStyleBase& other) {
- {{fieldwise_copy(computed_style, computed_style.all_fields
- |rejectattr("has_custom_compare_and_copy")
- |rejectattr("is_inherited")
- |list
- )|indent(4)}}
- }
+ const ComputedStyleBase& other);
// Copies the values of any independent inherited properties from the parent
// style that are marked as inherited by this style.
void PropagateIndependentInheritedProperties(
- const ComputedStyleBase& parentStyle) {
- {% for field in computed_style.all_fields if field.is_property and field.is_independent %}
- if ({{field.is_inherited_method_name}}())
- {{setter_expression(field)}} = parentStyle.{{getter_expression(field)}};
- {% endfor %}
- }
+ const ComputedStyleBase& parentStyle);
{% for name, groups_to_diff in diff_functions_map.items() %}
- bool {{name}}(const ComputedStyleFinal& other) const {
- const ComputedStyleFinal& self = static_cast<const ComputedStyleFinal&>(*this);
- {{fieldwise_diff(groups_to_diff)|indent(4)}}
- return false;
- }
+ static bool {{name}}(const ComputedStyle& a, const ComputedStyle& b);
{% endfor %}
// Fields.
@@ -188,23 +154,14 @@ class CORE_EXPORT ComputedStyleBase {
{% endfor %}
private:
{% for subgroup in computed_style.subgroups %}
- {{define_field_group_class(subgroup)|indent(2)}}
+ {{declare_field_group_class(subgroup)|indent(2)}}
{% endfor %}
protected:
// Constructor and destructor are protected so that only the parent class ComputedStyle
// can instantiate this class.
- ALWAYS_INLINE ComputedStyleBase() :
- {% for field in computed_style.fields %}
- {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.last, ',')}}
- {% endfor %}
- {
- static_assert(std::is_same<ComputedStyle, ComputedStyleFinal>::value, "ComputedStyleBase can only be templated with ComputedStyle");
- {% for subgroup in computed_style.subgroups %}
- {{subgroup.member_name}}.Init();
- {% endfor %}
- }
+ ComputedStyleBase();
{% for field in computed_style.all_fields|sort(attribute='name') %}
{% if field.field_template in ('storage_only', 'monotonic_flag', 'external') %}

Powered by Google App Engine
This is Rietveld 408576698