Index: Source/core/page/PageAnimator.cpp |
diff --git a/Source/core/page/PageAnimator.cpp b/Source/core/page/PageAnimator.cpp |
index 93b0e21b80b05b9b7dfee899b61685aae28cf4b0..7449bf907a4cf8cd4185014d81272012a2131c35 100644 |
--- a/Source/core/page/PageAnimator.cpp |
+++ b/Source/core/page/PageAnimator.cpp |
@@ -39,8 +39,13 @@ void PageAnimator::serviceScriptedAnimations(double monotonicAnimationStartTime) |
WillBeHeapVector<RefPtrWillBeMember<Document>> documents; |
for (Frame* frame = m_page->mainFrame(); frame; frame = frame->tree().traverseNext()) { |
- if (frame->isLocalFrame()) |
- documents.append(toLocalFrame(frame)->document()); |
+ if (!frame->isLocalFrame()) |
+ continue; |
+ LocalFrame* localFrame = toLocalFrame(frame); |
+ // FIXME: Keep the animation timing ticking while throttled. |
+ if (localFrame->shouldThrottleRenderingPipeline()) |
+ continue; |
+ documents.append(localFrame->document()); |
} |
for (auto& document : documents) { |
@@ -91,7 +96,7 @@ void PageAnimator::updateLayoutAndStyleForPainting(LocalFrame* rootFrame) |
// setFrameRect may have the side-effect of causing existing page layout to |
// be invalidated, so layout needs to be called last. |
- view->updateAllLifecyclePhases(); |
+ view->updateAllLifecyclePhases(DocumentLifecycle::ThrottlingMode::Allow); |
} |
} |