Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutProgress.cpp

Issue 1721943002: Don't animate a progress bar if it isn't animated (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 2 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 { 67 {
68 return m_animating ? (fmod((currentTime() - m_animationStartTime), m_animati onDuration) / m_animationDuration) : 0; 68 return m_animating ? (fmod((currentTime() - m_animationStartTime), m_animati onDuration) / m_animationDuration) : 0;
69 } 69 }
70 70
71 bool LayoutProgress::isDeterminate() const 71 bool LayoutProgress::isDeterminate() const
72 { 72 {
73 return (HTMLProgressElement::IndeterminatePosition != position() 73 return (HTMLProgressElement::IndeterminatePosition != position()
74 && HTMLProgressElement::InvalidPosition != position()); 74 && HTMLProgressElement::InvalidPosition != position());
75 } 75 }
76 76
77 bool LayoutProgress::isAnimationTimerActive() const
78 {
79 return m_animationTimer.isActive();
Xianzhu 2016/02/22 23:17:27 Nit: Can you use m_animating (and rename this func
Stephen Chennney 2016/02/23 19:24:01 I would rather check the timer itself, as that wil
80 }
81
77 void LayoutProgress::animationTimerFired(Timer<LayoutProgress>*) 82 void LayoutProgress::animationTimerFired(Timer<LayoutProgress>*)
78 { 83 {
79 setShouldDoFullPaintInvalidation(); 84 setShouldDoFullPaintInvalidation();
80 if (!m_animationTimer.isActive() && m_animating) 85 if (!m_animationTimer.isActive() && m_animating)
81 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE ); 86 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE );
82 } 87 }
83 88
84 void LayoutProgress::updateAnimationState() 89 void LayoutProgress::updateAnimationState()
85 { 90 {
86 m_animationDuration = LayoutTheme::theme().animationDurationForProgressBar() ; 91 m_animationDuration = LayoutTheme::theme().animationDurationForProgressBar() ;
87 m_animationRepeatInterval = LayoutTheme::theme().animationRepeatIntervalForP rogressBar(); 92 m_animationRepeatInterval = LayoutTheme::theme().animationRepeatIntervalForP rogressBar();
88 93
89 bool animating = style()->hasAppearance() && m_animationDuration > 0; 94 bool animating = !isDeterminate() && style()->hasAppearance() && m_animation Duration > 0;
90 if (animating == m_animating) 95 if (animating == m_animating)
91 return; 96 return;
92 97
93 m_animating = animating; 98 m_animating = animating;
94 if (m_animating) { 99 if (m_animating) {
95 m_animationStartTime = currentTime(); 100 m_animationStartTime = currentTime();
96 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE ); 101 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE );
97 } else { 102 } else {
98 m_animationTimer.stop(); 103 m_animationTimer.stop();
99 } 104 }
100 } 105 }
101 106
102 HTMLProgressElement* LayoutProgress::progressElement() const 107 HTMLProgressElement* LayoutProgress::progressElement() const
103 { 108 {
104 if (!node()) 109 if (!node())
105 return nullptr; 110 return nullptr;
106 111
107 if (isHTMLProgressElement(*node())) 112 if (isHTMLProgressElement(*node()))
108 return toHTMLProgressElement(node()); 113 return toHTMLProgressElement(node());
109 114
110 ASSERT(node()->shadowHost()); 115 ASSERT(node()->shadowHost());
111 return toHTMLProgressElement(node()->shadowHost()); 116 return toHTMLProgressElement(node()->shadowHost());
112 } 117 }
113 118
114 } // namespace blink 119 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698