New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 647140 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Regression

Blocked on:
issue 779372

Blocking:
issue 830980



Sign in to add a comment

Gesture Navigation doesn't work on touchpad on Windows

Reported by board...@gmail.com, Sep 15 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2859.0 Safari/537.36

Steps to reproduce the problem:
Try to two finger fling gesture forward or back and nothing happens.

What is the expected behavior?
Should invoke forward and back gestures.

What went wrong?
No navigation.

Did this work before? Yes 

Chrome version: 55.0.2859.0  Channel: dev
OS Version: 10.0
Flash Version: Shockwave Flash 23.0 r0

Possible duplicate of https://bugs.chromium.org/p/chromium/issues/detail?id=608471 ?

I'm not sure what version this broke in, I am currently using the dev branch and have been using Edge as my primary browser for a while but scrolling worked fine prior to switching to Edge.

In that time the Windows 10 Anniversary Update also shipped, so there may be changes that affect this.

Hardware is Surface Pro 4 with Surface Pro 4 keyboard.
 
Components: -UI UI>Shell>GestureNav Internals>Input>Touch>Pad
@boarder2: Does 2-finger horizontal scrolling work elsewhere in Chrome? E.g. if you make the Chrome window really narrow - can you scroll it horizontally with 2-finger touchpad scroll?

I am able to perform gesture navigation navigation in 55.0.2859.0 on a Surface running Windows 8.1.

Comment 3 by board...@gmail.com, Sep 19 2016

It does, if I make the window small on this bug I can scroll horizontally without issue.

I'm using Windows 10 14393.105
Owner: mfomitchev@chromium.org
Status: Assigned (was: Unconfirmed)
Going to take a closer look at this.
Cc: sadrul@chromium.org
Owner: dtapu...@chromium.org
+dtapuska, sadrul

Dave: I am assigning this to you for triage. There are several options. The problem space is pretty similar to that of "smooth scrolling", so I think you or other people who worked on smooth scrolling, would be in a better position than me to evaluate the feasibility of various options.

This is caused by the fact that all Windows trackpads are now considered "non-precises" (since this CL:   https://codereview.chromium.org/1574013002). And overscroll (and thus gesture navigation) is supposed to be disabled for non-precises trackpad scrolls. It was sort of kind of working purely by an oversight, but a recent CL (https://codereview.chromium.org/2356433003) closed that loophole. 

I think we have four options:
1. Disable GestureNav on Windows by default, period.
2. Leave things the way they are: GestureNav enabled for touchscreen, but disabled for trackpad.
3. Change the behavior so that GestureNav/overscroll works on Windows for trackpads with imprecise scrolling.
4. Figure out how to differentiate between trackpads with precise and imprecise scrolling on Windows (rather than treating all as imprecise).

I am not a big fan of (2), because it seems broken/inconsistent to have GestureNav work on touchscreen but not trackpad. Plus, GestureNav has a price: we capture a screenshot every time we navigate, and paying this price just to have half the feature seems excessive.

I would be okay with all the other options.

(3) is an interesting option: As far as I can tell from conversation with sadrul@, the main technical reason we were historically ignoring imprecise scrolling for overscroll is that there were no begin/end events. Now that we are generating gesture events from wheel events this is not the case anymore, so I think a case could be made for enabling overscroll for imprecise scrolls. I *think* this would mean that you can use SHIFT + vertical mouse wheel to overscroll, and we should confirm with the UX if that would be okay. If not, perhaps there is some way we can differentiate wheel scroll from trackpad scroll? 
Summary: Gesture Navigation doesn't work on touchpad on Windows (was: Fling doesn't work on touchpad)
I believe #4 we were thinking of doing for scroll latching. 
Labels: -Type-Bug Type-Bug-Regression
Cc: sahel@chromium.org tdres...@chromium.org
sahel@ do we have a plan yet for how we will interact with Windows high precision touch pads?
High precision touchpads aren't yet common enough that they should impact our planning here, in my opinion, ruling out #4. We could gather more data here.

