Bug 1267937 - Part 1: Clear mProgressOnLastCompose once we are not in effect. r=birtles
authorHiroyuki Ikezoe <hiikezoe@mozilla-japan.org>
Sat, 30 Apr 2016 07:08:10 +0900
changeset 358118 15070beaee3548018781299762f6c15995e05924
parent 358117 18c3745427c04961696b9178e1367abead511cd4
child 358119 c358aa5441c953188a2fd2bc6ae0eeb813285d98
push id16941
push userbmo:jbeich@FreeBSD.org
push dateSun, 01 May 2016 11:16:34 +0000
reviewersbirtles
bugs1267937
milestone49.0a1
Bug 1267937 - Part 1: Clear mProgressOnLastCompose once we are not in effect. r=birtles
dom/animation/KeyframeEffect.cpp
--- a/dom/animation/KeyframeEffect.cpp
+++ b/dom/animation/KeyframeEffect.cpp
@@ -180,24 +180,24 @@ KeyframeEffectReadOnly::NotifyAnimationT
   // Bug 1216843: When we implement iteration composite modes, we need to
   // also detect if the current iteration has changed.
   if (mAnimation && GetComputedTiming().mProgress != mProgressOnLastCompose) {
     EffectCompositor::RestyleType restyleType =
       CanThrottle() ?
       EffectCompositor::RestyleType::Throttled :
       EffectCompositor::RestyleType::Standard;
     RequestRestyle(restyleType);
+  }
 
-    // If we're not relevant, we will have been removed from the EffectSet.
-    // As a result, when the restyle we requested above is fulfilled, our
-    // ComposeStyle will not get called and mProgressOnLastCompose will not
-    // be updated. Instead, we need to manually clear it.
-    if (!isRelevant) {
-      mProgressOnLastCompose.SetNull();
-    }
+  // If we're no longer "in effect", our ComposeStyle method will never be
+  // called and we will never have a chance to update mProgressOnLastCompose.
+  // We clear mProgressOnLastCompose here to ensure that if we later become
+  // "in effect" we will request a restyle (above).
+  if (!inEffect) {
+     mProgressOnLastCompose.SetNull();
   }
 }
 
 Nullable<TimeDuration>
 KeyframeEffectReadOnly::GetLocalTime() const
 {
   // Since the *animation* start time is currently always zero, the local
   // time is equal to the parent time.