author | Brian Birtles <birtles@gmail.com> |
Fri, 07 Aug 2015 12:29:35 +0900 | |
changeset 256720 | 4e8a8884e36ff65a91e732c0f5ed17dc823e565b |
parent 256719 | 7fa8a6d1f67f9e3ab960de0b539100169e926727 |
child 256721 | bcf2c0c393cf0642f7a100c3e4e7d6b0b6b748f5 |
push id | 63408 |
push user | bbirtles@mozilla.com |
push date | Fri, 07 Aug 2015 03:30:33 +0000 |
treeherder | mozilla-inbound@9060b380602b [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | dbaron |
bugs | 1181392 |
milestone | 42.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/animation/Animation.cpp +++ b/dom/animation/Animation.cpp @@ -549,26 +549,30 @@ Animation::CanThrottle() const return mIsRunningOnCompositor; } void Animation::ComposeStyle(nsRefPtr<AnimValuesStyleRule>& aStyleRule, nsCSSPropertySet& aSetProperties, bool& aNeedsRefreshes) { - if (!mEffect || mEffect->IsFinishedTransition()) { + if (!mEffect) { return; } AnimationPlayState playState = PlayState(); if (playState == AnimationPlayState::Running || playState == AnimationPlayState::Pending) { aNeedsRefreshes = true; } + if (!IsInEffect()) { + return; + } + // In order to prevent flicker, there are a few cases where we want to use // a different time for rendering that would otherwise be returned by // GetCurrentTime. These are: // // (a) For animations that are pausing but which are still running on the // compositor. In this case we send a layer transaction that removes the // animation but which also contains the animation values calculated on // the main thread. To prevent flicker when this occurs we want to ensure