I don't think we can distinguish between a mouse wheel and a non-precise touchpad and we don't want to trigger for wheel. I think that rules out #3.

Does this seem reasonable? I'm worried that switching from #2 to #1 will cause some folks to get rather upset.
Doing a quick UMA query, 11.5% of Windows Chrome launches are from a Tablet, which I guess means Surface, which I assume (am I wrong?) means high precision touchpad
https://uma.googleplex.com/histograms?endDate=11-19-2014&dayCount=7&histograms=Windows.Tablet&fixupData=true&otherVersions=true&showMax=true&filters=isofficial%2Ceq%2CTrue&implicitFilters=isofficial

I also wouldn't necessarily rule out #3 if we can rely on getting begin/end events.
The vast majority of Windows tablets aren't Surface's. (https://www.amazon.com/s/ref=nb_sb_noss_2/161-0763034-7412664?url=search-alias%3Daps&field-keywords=windows+tablet)

Are you proposing we would trigger navigation from mouse wheel?
To be clear, I don't think we should postpone #4 forever, but I don't think it has much impact.

If we did #4, would we disable touch gesture nav for the 9n% who don't have high precision touchpads?
Ok. Any idea how to extract relevant stats from UMA? I poked around a bit, couldn't find anything.

To clarify re mouse wheel: ideally we wouldn't do it, but I think it might be better than disabling gesture nav for all trackpads altogether. Doing gesture nav when you tilt the wheel is okay IMO. Doing it when you shift + vertical wheel is a bit odd, but might be okay, and perhaps we can also filter those out? 
Also, gesture nav is only enabled on Windows if there's touch screen present, so for the vast majority of Windows desktops it won't make a difference.
Cc: ananta@chromium.org
I don't think we have an UMA for how common high precision touchpads are. 
+ananta to comment on this.

Just so I'm clear - you're proposing that gesture nav via wheel tilt work only on machines with touch screens? That feels a bit odd to me...
GestureNav is only enabled on Windows if there is touch screen present. This is not new, it's been working this way for a while.

I am proposing making gesture nav work with wheel tilt. I don't think this is ideal, but I think it might be better than disabling it for touchpads.
So you're proposing that GestureNav work for touchscreen, and also touchpad and wheel on devices with touchscreens.

Is that better than GestureNav being touchscreen only? I'd consider being touchscreen only a more rational behavior. If I've got two devices, one with a touchscreen and one without, I don't expect the touchpads to behave differently.


Cc: varkha@chromium.org
Can we tell if a device has a touchpad? If we could, I think enabling it on all devices with touchpad or touchscreen is the best option.

I wouldn't disable it on touchpads on devices with touchscreen just for the sake of consistency. I think value to the end user in this case is more important than consistency of feature sets across devices. Sure, if I am a user in your scenario, I'd be scratching my head. But if I am a user of a Windows device with a touchscreen and a touchpad (regardless of whether I have another device), and GestureNav works on touchscreen but not a touchpad, I'd be a little annoyed too. Especially if it used to work before.
I think the feature should be enabled when the user is interacting with the page using the touchscreen or touchpad (and when we can detect it correctly). Whether the system has a different device or not should not affect the behaviour. (e.g. if the user is interacting with the touchpad, then whether the system also has a touchscreen or not should be irrelevant)
The problem is that we need to capture the screenshots in advance (and it's not free).
This would work if we switch to the simplified UX (varkha@ may like this idea). Or I guess we could start capturing screenshots after the first time the user overscrolls, but that feels a bit meh..
I don't think we can detect when the user has a touchpad.

ananta@, do you think this is doable?

Do we have data on frequency of use of GestureNav with touch vs wheel / touchpad?
Unfortunately not. Only unified stats for trackpad and touchscreen.
Labels: Hotlist-Input-Dev
Owner: chaopeng@chromium.org
Cc: lanwei@chromium.org
Touchpad is detectable via

Using WM_POINTERWHEEL/WM_POINTERHWHEEL and inspecting the pointerType.

Note this needs to enable pointer events for mouse events so this really needs to be co-ordinated with Lan's work...
https://msdn.microsoft.com/en-us/library/windows/desktop/hh447467(v=vs.85).aspx
It seems we can detect event source device from https://msdn.microsoft.com/en-us/library/windows/desktop/hh448803(v=vs.85).aspx
Cc: moh...@chromium.org
+mohsen@
Blockedon: 779372
Project Member

Comment 29 by bugdroid1@chromium.org, Feb 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2031b9107e18131e17697a922aa797c3a128413f

commit 2031b9107e18131e17697a922aa797c3a128413f
Author: chaopeng <chaopeng@chromium.org>
Date: Thu Feb 01 20:40:44 2018

Move direct_manipulation to ui/base/win

This patch is preparing for the new implementation of Direct
Manipulation API. In the patch, we move direct_manipulation.h|cc to
ui/base/win, change related macros, includes and run git cl format.

Bug:  647140 
Change-Id: Ib3acccf84737ae6c25be27ad0d2776ab005c5fd3
Reviewed-on: https://chromium-review.googlesource.com/896704
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533805}
[modify] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/content/browser/renderer_host/legacy_render_widget_host_win.cc
[modify] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/content/browser/renderer_host/legacy_render_widget_host_win.h
[modify] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/ui/base/BUILD.gn
[rename] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/ui/base/win/direct_manipulation.cc
[rename] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/ui/base/win/direct_manipulation.h
[modify] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/ui/gfx/BUILD.gn
[modify] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/ui/views/win/hwnd_message_handler.cc
[modify] https://crrev.com/2031b9107e18131e17697a922aa797c3a128413f/ui/views/win/hwnd_message_handler.h

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/77ff930c1685bca26a5c3b362f732f157f94bece

commit 77ff930c1685bca26a5c3b362f732f157f94bece
Author: chaopeng <chaopeng@chromium.org>
Date: Tue Mar 13 03:35:03 2018

Pinch zoom support for Windows Precision Touchpad

In this patch, we covert the scale factor from Direct Manipulation
to GesturePinch event. The ctrl+wheel will create by WebViewImpl::
HandleSyntheticWheelFromTouchpadPinchEvent.

Bug:  647140 
Change-Id: Ib041d7805daac7e71b2f43872c818a9f36b14abd
Reviewed-on: https://chromium-review.googlesource.com/786348
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542719}
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/content/browser/renderer_host/direct_manipulation_browsertest.cc
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/base/win/direct_manipulation.cc
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/base/win/direct_manipulation.h
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/base/win/direct_manipulation_unittest.cc
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/base/win/window_event_target.h
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/views/win/hwnd_message_handler.cc
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/views/win/hwnd_message_handler.h
[modify] https://crrev.com/77ff930c1685bca26a5c3b362f732f157f94bece/ui/views/win/hwnd_message_handler_delegate.h

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e8f2c03b9993edbf20c66dfaaca06cb7426fde33

