| Index: cc/input/page_scale_animation.cc
|
| diff --git a/cc/input/page_scale_animation.cc b/cc/input/page_scale_animation.cc
|
| index 7df0244ec0907a1466bc2ab9625c147fe075d754..535351ce8e83d3dc726b62d40e984cdcbcf69a24 100644
|
| --- a/cc/input/page_scale_animation.cc
|
| +++ b/cc/input/page_scale_animation.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "base/logging.h"
|
| #include "cc/animation/timing_function.h"
|
| +#include "cc/base/time_util.h"
|
| #include "ui/gfx/point_f.h"
|
| #include "ui/gfx/rect_f.h"
|
| #include "ui/gfx/vector2d_conversions.h"
|
| @@ -66,9 +67,11 @@ PageScaleAnimation::PageScaleAnimation(
|
| target_anchor_(),
|
| viewport_size_(viewport_size),
|
| root_layer_size_(root_layer_size),
|
| - start_time_(-1.0),
|
| - duration_(0.0),
|
| - timing_function_(timing_function.Pass()) {}
|
| + start_time_(TimeTicks::FromInternalValue(
|
| + -1.0 * base::Time::kMicrosecondsPerSecond)),
|
| + duration_(),
|
| + timing_function_(timing_function.Pass()) {
|
| +}
|
|
|
| PageScaleAnimation::~PageScaleAnimation() {}
|
|
|
| @@ -78,7 +81,7 @@ void PageScaleAnimation::ZoomTo(const gfx::Vector2dF& target_scroll_offset,
|
| target_page_scale_factor_ = target_page_scale_factor;
|
| target_scroll_offset_ = target_scroll_offset;
|
| ClampTargetScrollOffset();
|
| - duration_ = duration;
|
| + duration_ = TimeDelta::FromSecondsD(duration);
|
|
|
| if (start_page_scale_factor_ == target_page_scale_factor) {
|
| start_anchor_ = start_scroll_offset_;
|
| @@ -97,7 +100,7 @@ void PageScaleAnimation::ZoomWithAnchor(const gfx::Vector2dF& anchor,
|
| double duration) {
|
| start_anchor_ = anchor;
|
| target_page_scale_factor_ = target_page_scale_factor;
|
| - duration_ = duration;
|
| + duration_ = TimeDelta::FromSecondsD(duration);
|
|
|
| // We start zooming out from the anchor tapped by the user. But if
|
| // the target scale is impossible to attain without hitting the root layer
|
| @@ -163,36 +166,38 @@ gfx::SizeF PageScaleAnimation::ViewportSizeAt(float interp) const {
|
| }
|
|
|
| bool PageScaleAnimation::IsAnimationStarted() const {
|
| - return start_time_ >= 0;
|
| + return TimeUtil::TicksInSecondsF(start_time_) >= 0;
|
| }
|
|
|
| -void PageScaleAnimation::StartAnimation(double time) {
|
| - DCHECK_GT(0, start_time_);
|
| +void PageScaleAnimation::StartAnimation(base::TimeTicks time) {
|
| + DCHECK_GT(0, TimeUtil::TicksInSecondsF(start_time_));
|
| start_time_ = time;
|
| }
|
|
|
| -gfx::Vector2dF PageScaleAnimation::ScrollOffsetAtTime(double time) const {
|
| - DCHECK_GE(start_time_, 0);
|
| +gfx::Vector2dF PageScaleAnimation::ScrollOffsetAtTime(
|
| + base::TimeTicks time) const {
|
| + DCHECK_GE(TimeUtil::TicksInSecondsF(start_time_), 0);
|
| return ScrollOffsetAt(InterpAtTime(time));
|
| }
|
|
|
| -float PageScaleAnimation::PageScaleFactorAtTime(double time) const {
|
| - DCHECK_GE(start_time_, 0);
|
| +float PageScaleAnimation::PageScaleFactorAtTime(base::TimeTicks time) const {
|
| + DCHECK_GE(TimeUtil::TicksInSecondsF(start_time_), 0);
|
| return PageScaleFactorAt(InterpAtTime(time));
|
| }
|
|
|
| -bool PageScaleAnimation::IsAnimationCompleteAtTime(double time) const {
|
| - DCHECK_GE(start_time_, 0);
|
| +bool PageScaleAnimation::IsAnimationCompleteAtTime(base::TimeTicks time) const {
|
| + DCHECK_GE(TimeUtil::TicksInSecondsF(start_time_), 0);
|
| return time >= end_time();
|
| }
|
|
|
| -float PageScaleAnimation::InterpAtTime(double time) const {
|
| - DCHECK_GE(start_time_, 0);
|
| - DCHECK_GE(time, start_time_);
|
| - if (IsAnimationCompleteAtTime(time))
|
| +float PageScaleAnimation::InterpAtTime(base::TimeTicks monotonic_time) const {
|
| + DCHECK_GE(TimeUtil::TicksInSecondsF(start_time_), 0);
|
| + DCHECK_GE(TimeUtil::TicksInSecondsF(monotonic_time),
|
| + TimeUtil::TicksInSecondsF(start_time_));
|
| + if (IsAnimationCompleteAtTime(monotonic_time))
|
| return 1.f;
|
| -
|
| - const double normalized_time = (time - start_time_) / duration_;
|
| + const double normalized_time =
|
| + (monotonic_time - start_time_).InSecondsF() / duration_.InSecondsF();
|
| return timing_function_->GetValue(normalized_time);
|
| }
|
|
|
|
|