Chromium Code Reviews| Index: Source/core/frame/FrameView.cpp |
| diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
| index 6616db7c3cd36690d4cb0f9e6a76580469031ad9..6b2557a41832e1f877a4a0e9719247854652ff0d 100644 |
| --- a/Source/core/frame/FrameView.cpp |
| +++ b/Source/core/frame/FrameView.cpp |
| @@ -30,6 +30,7 @@ |
| #include "HTMLNames.h" |
| #include "RuntimeEnabledFeatures.h" |
| #include "core/accessibility/AXObjectCache.h" |
| +#include "core/animation/AnimationClock.h" |
| #include "core/animation/DocumentTimeline.h" |
| #include "core/css/FontFaceSet.h" |
| #include "core/css/resolver/StyleResolver.h" |
| @@ -2025,8 +2026,11 @@ void FrameView::serviceScriptedAnimations(double monotonicAnimationStartTime) |
| if (!RuntimeEnabledFeatures::webAnimationsCSSEnabled()) |
| frame->animation().serviceAnimations(); |
| if (RuntimeEnabledFeatures::webAnimationsEnabled()) { |
| - frame->document()->timeline()->serviceAnimations(monotonicAnimationStartTime); |
| - frame->document()->transitionTimeline()->serviceAnimations(monotonicAnimationStartTime); |
| + frame->document()->animationClock().updateTime(monotonicAnimationStartTime); |
| + bool didTriggerStyleRecalc = frame->document()->timeline()->serviceAnimations(); |
|
dstockwell
2013/11/05 05:05:44
It's unfortunate that we have to thread this all t
|
| + didTriggerStyleRecalc |= frame->document()->transitionTimeline()->serviceAnimations(); |
| + if (!didTriggerStyleRecalc) |
| + frame->document()->animationClock().unfreeze(); |
| frame->document()->timeline()->dispatchEvents(); |
| frame->document()->transitionTimeline()->dispatchEvents(); |
| } |