| Index: Source/core/page/PageAnimator.cpp
|
| diff --git a/Source/core/page/PageAnimator.cpp b/Source/core/page/PageAnimator.cpp
|
| index 33b2d8365e336c68681c12392a40b464b532858b..2ab467b592559b24680d1ad5781078fa46af4657 100644
|
| --- a/Source/core/page/PageAnimator.cpp
|
| +++ b/Source/core/page/PageAnimator.cpp
|
| @@ -29,16 +29,26 @@ void PageAnimator::serviceScriptedAnimations(double monotonicAnimationStartTime)
|
| m_animationFramePending = false;
|
| TemporaryChange<bool> servicing(m_servicingAnimations, true);
|
|
|
| - for (RefPtr<LocalFrame> frame = m_page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
|
| - frame->view()->serviceScrollAnimations();
|
| - DocumentAnimations::updateAnimationTimingForAnimationFrame(*frame->document(), monotonicAnimationStartTime);
|
| - SVGDocumentExtensions::serviceOnAnimationFrame(*frame->document(), monotonicAnimationStartTime);
|
| - }
|
| -
|
| Vector<RefPtr<Document> > documents;
|
| - for (LocalFrame* frame = m_page->mainFrame(); frame; frame = frame->tree().traverseNext())
|
| + for (RefPtr<LocalFrame> frame = m_page->mainFrame(); frame; frame = frame->tree().traverseNext())
|
| documents.append(frame->document());
|
|
|
| + for (size_t i = 0; i < documents.size(); ++i) {
|
| + if (documents[i]->frame()) {
|
| + documents[i]->view()->serviceScrollAnimations();
|
| +
|
| + if (const FrameView::ScrollableAreaSet* scrollableAreas = documents[i]->view()->scrollableAreas()) {
|
| + for (FrameView::ScrollableAreaSet::iterator it = scrollableAreas->begin(); it != scrollableAreas->end(); ++it)
|
| + (*it)->serviceScrollAnimations();
|
| + }
|
| + }
|
| + }
|
| +
|
| + for (size_t i = 0; i < documents.size(); ++i) {
|
| + DocumentAnimations::updateAnimationTimingForAnimationFrame(*documents[i], monotonicAnimationStartTime);
|
| + SVGDocumentExtensions::serviceOnAnimationFrame(*documents[i], monotonicAnimationStartTime);
|
| + }
|
| +
|
| for (size_t i = 0; i < documents.size(); ++i)
|
| documents[i]->serviceScriptedAnimations(monotonicAnimationStartTime);
|
|
|
|
|