// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_TIME_INTERPOLATION_TYPE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_TIME_INTERPOLATION_TYPE_H_ #include "third_party/blink/renderer/core/animation/css_interpolation_type.h" namespace blink { class CSSTimeInterpolationType : public CSSInterpolationType { public: CSSTimeInterpolationType(PropertyHandle property, const PropertyRegistration* registration = nullptr) : CSSInterpolationType(property, registration) { DCHECK(property.IsCSSCustomProperty()); } InterpolationValue MaybeConvertNeutral(const InterpolationValue& underlying, ConversionCheckers&) const final; InterpolationValue MaybeConvertValue(const CSSValue&, const StyleResolverState*, ConversionCheckers&) const final; const CSSValue* CreateCSSValue(const InterpolableValue&, const NonInterpolableValue*, const StyleResolverState&) const final; private: // These methods only apply to CSSInterpolationTypes used by standard CSS // properties. // CSSTimeInterpolationType is only accessible via registered custom CSS // properties. InterpolationValue MaybeConvertStandardPropertyUnderlyingValue( const ComputedStyle&) const final { NOTREACHED(); return nullptr; } void ApplyStandardPropertyValue(const InterpolableValue&, const NonInterpolableValue*, StyleResolverState&) const final { NOTREACHED(); } InterpolationValue MaybeConvertInitial(const StyleResolverState&, ConversionCheckers&) const final { NOTREACHED(); return nullptr; } InterpolationValue MaybeConvertInherit(const StyleResolverState&, ConversionCheckers&) const final { NOTREACHED(); return nullptr; } }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_CSS_TIME_INTERPOLATION_TYPE_H_