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

Side by Side Diff: third_party/WebKit/Source/core/css/properties/CSSPropertyAPI.h

Issue 2654403003: Added api_methods flag to CSSProperties.json5. (Closed)
Patch Set: Added valid_type to CSSProperties.json5 Created 3 years, 10 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CSSPropertyAPI_h 5 #ifndef CSSPropertyAPI_h
6 #define CSSPropertyAPI_h 6 #define CSSPropertyAPI_h
7 7
8 #include "core/CSSPropertyNames.h" 8 #include "core/CSSPropertyNames.h"
9 #include "wtf/Allocator.h" 9 #include "wtf/Allocator.h"
10 10
11 namespace blink { 11 namespace blink {
12 12
13 class CSSValue; 13 class CSSValue;
14 class CSSParserContext; 14 class CSSParserContext;
15 class CSSParserTokenRange; 15 class CSSParserTokenRange;
16 16
17 // We will use this API to represent all functions used for property-specific 17 // We will use this API to represent all functions used for property-specific
18 // logic inside the blink style engine. All specific properties are subclasses 18 // logic inside the blink style engine. All specific properties are subclasses
19 // of CSSPropertyAPI. 19 // of CSSPropertyAPI.
20 // 20 //
21 // To add a new property using this API: 21 // To add a new implementation of this API for a property:
22 // - Make a class that implements CSSPropertyAPI, and implement the static 22 // - Make a class that implements CSSPropertyAPI.
23 // methods. 23 // - For each method that you wish to implement in this class, add this method
24 // - Update the cssPropertyDescriptors array in CSSPropertyDescriptor.cpp to 24 // name to the api_methods flag in CSSProperties.json5.
25 // call GET_DESCRIPTOR(classname). 25 // - Implement these methods in the .cpp file.
26 // 26 //
27 // To add new functions using this API: 27 // To add new functions to this API:
28 // - New functions and static variables can be added in this class. A default 28 // - Add the function to the struct below.
29 // implementation of functions can optionally be provided. 29 // - Add the function to CSSPropertyAPIFiles.h.tmpl template file, surrounded
30 // - When adding new functions, also add them to GET_DESCRIPTOR, and the get() 30 // with an {% if "methodName" in implementedMethods %} check.
31 // method in CSSPropertyDescriptors.cpp, and the descriptor struct in 31 // - Add the function name to the valid_methods array in
32 // CSSPropertyDescriptor.h. 32 // make_css_property_apis.py.
33 // - Add function to the initializer list in the cssPropertyDescriptors array
34 // in CSSPropertyDescriptor.cpp.tmpl, and add a nullptr to the invalid
35 // CSSPropertyDescriptor.
sashab 2017/01/31 22:50:58 Ahh I'm so happy to see that we are maintaining th
33 class CSSPropertyAPI { 36 class CSSPropertyAPI {
34 STATIC_ONLY(CSSPropertyAPI); 37 STATIC_ONLY(CSSPropertyAPI);
35 38
36 public: 39 public:
37 // Parses a single CSS property and returns the corresponding CSSValue. If the 40 // Parses a single CSS property and returns the corresponding CSSValue. If the
38 // input is invalid it returns nullptr. 41 // input is invalid it returns nullptr.
39 static const CSSValue* parseSingleValue(CSSParserTokenRange&, 42 static const CSSValue* parseSingleValue(CSSParserTokenRange&,
40 const CSSParserContext*); 43 const CSSParserContext*) {
44 NOTREACHED();
sashab 2017/01/31 22:50:58 Add comment above this line like // No code should
45 return nullptr;
46 }
41 }; 47 };
42 48
43 } // namespace blink 49 } // namespace blink
44 50
45 #endif // CSSPropertyAPI_h 51 #endif // CSSPropertyAPI_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698