Bug 854421 - Part 4: Flush out of date animations even if async animations are disabled since they could also be throttled by the refresh driver. r=dbaron

This commit is contained in:
Matt Woodrow 2014-05-29 09:42:16 +12:00
parent 1c3c37d4b3
commit 3437067c1d
2 changed files with 6 additions and 2 deletions

View File

@ -4037,7 +4037,6 @@ PresShell::FlushPendingNotifications(mozilla::ChangesToFlush aFlush)
}
if (aFlush.mFlushAnimations &&
nsLayoutUtils::AreAsyncAnimationsEnabled() &&
!mPresContext->StyleUpdateForAllAnimationsIsUpToDate()) {
mPresContext->AnimationManager()->
FlushAnimations(CommonAnimationManager::Cannot_Throttle);

View File

@ -1096,6 +1096,8 @@ nsRefreshDriver::Tick(int64_t aNowEpoch, TimeStamp aNowTime)
}
if (i == 0) {
// This is the Flush_Style case.
// Grab all of our frame request callbacks up front.
nsTArray<DocumentFrameCallbacks>
frameRequestCallbacks(mFrameRequestCallbackDocs.Length());
@ -1137,7 +1139,6 @@ nsRefreshDriver::Tick(int64_t aNowEpoch, TimeStamp aNowTime)
}
profiler_tracing("Paint", "Scripts", TRACING_INTERVAL_END);
// This is the Flush_Style case.
if (mPresContext && mPresContext->GetPresShell()) {
bool tracingStyleFlush = false;
nsAutoTArray<nsIPresShell*, 16> observers;
@ -1167,6 +1168,10 @@ nsRefreshDriver::Tick(int64_t aNowEpoch, TimeStamp aNowTime)
profiler_tracing("Paint", "Styles", TRACING_INTERVAL_END);
}
}
if (!nsLayoutUtils::AreAsyncAnimationsEnabled()) {
mPresContext->TickLastStyleUpdateForAllAnimations();
}
} else if (i == 1) {
// This is the Flush_Layout case.
if (mPresContext && mPresContext->GetPresShell()) {