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

Unified Diff: third_party/WebKit/Source/build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl

Issue 2567473002: Made a generator for CSSPropertyDescriptor.cpp (Closed)
Patch Set: fixed some formatting Created 4 years 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/CSSPropertyDescriptor.cpp.tmpl
diff --git a/third_party/WebKit/Source/core/css/properties/CSSPropertyDescriptor.cpp b/third_party/WebKit/Source/build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl
similarity index 53%
rename from third_party/WebKit/Source/core/css/properties/CSSPropertyDescriptor.cpp
rename to third_party/WebKit/Source/build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl
index 10e77269e06fa28cae33f81168acd26bb1825f7b..e3e27d155162c69517b25d2c2f2248ffa608984f 100644
--- a/third_party/WebKit/Source/core/css/properties/CSSPropertyDescriptor.cpp
+++ b/third_party/WebKit/Source/build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl
@@ -1,30 +1,28 @@
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
#include "core/css/properties/CSSPropertyDescriptor.h"
-#include "core/css/properties/CSSPropertyAPIPadding.h"
+{% for api_class in api_classes %}
+#include "core/css/properties/{{api_class.classname}}.h"
+{% endfor %}
namespace blink {
-// Initialises a CSSPropertyDescriptor. When functions are added to
-// CSSPropertyAPI, also add them to the struct initaliser below.
-#define GET_DESCRIPTOR(X) \
- { X::parseSingleValue, true }
-
-// Initialises an invalid CSSPropertyDescriptor. When functions are added to
-// CSSPropertyAPI, add a nullptr to represent their function pointers in the
-// struct initaliser.
-#define GET_INVALID_DESCRIPTOR() \
- { nullptr, false }
-
static_assert(
std::is_pod<CSSPropertyDescriptor>::value,
"CSSPropertyDescriptor must be a POD to support using initializer lists.");
static CSSPropertyDescriptor cssPropertyDescriptors[] = {
- GET_INVALID_DESCRIPTOR(), GET_DESCRIPTOR(CSSPropertyAPIWebkitPadding),
+ // An invalid CSSPropertyDescriptor. When functions are added to
+ // CSSPropertyAPI, add a nullptr to represent their function pointers in the
+ // struct initaliser.
+ { nullptr, false },
+ {% for api_class in api_classes %}
+ // For each class we add a CSSPropertyDescriptor to the array. When functions
+ // are added to CSSPropertyAPI, also add them to the struct initaliser below.
+ { {{api_class.classname}}::parseSingleValue, true }
+ {% endfor %}
};
const CSSPropertyDescriptor& CSSPropertyDescriptor::get(CSSPropertyID id) {
@@ -34,14 +32,12 @@ const CSSPropertyDescriptor& CSSPropertyDescriptor::get(CSSPropertyID id) {
// cssPropertyDescriptors[id], and generate the cssPropertyDescriptors array
// to hold invalid descriptors for methods which haven't been implemented yet.
switch (id) {
- case CSSPropertyWebkitPaddingEnd:
- return cssPropertyDescriptors[1];
- case CSSPropertyWebkitPaddingStart:
- return cssPropertyDescriptors[1];
- case CSSPropertyWebkitPaddingBefore:
- return cssPropertyDescriptors[1];
- case CSSPropertyWebkitPaddingAfter:
- return cssPropertyDescriptors[1];
+ {% for api_class in api_classes %}
+ {% for property_id in api_class.property_ids %}
+ case {{property_id}}:
+ {% endfor %}
+ return cssPropertyDescriptors[{{api_class.index}}];
+ {% endfor %}
default:
return cssPropertyDescriptors[0];
}

Powered by Google App Engine
This is Rietveld 408576698