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

Issue 755594 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 716668



Sign in to add a comment

Computed white-listed touch action is wrong

Project Member Reported by xidac...@chromium.org, Aug 15 2017

Issue description

In this page:
https://jsbin.com/yodibuy/1/edit?html,css,js,output

The white-listed touch action should be pan-y while we return auto.

Another test is here:
https://jsbin.com/bedapa/1/edit?html,css,js,output
 

Comment 1 by flackr@chromium.org, Aug 15 2017

I wrote the second test case as an example where the white-listed touch action doesn't match the real touch action. In the overlap of the blue and green boxes the white-listed touch action will be pan-y but the true touch-action is auto because the green box is stacked on top.
flackr@: yes, I basically took the two test cases that you wrote :)

Could this also be one of the reasons that we get 10% mismatch comparing white-listed vs effective touch action?

Comment 3 by flackr@chromium.org, Aug 15 2017

Hard to say without seeing the concrete examples since we also seem to have a bug computing the white-listed touch action, but the second test case is where we expect to have a mismatch between the white listed and effective touch action with our current implementation. This can be fixed but requires a lot of overlap testing in the paint code.
While testing https://jsbin.com/yodibuy/1/edit?html,css,js,output on the master branch, I found that if you touch many times too quickly the following DCHECK fails.

content/browser/renderer_host/input/legacy_input_router_impl.cc(496) LegacyInputRouterImpl::OnSetTouchAction touch_event_queue_->IsPendingAckTouchStart().

Comment 5 by flackr@chromium.org, Aug 15 2017

Re #4, can you file a separate bug for this?

Comment 6 by flackr@chromium.org, Aug 18 2017

Cc: -flackr@chromium.org xidac...@chromium.org dtapu...@chromium.org
Owner: flackr@chromium.org
Status: Started (was: Assigned)
I found the issue. We gather the target rects per layer, but we get the effective touch action off of the layer rather than the object the rect came from. This means that when a composited layer has a non-composited descendant with a touch-action we create an auto whitelisted region for it. We should never have touch-action: auto; whitelisted regions.

I'm working on a patch to fix this.

Comment 7 by flackr@chromium.org, Aug 24 2017

I have a patch which fixes the whitelisted touch action regions:
https://chromium-review.googlesource.com/c/chromium/src/+/630141
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 7 2017

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

commit 15fd3f0688b8ff96119b89a7f655b425b8fca3d9
Author: Robert Flack <flackr@chromium.org>
Date: Thu Sep 07 16:09:58 2017

Fix effective touch actions to come from hit test rects.

This patch records the effective touch actions from the objects and
layers which generate hit test rects.

We were previously recording the effective touch action from the layer
containing the hit test rects rather than the objects producing those
rects. This meant we did not record the correct touch actions.

Bug:  755594 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I4d160d64e895e270403f3bd826ac41b8231e4709
Reviewed-on: https://chromium-review.googlesource.com/630141
Commit-Queue: Xida Chen <xidachen@chromium.org>
Commit-Queue: Robert Flack <flackr@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500314}
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/LayoutTests/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[add] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/LayoutTests/platform/mac/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/LayoutText.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/api/LayoutItem.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinatorTest.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/paint/LayerHitTestRects.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/testing/Internals.cpp
[add] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/testing/data/touch-action-blocking-handler.html
[add] https://crrev.com/15fd3f0688b8ff96119b89a7f655b425b8fca3d9/third_party/WebKit/Source/core/testing/data/touch-action-regions.html

Status: Fixed (was: Started)
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 7 2017

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

commit a330538faed54bf19818c05935db5deab1484894
Author: Roger McFarlane <rogerm@chromium.org>
Date: Thu Sep 07 17:56:08 2017

Revert "Fix effective touch actions to come from hit test rects."

This reverts commit 15fd3f0688b8ff96119b89a7f655b425b8fca3d9.

Reason for revert:

Seeing new failures for

fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected

Which was updated by this CL. Please validate and fix/reland as appropriate.

Original change's description:
> Fix effective touch actions to come from hit test rects.
> 
> This patch records the effective touch actions from the objects and
> layers which generate hit test rects.
> 
> We were previously recording the effective touch action from the layer
> containing the hit test rects rather than the objects producing those
> rects. This meant we did not record the correct touch actions.
> 
> Bug:  755594 
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I4d160d64e895e270403f3bd826ac41b8231e4709
> Reviewed-on: https://chromium-review.googlesource.com/630141
> Commit-Queue: Xida Chen <xidachen@chromium.org>
> Commit-Queue: Robert Flack <flackr@chromium.org>
> Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
> Reviewed-by: Xida Chen <xidachen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#500314}

TBR=flackr@chromium.org,dtapuska@chromium.org,xidachen@chromium.org

Change-Id: I8c364f7d53b88f4192e175ad63f5470db1b39ee7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  755594 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/655698
Reviewed-by: Roger McFarlane <rogerm@chromium.org>
Commit-Queue: Roger McFarlane <rogerm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500332}
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/LayoutTests/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[delete] https://crrev.com/512536e0e8a47f4ba78613296cd9a8ce2d805b3d/third_party/WebKit/LayoutTests/platform/mac/fullscreen/compositor-touch-hit-rects-fullscreen-video-controls-expected.txt
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/LayoutText.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/api/LayoutItem.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinatorTest.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/paint/LayerHitTestRects.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/a330538faed54bf19818c05935db5deab1484894/third_party/WebKit/Source/core/testing/Internals.cpp
[delete] https://crrev.com/512536e0e8a47f4ba78613296cd9a8ce2d805b3d/third_party/WebKit/Source/core/testing/data/touch-action-blocking-handler.html
[delete] https://crrev.com/512536e0e8a47f4ba78613296cd9a8ce2d805b3d/third_party/WebKit/Source/core/testing/data/touch-action-regions.html

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 7 2017

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

commit 05d35a67a192ea687683dfcbe66ade866cbfcc98
Author: Robert Flack <flackr@chromium.org>
Date: Thu Sep 07 19:55:40 2017

Reland "Fix effective touch actions to come from hit test rects."

Patch set 1 previously landed as I4d160d64e895e270403f3bd826ac41b8231e4709

This patch records the effective touch actions from the objects and
layers which generate hit test rects.

We were previously recording the effective touch action from the layer
containing the hit test rects rather than the objects producing those
rects. This meant we did not record the correct touch actions.

Bug:  755594 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iff3eef38dea76b90e795989f9da1c5765611e4ce

TBR=dtapuska@chromium.org,xidachen@chromium.org

Change-Id: Iff3eef38dea76b90e795989f9da1c5765611e4ce
Reviewed-on: https://chromium-review.googlesource.com/655129
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500360}
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/frame/EventHandlerRegistry.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/LayoutText.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/api/LayoutItem.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/layout/svg/LayoutSVGModelObject.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinatorTest.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/paint/LayerHitTestRects.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/testing/Internals.cpp
[add] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/testing/data/touch-action-blocking-handler.html
[add] https://crrev.com/05d35a67a192ea687683dfcbe66ade866cbfcc98/third_party/WebKit/Source/core/testing/data/touch-action-regions.html

Sign in to add a comment