| Index: Source/core/animation/css/CSSAnimations.cpp
|
| diff --git a/Source/core/animation/css/CSSAnimations.cpp b/Source/core/animation/css/CSSAnimations.cpp
|
| index 5ba36b0849d3457eb3e742f07205e0abc73fb3b1..39f6a22411d04d1a9a10385ea7c753b4246555a6 100644
|
| --- a/Source/core/animation/css/CSSAnimations.cpp
|
| +++ b/Source/core/animation/css/CSSAnimations.cpp
|
| @@ -136,9 +136,9 @@ const PassRefPtr<TimingFunction> timingFromAnimationData(const CSSAnimationData*
|
| return animationData->isTimingFunctionSet() ? animationData->timingFunction() : CSSAnimationData::initialAnimationTimingFunction();
|
| }
|
|
|
| -void calculateCandidateTransitionForProperty(const CSSAnimationData* anim, CSSPropertyID id, const RenderStyle* oldStyle, const RenderStyle* newStyle, CandidateTransitionMap& candidateMap)
|
| +static void calculateCandidateTransitionForProperty(const CSSAnimationData* anim, CSSPropertyID id, const RenderStyle& oldStyle, const RenderStyle& newStyle, CandidateTransitionMap& candidateMap)
|
| {
|
| - if (!CSSPropertyAnimation::propertiesEqual(id, oldStyle, newStyle)) {
|
| + if (!CSSPropertyAnimation::propertiesEqual(id, &oldStyle, &newStyle)) {
|
| RefPtr<AnimatableValue> from = CSSAnimatableValueFactory::create(id, oldStyle);
|
| RefPtr<AnimatableValue> to = CSSAnimatableValueFactory::create(id, newStyle);
|
| // If we have multiple transitions on the same property, we will use the
|
| @@ -149,13 +149,13 @@ void calculateCandidateTransitionForProperty(const CSSAnimationData* anim, CSSPr
|
| }
|
| }
|
|
|
| -void computeCandidateTransitions(const RenderStyle* oldStyle, const RenderStyle* newStyle, CandidateTransitionMap& candidateMap, HashSet<CSSPropertyID>& listedProperties)
|
| +static void computeCandidateTransitions(const RenderStyle& oldStyle, const RenderStyle& newStyle, CandidateTransitionMap& candidateMap, HashSet<CSSPropertyID>& listedProperties)
|
| {
|
| - if (!newStyle->transitions())
|
| + if (!newStyle.transitions())
|
| return;
|
|
|
| - for (size_t i = 0; i < newStyle->transitions()->size(); ++i) {
|
| - const CSSAnimationData* anim = newStyle->transitions()->animation(i);
|
| + for (size_t i = 0; i < newStyle.transitions()->size(); ++i) {
|
| + const CSSAnimationData* anim = newStyle.transitions()->animation(i);
|
| CSSAnimationData::AnimationMode mode = anim->animationMode();
|
| if (anim->duration() + anim->delay() <= 0 || mode == CSSAnimationData::AnimateNone)
|
| continue;
|
| @@ -202,7 +202,7 @@ CSSAnimationUpdateScope::~CSSAnimationUpdateScope()
|
| activeAnimations->cssAnimations().maybeApplyPendingUpdate(m_target);
|
| }
|
|
|
| -PassOwnPtr<CSSAnimationUpdate> CSSAnimations::calculateUpdate(Element* element, const RenderStyle* style, StyleResolver* resolver)
|
| +PassOwnPtr<CSSAnimationUpdate> CSSAnimations::calculateUpdate(Element* element, const RenderStyle& style, StyleResolver* resolver)
|
| {
|
| ASSERT(RuntimeEnabledFeatures::webAnimationsCSSEnabled());
|
| OwnPtr<CSSAnimationUpdate> update = adoptPtr(new CSSAnimationUpdate());
|
| @@ -213,9 +213,9 @@ PassOwnPtr<CSSAnimationUpdate> CSSAnimations::calculateUpdate(Element* element,
|
| return update->isEmpty() ? nullptr : update.release();
|
| }
|
|
|
| -void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, Element* element, const RenderStyle* style, StyleResolver* resolver)
|
| +void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, Element* element, const RenderStyle& style, StyleResolver* resolver)
|
| {
|
| - const CSSAnimationDataList* animationDataList = style->animations();
|
| + const CSSAnimationDataList* animationDataList = style.animations();
|
| const CSSAnimations* cssAnimations = element->activeAnimations() ? &element->activeAnimations()->cssAnimations() : 0;
|
|
|
| HashSet<AtomicString> inactive;
|
| @@ -223,7 +223,7 @@ void CSSAnimations::calculateAnimationUpdate(CSSAnimationUpdate* update, Element
|
| for (AnimationMap::const_iterator iter = cssAnimations->m_animations.begin(); iter != cssAnimations->m_animations.end(); ++iter)
|
| inactive.add(iter->key);
|
|
|
| - if (style->display() != NONE) {
|
| + if (style.display() != NONE) {
|
| for (size_t i = 0; animationDataList && i < animationDataList->size(); ++i) {
|
| const CSSAnimationData* animationData = animationDataList->animation(i);
|
| if (animationData->isNoneAnimation())
|
| @@ -379,15 +379,15 @@ void CSSAnimations::calculateTransitionUpdateForProperty(CSSAnimationUpdate* upd
|
| update->startTransition(id, newTransition.from.get(), newTransition.to.get(), InertAnimation::create(effect, timing, isPaused));
|
| }
|
|
|
| -void CSSAnimations::calculateTransitionUpdate(CSSAnimationUpdate* update, const Element* element, const RenderStyle* style)
|
| +void CSSAnimations::calculateTransitionUpdate(CSSAnimationUpdate* update, const Element* element, const RenderStyle& style)
|
| {
|
| ActiveAnimations* activeAnimations = element->activeAnimations();
|
| const TransitionMap* transitions = activeAnimations ? &activeAnimations->cssAnimations().m_transitions : 0;
|
|
|
| HashSet<CSSPropertyID> listedProperties;
|
| - if (style->display() != NONE && element->renderer() && element->renderer()->style()) {
|
| + if (style.display() != NONE && element->renderer() && element->renderer()->style()) {
|
| CandidateTransitionMap candidateMap;
|
| - computeCandidateTransitions(element->renderer()->style(), style, candidateMap, listedProperties);
|
| + computeCandidateTransitions(*element->renderer()->style(), style, candidateMap, listedProperties);
|
| for (CandidateTransitionMap::const_iterator iter = candidateMap.begin(); iter != candidateMap.end(); ++iter) {
|
| // FIXME: We should transition if an !important property changes even when an animation is running,
|
| // but this is a bit hard to do with the current applyMatchedProperties system.
|
|
|