Commit 0b090563 authored by samli@chromium.org's avatar samli@chromium.org

Animations: Disable compositor when timeline playback rate is set

This change invalidates all compositor animations when the animation
timeline playback rate is modified. If the timeline playback rate is not
1, then animations are no longer composited.

BUG=432368

Review URL: https://codereview.chromium.org/722203004

git-svn-id: svn://svn.chromium.org/blink/trunk@185424 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 8ec7a5f5
......@@ -599,7 +599,8 @@ void AnimationPlayer::setOutdated()
bool AnimationPlayer::canStartAnimationOnCompositor()
{
if (m_playbackRate == 0 || (std::isinf(sourceEnd()) && m_playbackRate < 0))
// FIXME: Timeline playback rates should be compositable
if (m_playbackRate == 0 || (std::isinf(sourceEnd()) && m_playbackRate < 0) || (timeline() && timeline()->playbackRate() != 1))
return false;
return m_timeline && m_content && m_content->isAnimation() && playing();
......
......@@ -236,10 +236,12 @@ void AnimationTimeline::setOutdatedAnimationPlayer(AnimationPlayer* player)
void AnimationTimeline::setPlaybackRate(double playbackRate)
{
// FIXME: need to invalidate compositor animations
m_currentTimeSnapshot = currentTimeInternal();
m_rawCurrentTimeSnapshot = m_document->animationClock().currentTime() - zeroTime();
m_playbackRate = playbackRate;
for (auto& player : m_players) {
player->setCompositorPending(true);
}
}
double AnimationTimeline::playbackRate() const
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment