#include "third_party/blink/renderer/core/animation/css_shadow_list_interpolation_type.h"
#include <memory>
#include <utility>
#include "base/memory/ptr_util.h"
#include "third_party/blink/renderer/core/animation/interpolable_shadow.h"
#include "third_party/blink/renderer/core/animation/list_interpolation_functions.h"
#include "third_party/blink/renderer/core/css/css_identifier_value.h"
#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/css/css_value_list.h"
#include "third_party/blink/renderer/core/css/resolver/style_builder.h"
#include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/core/style/shadow_list.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
namespace {
const ShadowList* GetShadowList(const CSSProperty& property,
const ComputedStyle& style) { … }
}
InterpolationValue CSSShadowListInterpolationType::ConvertShadowList(
const ShadowList* shadow_list,
double zoom,
mojom::blink::ColorScheme color_scheme,
const ui::ColorProvider* color_provider) const { … }
InterpolationValue CSSShadowListInterpolationType::CreateNeutralValue() const { … }
InterpolationValue CSSShadowListInterpolationType::MaybeConvertNeutral(
const InterpolationValue&,
ConversionCheckers&) const { … }
InterpolationValue CSSShadowListInterpolationType::MaybeConvertInitial(
const StyleResolverState&,
ConversionCheckers&) const { … }
class InheritedShadowListChecker
: public CSSInterpolationType::CSSConversionChecker { … };
InterpolationValue CSSShadowListInterpolationType::MaybeConvertInherit(
const StyleResolverState& state,
ConversionCheckers& conversion_checkers) const { … }
class AlwaysInvalidateChecker
: public CSSInterpolationType::CSSConversionChecker { … };
InterpolationValue CSSShadowListInterpolationType::MaybeConvertValue(
const CSSValue& value,
const StyleResolverState* state,
ConversionCheckers&) const { … }
PairwiseInterpolationValue CSSShadowListInterpolationType::MaybeMergeSingles(
InterpolationValue&& start,
InterpolationValue&& end) const { … }
InterpolationValue
CSSShadowListInterpolationType::MaybeConvertStandardPropertyUnderlyingValue(
const ComputedStyle& style) const { … }
void CSSShadowListInterpolationType::Composite(
UnderlyingValueOwner& underlying_value_owner,
double underlying_fraction,
const InterpolationValue& value,
double interpolation_fraction) const { … }
static ShadowList* CreateShadowList(
const InterpolableValue& interpolable_value,
const NonInterpolableValue* non_interpolable_value,
const StyleResolverState& state) { … }
void CSSShadowListInterpolationType::ApplyStandardPropertyValue(
const InterpolableValue& interpolable_value,
const NonInterpolableValue* non_interpolable_value,
StyleResolverState& state) const { … }
InterpolationValue
CSSShadowListInterpolationType::PreInterpolationCompositeIfNeeded(
InterpolationValue value,
const InterpolationValue& underlying,
EffectModel::CompositeOperation composite,
ConversionCheckers& conversion_checkers) const { … }
InterpolationValue CSSShadowListInterpolationType::PerformAdditiveComposition(
InterpolableList* interpolable_list,
const InterpolationValue& underlying) const { … }
InterpolationValue
CSSShadowListInterpolationType::PerformAccumulativeComposition(
InterpolableList* interpolable_list,
const InterpolationValue& underlying) const { … }
}