commit e8f2c03b9993edbf20c66dfaaca06cb7426fde33
Author: chaopeng <chaopeng@chromium.org>
Date: Thu Apr 05 03:11:59 2018

Populate the scroll phase event for pan gesture from Direct Manipulation

For support navigation change by gesture, we need to populate scroll
phase event from Direct Manipulation. We add a new flag
PrecisionTouchpadScrollPhase for this in case we want to turn off
this CL.

Bug:  647140 
Change-Id: Id815d3d0b5ee09bc13aaa1c99423364fef04c310
Reviewed-on: https://chromium-review.googlesource.com/967103
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Navid Zolghadr <nzolghadr@chromium.org>
Reviewed-by: Sahel Sharifymoghaddam <sahel@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548304}
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/content/browser/renderer_host/direct_manipulation_browsertest.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/base/ui_base_features.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/base/ui_base_features.h
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/base/win/direct_manipulation.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/base/win/direct_manipulation.h
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/base/win/direct_manipulation_unittest.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/base/win/window_event_target.h
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/blink/web_input_event.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/event.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/event.h
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/event_constants.h
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/mojo/event.mojom
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/mojo/event.typemap
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/mojo/event_constants.mojom
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/mojo/event_struct_traits.h
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/events/mojo/struct_traits_unittest.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/views/win/hwnd_message_handler.cc
[modify] https://crrev.com/e8f2c03b9993edbf20c66dfaaca06cb7426fde33/ui/views/win/hwnd_message_handler.h

