New issue
Advanced search Search tips

Issue 860356 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 25
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Touch events do not respect display rotation.

Project Member Reported by w...@chromium.org, Jul 5

Issue description

Chrome Version: 69.0.3473.0
OS: ChromeOS

What steps will reproduce the problem?
(1) Open GMail in a tab.
(2) Flip Pixelbook into "tablet" mode.
(3) Turn it "upside down" i.e. hinge at top.
(4) Tap on e.g. Archive button of an email.
(5) Turn device "right way up", i.e. hinge at bottom.
(6) Tap on Archive button.

What is the expected result?

Expect that tapping Archive button at #4 archives the email.

What happens instead?

There is no effect to tapping the Archive button.  When the device is turned right-way-up the button works as expected.  If you tap when it is upside down then it is clear that taps are mis-interpreted as being 180-degrees rotated from where you tapped.

Unsure if this also affects other platforms, or only ChromeOS.
 
Note that I've tested this on the HP Chromebook X2 and Acer Chromebook Tab 10 with the same results. More info that might help: The issue is constant when holding these two devices in portrait mode, i.e,; element touches on the right side of the display do not register and/or register an element touch on the left side of the display. Scrolling a web page while portrait mode *does* work, regardless of the side of the display being touched. Tapping a web page link on the right side does not always work, however.
Happens to me too. I am on the latest beta 68.0.3440.40 and Google pixelbook.

When in portrait mode every touch at the top of the screen activates something that is in lower portion of the screen.  Note that Chrome tabs and tools menus touching works, only what is the body the tab does not.
Chromebook X2 user and I have this problem as well
Components: -UI>Input UI>Input>Touch
Labels: M-68
Tagging M68 as per #2.
Touch issues on Chromebook Tab 10 dev channel, Gmail seems to be particularly susceptible (in its full fat version - basic html view is better). Touches either not registered, or assigned to wrong place.

Rotating the tablet occasionally, but not always, helps.
Samsung Chromebook Pro user here, happens to me on the dev channel with CROS 69.0.3486.0

PS Only commenting to confirm the issue happens on the CBPro / Caroline as well
Cc: osh...@chromium.org abodenha@chromium.org
This bug is marked as a 68 stable release blocker, and we are coming up on stable in a couple weeks, so we need to get it fixed or reclassify it.

Oshima, is this in your jurisdiction?
Cc: rjkroege@chromium.org riajiang@chromium.org
Status: Available (was: Untriaged)
This may be related to viz hit testing finch experiement. 

Can you try disabing "enable-viz-hit-test-draw-quad"?



Disabling the "enable-viz-hit-test-draw-quad" flag seems to fix things on a Chromebook Tab 10 in dev channel.
Disabling "enable-viz-hit-test-draw-quad" seems to fix the issue on the latest Beta channel / Pixelbook.
Cc: -riajiang@chromium.org
Owner: riajiang@chromium.org
Status: Assigned (was: Available)
thank you for confirming. 

riajiang@, can you look into this?
Cc: omrilio@chromium.org
Status: Started (was: Assigned)
Cc: sadrul@chromium.org kenrb@chromium.org
I can repro this on ChromeOS with VizHitTestDrawQuad turned on and display rotated 90 degrees and 180 degrees; can't repro on Android landscape mode.

Right now the upmost level of transform we are using in VizHitTestDrawQuad is the transform_to_root_target in RenderPass [1], which I thought included transform to the display/ root window? Is there another level of transform for the display? If so could someone please point me to that? Thanks!

[1] https://cs.chromium.org/chromium/src/components/viz/common/quads/render_pass.h?q=transform_to_root_targ&sq=package:chromium&g=0&l=123
Which channels does this experiment apply to?  (If this is only affecting Dev and Canary channel users then we can remove ReleaseBlock-Stable)
Labels: -ReleaseBlock-Stable
It applies to canary, dev and beta 50%. Since this is only affecting ChromeOS, I'll turn on stable 1% for other platforms. 
#14, it looks to me that the transform is not applied to the content's frames. (or wrong transform is applied).
May be related to internal bug for Android Apps: http://b/111611913
Labels: Hotlist-ConOps-CrOS
Here's a user report on M69 Dev that disabling #enable_viz_hit_test_draw_quad had no impact.

