From 88312d4d167aba886fdbd563afcfd5cc96a9d813 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Fri, 11 Sep 2015 21:59:43 -0400 Subject: [PATCH] Bug 1191942 - Make sure to not schedule requestAnimationFrame callbacks if animations are paused. r=roc, a=ritu --HG-- extra : source : ed8a6af1508ac68a28d017e26935e7a12dbda864 extra : intermediate-source : 254e3cb723ed279f68b0c88ad30dc35b6a93ce84 --- dom/base/nsDocument.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index 47f611e..087501c 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -3928,7 +3928,7 @@ void nsDocument::DeleteShell() { mExternalResourceMap.HideViewers(); - if (IsEventHandlingEnabled()) { + if (IsEventHandlingEnabled() && !AnimationsPaused()) { RevokeAnimationFrameNotifications(); } @@ -4687,7 +4687,7 @@ nsDocument::SetScriptGlobalObject(nsIScriptGlobalObject *aScriptGlobalObject) // our layout history state now. mLayoutHistoryState = GetLayoutHistoryState(); - if (mPresShell && !EventHandlingSuppressed()) { + if (mPresShell && !EventHandlingSuppressed() && !AnimationsPaused()) { RevokeAnimationFrameNotifications(); } @@ -10276,7 +10276,8 @@ nsIDocument::ScheduleFrameRequestCallback(const FrameRequestCallbackHolder& aCal DebugOnly request = mFrameRequestCallbacks.AppendElement(FrameRequest(aCallback, newHandle)); NS_ASSERTION(request, "This is supposed to be infallible!"); - if (!alreadyRegistered && mPresShell && IsEventHandlingEnabled()) { + if (!alreadyRegistered && mPresShell && IsEventHandlingEnabled() && + !AnimationsPaused()) { mPresShell->GetPresContext()->RefreshDriver()-> ScheduleFrameRequestCallbacks(this); } -- 2.5.0