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(), |