text: // Copyright 2016 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 CSSPathInterpolationType_h
  #define CSSPathInterpolationType_h
  
  #include "core/animation/CSSInterpolationType.h"
  
  namespace blink {
  
  class CSSPathInterpolationType : public CSSInterpolationType {
   public:
    CSSPathInterpolationType(PropertyHandle property)
        : CSSInterpolationType(property) {}
  
    void ApplyStandardPropertyValue(const InterpolableValue&,
                                    const NonInterpolableValue*,
                                    StyleResolverState&) const final;
    void Composite(UnderlyingValueOwner&,
                   double underlying_fraction,
                   const InterpolationValue&,
                   double interpolation_fraction) const final;
  
   protected:
    InterpolationValue MaybeConvertNeutral(const InterpolationValue& underlying,
                                           ConversionCheckers&) const final;
    InterpolationValue MaybeConvertInitial(const StyleResolverState&,
                                           ConversionCheckers&) const final;
    InterpolationValue MaybeConvertInherit(const StyleResolverState&,
                                           ConversionCheckers&) const final;
    InterpolationValue MaybeConvertValue(const CSSValue&,
                                         const StyleResolverState*,
                                         ConversionCheckers&) const final;
    InterpolationValue MaybeConvertStandardPropertyUnderlyingValue(
        const ComputedStyle&) const final;
    PairwiseInterpolationValue MaybeMergeSingles(
        InterpolationValue&& start,
        InterpolationValue&& end) const final;
  };
  
  }  // namespace blink
  
  #endif  // CSSPathInterpolationType_h
  