Project Member

Comment 32 by bugdroid1@chromium.org, Apr 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1d469b0925a7af7716ff9d1d23ad38c030c80e26

commit 1d469b0925a7af7716ff9d1d23ad38c030c80e26
Author: chaopeng <chaopeng@chromium.org>
Date: Thu Apr 05 15:41:07 2018

Allow overscroll completion by inertial scroll event (fling)

To support Windows Touchpad swipe left/right navigation change, we need
to allow completing the overscroll by inertial scroll event (fling). Also
after overscroll completion, we need to ignore the rest of the inertial
scroll events (flings) in the same sequence.

Bug:  647140 
Change-Id: I20542bd3fe95689eb2dfd8922aef077b9d64d139
Reviewed-on: https://chromium-review.googlesource.com/982101
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Reviewed-by: Sahel Sharifymoghaddam <sahel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548434}
[modify] https://crrev.com/1d469b0925a7af7716ff9d1d23ad38c030c80e26/content/browser/renderer_host/overscroll_controller.cc
[modify] https://crrev.com/1d469b0925a7af7716ff9d1d23ad38c030c80e26/content/browser/renderer_host/overscroll_controller.h
[modify] https://crrev.com/1d469b0925a7af7716ff9d1d23ad38c030c80e26/content/browser/renderer_host/overscroll_controller_unittest.cc

Project Member

Comment 33 by bugdroid1@chromium.org, Apr 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e38821585faa92af0c1fa15d16804e205af23e9d

commit e38821585faa92af0c1fa15d16804e205af23e9d
Author: chaopeng <chaopeng@chromium.org>
Date: Fri Apr 06 05:30:06 2018

Set default value to ScrollEvent scroll_event_phase_

This patch is for set the scroll_event_phase_ kNone as default
in ctor. It hits DCHECK in MakeWebMouseWheelEventFromUiEvent()
if the field not set.

Bug:  647140 

Change-Id: I3fd523bd84788957d0d05770fa70503be619e4ad
Reviewed-on: https://chromium-review.googlesource.com/998755
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548681}
[modify] https://crrev.com/e38821585faa92af0c1fa15d16804e205af23e9d/ui/events/event.cc
[modify] https://crrev.com/e38821585faa92af0c1fa15d16804e205af23e9d/ui/events/event.h

Blocking: 830980
Project Member

Comment 35 by bugdroid1@chromium.org, Apr 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7585d7975a744e6b13db14bc074169d2f74239d

commit a7585d7975a744e6b13db14bc074169d2f74239d
Author: chaopeng <chaopeng@chromium.org>
Date: Tue Apr 10 18:02:38 2018

Ignored inertial scroll (fling) event should ignore in ReceivedEventACK()

An inertial scroll (fling) event from previous completed overscroll
gesture sequence should not modify scroll state in ReceivedEventACK().

