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

Side by Side Diff: third_party/WebKit/Source/core/animation/CSSFontVariationSettingsInterpolationType.cpp

Issue 2812213002: Add CSSInterpolationType specific ConversionChecker (Closed)
Patch Set: rebased Created 3 years, 7 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 #include "core/animation/CSSFontVariationSettingsInterpolationType.h" 5 #include "core/animation/CSSFontVariationSettingsInterpolationType.h"
6 6
7 #include "core/css/CSSFontVariationValue.h" 7 #include "core/css/CSSFontVariationValue.h"
8 #include "core/css/CSSValueList.h" 8 #include "core/css/CSSValueList.h"
9 9
10 namespace blink { 10 namespace blink {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 63
64 bool IsValid(const InterpolationEnvironment&, 64 bool IsValid(const InterpolationEnvironment&,
65 const InterpolationValue& underlying) const final { 65 const InterpolationValue& underlying) const final {
66 return tags_ == GetTags(*underlying.non_interpolable_value); 66 return tags_ == GetTags(*underlying.non_interpolable_value);
67 } 67 }
68 68
69 const Vector<AtomicString> tags_; 69 const Vector<AtomicString> tags_;
70 }; 70 };
71 71
72 class InheritedFontVariationSettingsChecker 72 class InheritedFontVariationSettingsChecker
73 : public InterpolationType::ConversionChecker { 73 : public CSSInterpolationType::CSSConversionChecker {
74 public: 74 public:
75 ~InheritedFontVariationSettingsChecker() final {} 75 ~InheritedFontVariationSettingsChecker() final {}
76 76
77 static std::unique_ptr<InheritedFontVariationSettingsChecker> Create( 77 static std::unique_ptr<InheritedFontVariationSettingsChecker> Create(
78 const FontVariationSettings* settings) { 78 const FontVariationSettings* settings) {
79 return WTF::WrapUnique(new InheritedFontVariationSettingsChecker(settings)); 79 return WTF::WrapUnique(new InheritedFontVariationSettingsChecker(settings));
80 } 80 }
81 81
82 private: 82 private:
83 InheritedFontVariationSettingsChecker(const FontVariationSettings* settings) 83 InheritedFontVariationSettingsChecker(const FontVariationSettings* settings)
84 : settings_(settings) {} 84 : settings_(settings) {}
85 85
86 bool IsValid(const InterpolationEnvironment& environment, 86 bool IsValid(const StyleResolverState& state,
87 const InterpolationValue&) const final { 87 const InterpolationValue&) const final {
88 return DataEquivalent(settings_.Get(), environment.GetState() 88 return DataEquivalent(
89 .ParentStyle() 89 settings_.Get(),
90 ->GetFontDescription() 90 state.ParentStyle()->GetFontDescription().VariationSettings());
91 .VariationSettings());
92 } 91 }
93 92
94 RefPtr<const FontVariationSettings> settings_; 93 RefPtr<const FontVariationSettings> settings_;
95 }; 94 };
96 95
97 static InterpolationValue ConvertFontVariationSettings( 96 static InterpolationValue ConvertFontVariationSettings(
98 const FontVariationSettings* settings) { 97 const FontVariationSettings* settings) {
99 if (!settings || settings->size() == 0) { 98 if (!settings || settings->size() == 0) {
100 return nullptr; 99 return nullptr;
101 } 100 }
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 RefPtr<FontVariationSettings> settings = FontVariationSettings::Create(); 203 RefPtr<FontVariationSettings> settings = FontVariationSettings::Create();
205 size_t length = numbers.length(); 204 size_t length = numbers.length();
206 for (size_t i = 0; i < length; ++i) { 205 for (size_t i = 0; i < length; ++i) {
207 settings->Append(FontVariationAxis( 206 settings->Append(FontVariationAxis(
208 tags[i], ToInterpolableNumber(numbers.Get(i))->Value())); 207 tags[i], ToInterpolableNumber(numbers.Get(i))->Value()));
209 } 208 }
210 state.GetFontBuilder().SetVariationSettings(settings); 209 state.GetFontBuilder().SetVariationSettings(settings);
211 } 210 }
212 211
213 } // namespace blink 212 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698