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

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: Rebased 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();
80 }
81
82 bool LayoutProgress::isAnimating() const
83 {
84 return m_animating;
85 }
86
77 void LayoutProgress::animationTimerFired(Timer<LayoutProgress>*) 87 void LayoutProgress::animationTimerFired(Timer<LayoutProgress>*)
78 { 88 {
79 setShouldDoFullPaintInvalidation(); 89 setShouldDoFullPaintInvalidation();
80 if (!m_animationTimer.isActive() && m_animating) 90 if (!m_animationTimer.isActive() && m_animating)
81 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE ); 91 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE );
82 } 92 }
83 93
84 void LayoutProgress::updateAnimationState() 94 void LayoutProgress::updateAnimationState()
85 { 95 {
86 m_animationDuration = LayoutTheme::theme().animationDurationForProgressBar() ; 96 m_animationDuration = LayoutTheme::theme().animationDurationForProgressBar() ;
87 m_animationRepeatInterval = LayoutTheme::theme().animationRepeatIntervalForP rogressBar(); 97 m_animationRepeatInterval = LayoutTheme::theme().animationRepeatIntervalForP rogressBar();
88 98
89 bool animating = style()->hasAppearance() && m_animationDuration > 0; 99 bool animating = !isDeterminate() && style()->hasAppearance() && m_animation Duration > 0;
90 if (animating == m_animating) 100 if (animating == m_animating)
91 return; 101 return;
92 102
93 m_animating = animating; 103 m_animating = animating;
94 if (m_animating) { 104 if (m_animating) {
95 m_animationStartTime = currentTime(); 105 m_animationStartTime = currentTime();
96 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE ); 106 m_animationTimer.startOneShot(m_animationRepeatInterval, BLINK_FROM_HERE );
97 } else { 107 } else {
98 m_animationTimer.stop(); 108 m_animationTimer.stop();
99 } 109 }
100 } 110 }
101 111
102 HTMLProgressElement* LayoutProgress::progressElement() const 112 HTMLProgressElement* LayoutProgress::progressElement() const
103 { 113 {
104 if (!node()) 114 if (!node())
105 return nullptr; 115 return nullptr;
106 116
107 if (isHTMLProgressElement(*node())) 117 if (isHTMLProgressElement(*node()))
108 return toHTMLProgressElement(node()); 118 return toHTMLProgressElement(node());
109 119
110 ASSERT(node()->shadowHost()); 120 ASSERT(node()->shadowHost());
111 return toHTMLProgressElement(node()->shadowHost()); 121 return toHTMLProgressElement(node()->shadowHost());
112 } 122 }
113 123
114 } // namespace blink 124 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutProgress.h ('k') | third_party/WebKit/Source/core/layout/LayoutProgressTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698