Bug:  647140 
Change-Id: I48c595124c7f0e2e37b92d256ab13dc50a1ec400
Reviewed-on: https://chromium-review.googlesource.com/1003214
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549586}
[modify] https://crrev.com/a7585d7975a744e6b13db14bc074169d2f74239d/content/browser/renderer_host/overscroll_controller.cc
[modify] https://crrev.com/a7585d7975a744e6b13db14bc074169d2f74239d/content/browser/renderer_host/overscroll_controller.h
[modify] https://crrev.com/a7585d7975a744e6b13db14bc074169d2f74239d/content/browser/renderer_host/overscroll_controller_unittest.cc

Project Member

Comment 36 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190

commit cd44c76266bb8bfe39386cf7a4ef81f47a9ea190
Author: chaopeng <chaopeng@chromium.org>
Date: Fri Apr 13 04:08:21 2018

Disable overscroll history navigation on Windows Touchpad

Disable overscroll history navigation on Windows Touchpad with
feature flag. This CL also wraps all changes in crrev/c/98210
and crrev/c/1003214 behind this flag.

This CL also disable overscroll history navigation on Linux
Touchpad since we will set has_precise_delta for Linux soon.

Bug:  647140 
Change-Id: Id08654bf20b3ada7b5e75f2308a915efeed0e934
Reviewed-on: https://chromium-review.googlesource.com/1002866
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550508}
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/overscroll_configuration.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/overscroll_controller.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/overscroll_controller_unittest.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/public/browser/overscroll_configuration.h
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/public/common/content_features.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/public/common/content_features.h

Cc: -moh...@chromium.org bokan@chromium.org
Labels: Merge-Request-66
The turn off flags is needed in M66.
Project Member

Comment 38 by sheriffbot@chromium.org, Apr 13 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: We are only 3 days from stable.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-66 Merge-Request-67
Please ignore 37# 38#, the merge is needed in M67.
Project Member

Comment 40 by sheriffbot@chromium.org, Apr 14 2018

Labels: -Merge-Request-67 Merge-Approved-67 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M67. Please go ahead and merge the CL to branch 3396 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 41 by bugdroid1@chromium.org, Apr 14 2018

Labels: -merge-approved-67 merge-merged-3396
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/854c16c524df00fa38aa0f8954f6f4d848053de3

commit 854c16c524df00fa38aa0f8954f6f4d848053de3
Author: chaopeng <chaopeng@chromium.org>
Date: Sat Apr 14 23:46:02 2018

Disable overscroll history navigation on Windows Touchpad

Disable overscroll history navigation on Windows Touchpad with
feature flag. This CL also wraps all changes in crrev/c/98210
and crrev/c/1003214 behind this flag.

This CL also disable overscroll history navigation on Linux
Touchpad since we will set has_precise_delta for Linux soon.

Bug:  647140 
Change-Id: Id08654bf20b3ada7b5e75f2308a915efeed0e934
Reviewed-on: https://chromium-review.googlesource.com/1002866
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#550508}(cherry picked from commit cd44c76266bb8bfe39386cf7a4ef81f47a9ea190)
Reviewed-on: https://chromium-review.googlesource.com/1013221
Reviewed-by: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/branch-heads/3396@{#6}
Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428}
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/browser/renderer_host/overscroll_configuration.cc
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/browser/renderer_host/overscroll_controller.cc
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/browser/renderer_host/overscroll_controller_unittest.cc
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/public/browser/overscroll_configuration.h
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/public/common/content_features.cc
[modify] https://crrev.com/854c16c524df00fa38aa0f8954f6f4d848053de3/content/public/common/content_features.h

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190

commit cd44c76266bb8bfe39386cf7a4ef81f47a9ea190
Author: chaopeng <chaopeng@chromium.org>
Date: Fri Apr 13 04:08:21 2018

Disable overscroll history navigation on Windows Touchpad

Disable overscroll history navigation on Windows Touchpad with
feature flag. This CL also wraps all changes in crrev/c/98210
and crrev/c/1003214 behind this flag.

This CL also disable overscroll history navigation on Linux
Touchpad since we will set has_precise_delta for Linux soon.

