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

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

Issue 2668093003: Revert of Added api_methods flag to CSSProperties.json5. (Closed)
Patch Set: 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
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSProperties.json5 ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 implementation of this API for a property: 21 // To add a new property using this API:
22 // - Make a class that implements CSSPropertyAPI. 22 // - Make a class that implements CSSPropertyAPI, and implement the static
23 // - For each method that you wish to implement in this class, add this method 23 // methods.
24 // name to the api_methods flag in CSSProperties.json5. 24 // - Update the cssPropertyDescriptors array in CSSPropertyDescriptor.cpp to
25 // - Implement these methods in the .cpp file. 25 // call GET_DESCRIPTOR(classname).
26 // 26 //
27 // To add new functions to this API: 27 // To add new functions using this API:
28 // - Add the function to the struct below. 28 // - New functions and static variables can be added in this class. A default
29 // - Add the function to CSSPropertyAPIFiles.h.tmpl template file, surrounded 29 // implementation of functions can optionally be provided.
30 // with an {% if "methodName" in implementedMethods %} check. 30 // - When adding new functions, also add them to GET_DESCRIPTOR, and the get()
31 // - Add the function name to the valid_methods array in 31 // method in CSSPropertyDescriptors.cpp, and the descriptor struct in
32 // make_css_property_apis.py. 32 // CSSPropertyDescriptor.h.
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.
36 class CSSPropertyAPI { 33 class CSSPropertyAPI {
37 STATIC_ONLY(CSSPropertyAPI); 34 STATIC_ONLY(CSSPropertyAPI);
38 35
39 public: 36 public:
40 // Parses a single CSS property and returns the corresponding CSSValue. If the 37 // Parses a single CSS property and returns the corresponding CSSValue. If the
41 // input is invalid it returns nullptr. 38 // input is invalid it returns nullptr.
42 static const CSSValue* parseSingleValue(CSSParserTokenRange&, 39 static const CSSValue* parseSingleValue(CSSParserTokenRange&,
43 const CSSParserContext*) { 40 const CSSParserContext*);
44 // No code should reach here, since properties either have their own
45 // implementations of this method or store nullptr in their descriptor.
46 NOTREACHED();
47 return nullptr;
48 }
49 }; 41 };
50 42
51 } // namespace blink 43 } // namespace blink
52 44
53 #endif // CSSPropertyAPI_h 45 #endif // CSSPropertyAPI_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSProperties.json5 ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698