summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc44
1 files changed, 17 insertions, 27 deletions
diff --git a/chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc b/chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc
index 2eb8bc30487..6262ba25091 100644
--- a/chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc
+++ b/chromium/third_party/blink/renderer/core/animation/css_font_variation_settings_interpolation_type.cc
@@ -57,16 +57,11 @@ static bool TagsMatch(const NonInterpolableValue& a,
class UnderlyingTagsChecker : public InterpolationType::ConversionChecker {
public:
+ explicit UnderlyingTagsChecker(const Vector<AtomicString>& tags)
+ : tags_(tags) {}
~UnderlyingTagsChecker() final = default;
- static std::unique_ptr<UnderlyingTagsChecker> Create(
- const Vector<AtomicString>& tags) {
- return base::WrapUnique(new UnderlyingTagsChecker(tags));
- }
-
private:
- UnderlyingTagsChecker(const Vector<AtomicString>& tags) : tags_(tags) {}
-
bool IsValid(const InterpolationEnvironment&,
const InterpolationValue& underlying) const final {
return tags_ == GetTags(*underlying.non_interpolable_value);
@@ -78,18 +73,13 @@ class UnderlyingTagsChecker : public InterpolationType::ConversionChecker {
class InheritedFontVariationSettingsChecker
: public CSSInterpolationType::CSSConversionChecker {
public:
- ~InheritedFontVariationSettingsChecker() final = default;
+ explicit InheritedFontVariationSettingsChecker(
+ const FontVariationSettings* settings)
+ : settings_(settings) {}
- static std::unique_ptr<InheritedFontVariationSettingsChecker> Create(
- const FontVariationSettings* settings) {
- return base::WrapUnique(
- new InheritedFontVariationSettingsChecker(settings));
- }
+ ~InheritedFontVariationSettingsChecker() final = default;
private:
- InheritedFontVariationSettingsChecker(const FontVariationSettings* settings)
- : settings_(settings) {}
-
bool IsValid(const StyleResolverState& state,
const InterpolationValue&) const final {
return DataEquivalent(
@@ -106,10 +96,11 @@ static InterpolationValue ConvertFontVariationSettings(
return nullptr;
}
wtf_size_t length = settings->size();
- std::unique_ptr<InterpolableList> numbers = InterpolableList::Create(length);
+ auto numbers = std::make_unique<InterpolableList>(length);
Vector<AtomicString> tags;
for (wtf_size_t i = 0; i < length; ++i) {
- numbers->Set(i, InterpolableNumber::Create(settings->at(i).Value()));
+ numbers->Set(i,
+ std::make_unique<InterpolableNumber>(settings->at(i).Value()));
tags.push_back(settings->at(i).Tag());
}
return InterpolationValue(
@@ -121,7 +112,7 @@ InterpolationValue
CSSFontVariationSettingsInterpolationType::MaybeConvertNeutral(
const InterpolationValue& underlying,
ConversionCheckers& conversion_checkers) const {
- conversion_checkers.push_back(UnderlyingTagsChecker::Create(
+ conversion_checkers.push_back(std::make_unique<UnderlyingTagsChecker>(
GetTags(*underlying.non_interpolable_value)));
return InterpolationValue(underlying.interpolable_value->CloneAndZero(),
underlying.non_interpolable_value);
@@ -141,7 +132,7 @@ CSSFontVariationSettingsInterpolationType::MaybeConvertInherit(
const FontVariationSettings* inherited =
state.ParentStyle()->GetFontDescription().VariationSettings();
conversion_checkers.push_back(
- InheritedFontVariationSettingsChecker::Create(inherited));
+ std::make_unique<InheritedFontVariationSettingsChecker>(inherited));
return ConvertFontVariationSettings(inherited);
}
@@ -149,17 +140,16 @@ InterpolationValue CSSFontVariationSettingsInterpolationType::MaybeConvertValue(
const CSSValue& value,
const StyleResolverState*,
ConversionCheckers&) const {
- if (!value.IsValueList()) {
+ const auto* list = DynamicTo<CSSValueList>(value);
+ if (!list) {
return nullptr;
}
- const CSSValueList& list = ToCSSValueList(value);
- wtf_size_t length = list.length();
- std::unique_ptr<InterpolableList> numbers = InterpolableList::Create(length);
+ wtf_size_t length = list->length();
+ auto numbers = std::make_unique<InterpolableList>(length);
Vector<AtomicString> tags;
for (wtf_size_t i = 0; i < length; ++i) {
- const cssvalue::CSSFontVariationValue& item =
- cssvalue::ToCSSFontVariationValue(list.Item(i));
- numbers->Set(i, InterpolableNumber::Create(item.Value()));
+ const auto& item = To<cssvalue::CSSFontVariationValue>(list->Item(i));
+ numbers->Set(i, std::make_unique<InterpolableNumber>(item.Value()));
tags.push_back(item.Tag());
}
return InterpolationValue(