| Index: content/browser/web_contents/aura/overscroll_window_animation.cc
|
| diff --git a/content/browser/web_contents/aura/overscroll_window_animation.cc b/content/browser/web_contents/aura/overscroll_window_animation.cc
|
| index 8ed3bf04d48809b9a0e58c310c003f5c1099839c..2888b4ecaec5ba526f8b5e155c6471bdc1f4d51f 100644
|
| --- a/content/browser/web_contents/aura/overscroll_window_animation.cc
|
| +++ b/content/browser/web_contents/aura/overscroll_window_animation.cc
|
| @@ -81,12 +81,14 @@ void OverscrollWindowAnimation::OnImplicitAnimationsCompleted() {
|
| } else {
|
| delegate_->OnOverscrollCompleted(std::move(slide_window_));
|
| }
|
| + overscroll_source_ = OVERSCROLL_SOURCE_NONE;
|
| direction_ = SLIDE_NONE;
|
| }
|
|
|
| void OverscrollWindowAnimation::OnOverscrollModeChange(
|
| OverscrollMode old_mode,
|
| - OverscrollMode new_mode) {
|
| + OverscrollMode new_mode,
|
| + OverscrollSource source) {
|
| DCHECK_NE(old_mode, new_mode);
|
| Direction new_direction = GetDirectionForMode(new_mode);
|
| if (new_direction == SLIDE_NONE) {
|
| @@ -111,12 +113,16 @@ void OverscrollWindowAnimation::OnOverscrollModeChange(
|
| : -slide_window_bounds.width() / 2,
|
| 0);
|
| }
|
| +
|
| + DCHECK_EQ(overscroll_source_, OVERSCROLL_SOURCE_NONE);
|
| + overscroll_source_ = source;
|
| slide_window_ = new_direction == SLIDE_FRONT
|
| ? delegate_->CreateFrontWindow(slide_window_bounds)
|
| : delegate_->CreateBackWindow(slide_window_bounds);
|
| if (!slide_window_) {
|
| // Cannot navigate, do not start an overscroll gesture.
|
| direction_ = SLIDE_NONE;
|
| + overscroll_source_ = OVERSCROLL_SOURCE_NONE;
|
| return;
|
| }
|
| overscroll_cancelled_ = false;
|
|
|