summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/layout_progress.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/layout/layout_progress.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/layout/layout_progress.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/chromium/third_party/blink/renderer/core/layout/layout_progress.cc b/chromium/third_party/blink/renderer/core/layout/layout_progress.cc
index d818339bc51..83fe6ed2204 100644
--- a/chromium/third_party/blink/renderer/core/layout/layout_progress.cc
+++ b/chromium/third_party/blink/renderer/core/layout/layout_progress.cc
@@ -31,9 +31,6 @@ namespace blink {
LayoutProgress::LayoutProgress(HTMLProgressElement* element)
: LayoutBlockFlow(element),
position_(HTMLProgressElement::kInvalidPosition),
- animation_start_time_(0),
- animation_repeat_interval_(0),
- animation_duration_(0),
animating_(false),
animation_timer_(
element->GetDocument().GetTaskRunner(TaskType::kInternalDefault),
@@ -62,10 +59,11 @@ void LayoutProgress::UpdateFromElement() {
}
double LayoutProgress::AnimationProgress() const {
- return animating_ ? (fmod((CurrentTime() - animation_start_time_),
- animation_duration_) /
- animation_duration_)
- : 0;
+ if (!animating_)
+ return 0;
+ TimeDelta elapsed = CurrentTimeTicks() - animation_start_time_;
+ return (elapsed % animation_duration_).InSecondsF() /
+ animation_duration_.InSecondsF();
}
bool LayoutProgress::IsDeterminate() const {
@@ -93,14 +91,14 @@ void LayoutProgress::UpdateAnimationState() {
animation_repeat_interval_ =
LayoutTheme::GetTheme().AnimationRepeatIntervalForProgressBar();
- bool animating =
- !IsDeterminate() && Style()->HasAppearance() && animation_duration_ > 0;
+ bool animating = !IsDeterminate() && Style()->HasAppearance() &&
+ animation_duration_ > TimeDelta();
if (animating == animating_)
return;
animating_ = animating;
if (animating_) {
- animation_start_time_ = CurrentTime();
+ animation_start_time_ = CurrentTimeTicks();
animation_timer_.StartOneShot(animation_repeat_interval_, FROM_HERE);
} else {
animation_timer_.Stop();