Chromium Code Reviews| Index: content/browser/android/overscroll_controller_android.cc |
| diff --git a/content/browser/android/overscroll_controller_android.cc b/content/browser/android/overscroll_controller_android.cc |
| index 3be50dac488ac9fdad7f86d83d778b8ef26cd3fd..f35ee7652315a118db67911bbc8e7b22b7c0c091 100644 |
| --- a/content/browser/android/overscroll_controller_android.cc |
| +++ b/content/browser/android/overscroll_controller_android.cc |
| @@ -128,6 +128,7 @@ bool OverscrollControllerAndroid::WillHandleGestureEvent( |
| switch (event.GetType()) { |
| case blink::WebInputEvent::kGestureScrollBegin: |
| refresh_effect_->OnScrollBegin(); |
| + consumed_ = false; |
| break; |
| case blink::WebInputEvent::kGestureScrollUpdate: { |
| @@ -135,6 +136,7 @@ bool OverscrollControllerAndroid::WillHandleGestureEvent( |
| event.data.scroll_update.delta_y); |
| scroll_delta.Scale(dpi_scale_); |
| handled = refresh_effect_->WillHandleScrollUpdate(scroll_delta); |
| + LOG(ERROR) << handled; |
|
majidvp
2017/05/18 15:26:10
remove.
sunyunjia
2017/05/19 20:14:23
Done.
|
| } break; |
| case blink::WebInputEvent::kGestureScrollEnd: |
| @@ -189,18 +191,27 @@ void OverscrollControllerAndroid::OnGestureEventAck( |
| refresh_effect_) { |
| // The effect should only be allowed if both the causal touch events go |
| // unconsumed and the generated scroll events go unconsumed. |
| - bool consumed = |
| - ack_result == INPUT_EVENT_ACK_STATE_CONSUMED || |
| - event.data.scroll_update.previous_update_in_sequence_prevented; |
| - refresh_effect_->OnScrollUpdateAck(consumed); |
| + consumed_ = ack_result == INPUT_EVENT_ACK_STATE_CONSUMED || |
| + event.data.scroll_update.previous_update_in_sequence_prevented; |
| } |
| } |
| void OverscrollControllerAndroid::OnOverscrolled( |
| - const DidOverscrollParams& params) { |
| + const DidOverscrollParams& overscroll_params) { |
| if (!enabled_) |
| return; |
| + DidOverscrollParams params = overscroll_params; |
| + |
| + if (refresh_effect_) { |
| + if (params.scroll_boundary_behavior.y == |
| + cc::ScrollBoundaryBehavior::ScrollBoundaryBehaviorType:: |
| + kScrollBoundaryBehaviorTypeAuto) |
| + refresh_effect_->OnScrollUpdateAck(consumed_); |
| + else |
| + refresh_effect_->OnScrollUpdateAck(true); |
|
majidvp
2017/05/18 15:26:10
This method is no longer invoked on ScrollUpdateAc
sunyunjia
2017/05/19 20:14:23
Done.
|
| + } |
| + |
| if (refresh_effect_ && (refresh_effect_->IsActive() || |
| refresh_effect_->IsAwaitingScrollUpdateAck())) { |
|
majidvp
2017/05/18 15:26:10
nit: the first condition is the same of the above
sunyunjia
2017/05/19 20:14:23
Done.
|
| // An active (or potentially active) refresh effect should always pre-empt |
| @@ -208,6 +219,16 @@ void OverscrollControllerAndroid::OnOverscrolled( |
| return; |
| } |
| + if (params.scroll_boundary_behavior.y == |
| + cc::ScrollBoundaryBehavior::ScrollBoundaryBehaviorType:: |
| + kScrollBoundaryBehaviorTypeNone) |
| + params.ClearY(); |
| + |
| + if (params.scroll_boundary_behavior.x == |
| + cc::ScrollBoundaryBehavior::ScrollBoundaryBehaviorType:: |
| + kScrollBoundaryBehaviorTypeNone) |
| + params.ClearX(); |
|
majidvp
2017/05/18 15:26:10
I believe this is for glow. So please update the C
sunyunjia
2017/05/19 20:14:23
Done.
|
| + |
| if (glow_effect_ && |
| glow_effect_->OnOverscrolled( |
| base::TimeTicks::Now(), |