https://listnr.corp.google.com/report/85554819615
For this specific bug on ChromeOS  (root transform not applied to event location), I have a CL in review https://chromium-review.googlesource.com/c/chromium/src/+/1140926. I'll take a look to see if the one for Android Apps is related.
Project Member

Comment 23 by bugdroid1@chromium.org, Jul 19

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

commit 4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba
Author: Ria Jiang <riajiang@chromium.org>
Date: Thu Jul 19 22:24:34 2018

Apply root window transform to event location in VizHitTestDrawQuad.

On ChromeOS, we can apply transform to the root window, e.g. rotation.
Before sending an event location to HitTestQuery for targeting, we need
to account for this transform so that the location is correctly in the
coordinate space of the root surface.

This CL updates GetOffsetFromRootSurface to be
TransformPointToRootSurface - instead of just getting the offset from
RenderWidgetHostView to root surface, we pass the point to different
RenderWidgetHostView implementations so that RenderWidgetHostViewAura
can apply root window's transform to the point, other implementations
remain the same.

Bug:  860356 
Test: site_per_process_hit_test_browsertest
Change-Id: Ieed02489c9a225fbb7a4f7a42a9788878079acb1
Reviewed-on: https://chromium-review.googlesource.com/1140926
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576662}
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_input_event_router.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/browser/site_per_process_hit_test_browsertest.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/shell/browser/shell_aura.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/test/test_render_view_host.cc
[modify] https://crrev.com/4c1d89115ee1b07d9c5fe7cea0ba721ebdc130ba/content/test/test_render_view_host.h

VizHitTestDrawQuad finch experiment has been disabled on ChromeOS. I'll turn it back on after the CL in c#23 gets into Canary/Dev/Beta/Stable channel.

The Android Apps bug mentioned in c#18 shouldn't be related to VizHitTestDrawQuad because VizHitTestDrawQuad does hit-testing at a different level that shouldn't be used by Android Apps hit-testing.
Labels: Merge-Request-68
I've tested this CL on my ChromeOS local build - I believe ChromeOS hasn't released a version with this CL yet https://cros-omahaproxy.appspot.com.

The real change to this CL is this line https://chromium-review.googlesource.com/c/chromium/src/+/1140926/8/content/browser/renderer_host/render_widget_host_view_aura.cc to apply root window transform in ChromeOS, other changes are just overrides in subclasses and tests.

This should only affect ChromeOS (ChromeOS M68 stable cut is July 24) and is only used in VizHitTestDrawQuad finch experiment which has already been turned off on ChromeOS.

Thanks!
Project Member

Comment 26 by sheriffbot@chromium.org, Jul 23

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

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-68 Merge-Approved-68
Project Member

Comment 28 by bugdroid1@chromium.org, Jul 24

Labels: -merge-approved-68 merge-merged-3440
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2677cac0528497947958c59aff044e43c579294b

commit 2677cac0528497947958c59aff044e43c579294b
Author: Ria Jiang <riajiang@chromium.org>
Date: Tue Jul 24 23:44:30 2018

Apply root window transform to event location in VizHitTestDrawQuad.

On ChromeOS, we can apply transform to the root window, e.g. rotation.
Before sending an event location to HitTestQuery for targeting, we need
to account for this transform so that the location is correctly in the
coordinate space of the root surface.

This CL updates GetOffsetFromRootSurface to be
TransformPointToRootSurface - instead of just getting the offset from
RenderWidgetHostView to root surface, we pass the point to different
RenderWidgetHostView implementations so that RenderWidgetHostViewAura
can apply root window's transform to the point, other implementations
remain the same.

Bug:  860356 
Test: site_per_process_hit_test_browsertest
Change-Id: Ieed02489c9a225fbb7a4f7a42a9788878079acb1
Reviewed-on: https://chromium-review.googlesource.com/1140926
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Ria Jiang <riajiang@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#576662}
Reviewed-on: https://chromium-review.googlesource.com/1149200
Reviewed-by: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#747}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_input_event_router.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/browser/site_per_process_hit_test_browsertest.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/shell/browser/shell_aura.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/test/test_render_view_host.cc
[modify] https://crrev.com/2677cac0528497947958c59aff044e43c579294b/content/test/test_render_view_host.h

Status: Fixed (was: Started)

Sign in to add a comment