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

Unified Diff: third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h

Issue 2236193002: WIP: Implement CSS transitions on top of InterpolationTypes instead of AnimatableValues (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@_environmentStyle
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
diff --git a/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h b/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
deleted file mode 100644
index 88430934824ade771888b7cd7c378f66db01ec6d..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2015 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 InvalidatableInterpolation_h
-#define InvalidatableInterpolation_h
-
-#include "core/animation/InterpolationType.h"
-#include "core/animation/PrimitiveInterpolation.h"
-#include "core/animation/PropertyInterpolationTypesMapping.h"
-#include "core/animation/StyleInterpolation.h"
-#include "core/animation/TypedInterpolationValue.h"
-#include <memory>
-
-namespace blink {
-
-// TODO(alancutter): This class will replace *StyleInterpolation and Interpolation.
-// For now it needs to distinguish itself during the refactor and temporarily has an ugly name.
-class CORE_EXPORT InvalidatableInterpolation : public Interpolation {
-public:
- static PassRefPtr<InvalidatableInterpolation> create(
- PropertyHandle property,
- const InterpolationTypes& interpolationTypes,
- PassRefPtr<PropertySpecificKeyframe> startKeyframe,
- PassRefPtr<PropertySpecificKeyframe> endKeyframe)
- {
- return adoptRef(new InvalidatableInterpolation(property, interpolationTypes, startKeyframe, endKeyframe));
- }
-
- PropertyHandle getProperty() const final { return m_property; }
- virtual void interpolate(int iteration, double fraction);
- bool dependsOnUnderlyingValue() const final;
- virtual void apply(InterpolationEnvironment&) const { NOTREACHED(); }
- static void applyStack(const ActiveInterpolations&, InterpolationEnvironment&);
-
- virtual bool isInvalidatableInterpolation() const { return true; }
-
-private:
- InvalidatableInterpolation(
- PropertyHandle property,
- const InterpolationTypes& interpolationTypes,
- PassRefPtr<PropertySpecificKeyframe> startKeyframe,
- PassRefPtr<PropertySpecificKeyframe> endKeyframe)
- : Interpolation(nullptr, nullptr)
- , m_property(property)
- , m_interpolationTypes(interpolationTypes)
- , m_startKeyframe(startKeyframe)
- , m_endKeyframe(endKeyframe)
- , m_currentFraction(std::numeric_limits<double>::quiet_NaN())
- , m_isCached(false)
- { }
-
- using ConversionCheckers = InterpolationType::ConversionCheckers;
-
- std::unique_ptr<TypedInterpolationValue> maybeConvertUnderlyingValue(const InterpolationEnvironment&) const;
- const TypedInterpolationValue* ensureValidInterpolation(const InterpolationEnvironment&, const UnderlyingValueOwner&) const;
- void clearCache() const;
- bool isCacheValid(const InterpolationEnvironment&, const UnderlyingValueOwner&) const;
- bool isNeutralKeyframeActive() const;
- std::unique_ptr<PairwisePrimitiveInterpolation> maybeConvertPairwise(const InterpolationEnvironment&, const UnderlyingValueOwner&) const;
- std::unique_ptr<TypedInterpolationValue> convertSingleKeyframe(const PropertySpecificKeyframe&, const InterpolationEnvironment&, const UnderlyingValueOwner&) const;
- void addConversionCheckers(const InterpolationType&, ConversionCheckers&) const;
- void setFlagIfInheritUsed(InterpolationEnvironment&) const;
- double underlyingFraction() const;
-
- const PropertyHandle m_property;
- const InterpolationTypes& m_interpolationTypes;
- RefPtr<PropertySpecificKeyframe> m_startKeyframe;
- RefPtr<PropertySpecificKeyframe> m_endKeyframe;
- double m_currentFraction;
- mutable bool m_isCached;
- mutable std::unique_ptr<PrimitiveInterpolation> m_cachedPairConversion;
- mutable ConversionCheckers m_conversionCheckers;
- mutable std::unique_ptr<TypedInterpolationValue> m_cachedValue;
-};
-
-DEFINE_TYPE_CASTS(InvalidatableInterpolation, Interpolation, value, value->isInvalidatableInterpolation(), value.isInvalidatableInterpolation());
-
-} // namespace blink
-
-#endif // InvalidatableInterpolation_h

Powered by Google App Engine
This is Rietveld 408576698