Bug:  647140 
Change-Id: Id08654bf20b3ada7b5e75f2308a915efeed0e934
Reviewed-on: https://chromium-review.googlesource.com/1002866
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550508}
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/overscroll_configuration.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/overscroll_controller.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/overscroll_controller_unittest.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/public/browser/overscroll_configuration.h
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/public/common/content_features.cc
[modify] https://crrev.com/cd44c76266bb8bfe39386cf7a4ef81f47a9ea190/content/public/common/content_features.h

Project Member

Comment 43 by bugdroid1@chromium.org, May 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e2b6e5ffe666bd4c7fcb9b6ba2ebb175c0df97f4

commit e2b6e5ffe666bd4c7fcb9b6ba2ebb175c0df97f4
Author: chaopeng <chaopeng@chromium.org>
Date: Tue May 08 16:40:45 2018

Add a chrome://flags for touchpad-overscroll-history-navigation.

After UI review, UI folks suggested to have a flag to turn "swipe to
navigation change" off although chrome://flags. Edge, Safari, and
Chrome(Mac) users asked Internet how to disable it (search for 'swipe
to navigate how to disable on [edge/mac/chrome]'. But Win 10 doesn't
have a specific setting. MacOS has the specific control and it works
for Chrome on Mac. Also we know the user can trigger this
unintentionally and be frustrated.

This flag might be maintained while we continue to improve it over time.

Bug:  647140 
Change-Id: I8e855216fc834fd8f0acbb6011be12f13eda4cd7
Reviewed-on: https://chromium-review.googlesource.com/1047785
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556832}
[modify] https://crrev.com/e2b6e5ffe666bd4c7fcb9b6ba2ebb175c0df97f4/chrome/browser/about_flags.cc
[modify] https://crrev.com/e2b6e5ffe666bd4c7fcb9b6ba2ebb175c0df97f4/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/e2b6e5ffe666bd4c7fcb9b6ba2ebb175c0df97f4/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/e2b6e5ffe666bd4c7fcb9b6ba2ebb175c0df97f4/tools/metrics/histograms/enums.xml

Project Member

Comment 44 by bugdroid1@chromium.org, May 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9736c5256c12c84980720228edf0f09614210ae5

commit 9736c5256c12c84980720228edf0f09614210ae5
Author: chaopeng <chaopeng@chromium.org>
Date: Tue May 08 18:32:27 2018

Improve overscroll user experience on Windows

This patch includes 2 changes, These changes only effect Windows
touchpad because only fling events on Windows touchpad can reach
overscroll controller.

1. Prevent fling event start overscroll.
2. Only fling events in first 0.3 second will processed for
   overscroll. On Windows, we don't generate the inertial
   events (fling) but receive them from Win API. In some cases,
   we get a long tail of inertial events for a couple of seconds.
   The overscroll animation feels like stuck in these cases. So
   we only process 0.3 second inertial events then cancel the
   overscroll if it is not completed yet.

Bug:  647140 
Change-Id: Iea7941bff77a84f95acf8f342c12273cb909a5d3
Reviewed-on: https://chromium-review.googlesource.com/1025391
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556890}
[modify] https://crrev.com/9736c5256c12c84980720228edf0f09614210ae5/content/browser/renderer_host/overscroll_configuration.cc
[modify] https://crrev.com/9736c5256c12c84980720228edf0f09614210ae5/content/browser/renderer_host/overscroll_controller.cc
[modify] https://crrev.com/9736c5256c12c84980720228edf0f09614210ae5/content/browser/renderer_host/overscroll_controller.h
[modify] https://crrev.com/9736c5256c12c84980720228edf0f09614210ae5/content/browser/renderer_host/overscroll_controller_unittest.cc
[modify] https://crrev.com/9736c5256c12c84980720228edf0f09614210ae5/content/public/browser/overscroll_configuration.h

Status: Fixed (was: Assigned)

Sign in to add a comment