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

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

Issue 2654783004: Store PropertyRegistry::Registrations on CSSInterpolationTypes for registered custom properties (Closed)
Patch Set: Rebased 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 PropertyRegistration_h 5 #ifndef PropertyRegistration_h
6 #define PropertyRegistration_h 6 #define PropertyRegistration_h
7 7
8 #include "core/animation/InterpolationType.h" 8 #include "core/animation/CSSInterpolationType.h"
9 #include "core/animation/InterpolationTypesMap.h" 9 #include "core/animation/InterpolationTypesMap.h"
10 #include "core/css/CSSSyntaxDescriptor.h" 10 #include "core/css/CSSSyntaxDescriptor.h"
11 #include "core/css/CSSValue.h" 11 #include "core/css/CSSValue.h"
12 #include "core/css/CSSVariableData.h" 12 #include "core/css/CSSVariableData.h"
13 #include "wtf/Allocator.h" 13 #include "wtf/Allocator.h"
14 #include "wtf/RefPtr.h" 14 #include "wtf/RefPtr.h"
15 #include "wtf/text/WTFString.h" 15 #include "wtf/text/WTFString.h"
16 16
17 namespace blink { 17 namespace blink {
18 18
19 class ExceptionState; 19 class ExceptionState;
20 class PropertyDescriptor; 20 class PropertyDescriptor;
21 class ScriptState; 21 class ScriptState;
22 22
23 using CSSInterpolationTypes = Vector<std::unique_ptr<CSSInterpolationType>>;
24
23 class PropertyRegistration 25 class PropertyRegistration
24 : public GarbageCollectedFinalized<PropertyRegistration> { 26 : public GarbageCollectedFinalized<PropertyRegistration> {
25 public: 27 public:
26 static void registerProperty(ScriptState*, 28 static void registerProperty(ScriptState*,
27 const PropertyDescriptor&, 29 const PropertyDescriptor&,
28 ExceptionState&); 30 ExceptionState&);
29 31
30 PropertyRegistration(const CSSSyntaxDescriptor& syntax, 32 PropertyRegistration(const CSSSyntaxDescriptor&,
31 bool inherits, 33 bool inherits,
32 const CSSValue* initial, 34 const CSSValue* initial,
33 PassRefPtr<CSSVariableData> initialVariableData, 35 PassRefPtr<CSSVariableData> initialVariableData,
34 InterpolationTypes interpolationTypes) 36 CSSInterpolationTypes);
35 : m_syntax(syntax),
36 m_inherits(inherits),
37 m_initial(initial),
38 m_initialVariableData(initialVariableData),
39 m_interpolationTypes(std::move(interpolationTypes)) {}
40 37
41 const CSSSyntaxDescriptor& syntax() const { return m_syntax; } 38 const CSSSyntaxDescriptor& syntax() const { return m_syntax; }
42 bool inherits() const { return m_inherits; } 39 bool inherits() const { return m_inherits; }
43 const CSSValue* initial() const { return m_initial; } 40 const CSSValue* initial() const { return m_initial; }
44 CSSVariableData* initialVariableData() const { 41 CSSVariableData* initialVariableData() const {
45 return m_initialVariableData.get(); 42 return m_initialVariableData.get();
46 } 43 }
47 const InterpolationTypes& interpolationTypes() const { 44 const InterpolationTypes& interpolationTypes() const {
48 return m_interpolationTypes; 45 return m_interpolationTypes;
49 } 46 }
50 47
51 DEFINE_INLINE_TRACE() { visitor->trace(m_initial); } 48 DEFINE_INLINE_TRACE() { visitor->trace(m_initial); }
52 49
53 private: 50 private:
54 const CSSSyntaxDescriptor m_syntax; 51 const CSSSyntaxDescriptor m_syntax;
55 const bool m_inherits; 52 const bool m_inherits;
56 const Member<const CSSValue> m_initial; 53 const Member<const CSSValue> m_initial;
57 const RefPtr<CSSVariableData> m_initialVariableData; 54 const RefPtr<CSSVariableData> m_initialVariableData;
58 const InterpolationTypes m_interpolationTypes; 55 const InterpolationTypes m_interpolationTypes;
59 }; 56 };
60 57
61 } // namespace blink 58 } // namespace blink
62 59
63 #endif // PropertyRegistration_h 60 #endif // PropertyRegistration_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698