Gesture events (click etc.) don't work on webcomponent buttons with 2+ transform (matrix3d) parents
Reported by
stephend...@gmail.com,
Apr 13 2018
|
||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3394.0 Safari/537.36 Steps to reproduce the problem: 1. Navigate to: https://sdw.st/lib/cmpbug.html 2. Hover or click on the 'next image' chevron on the right middle. 3. What is the expected behavior? Should turn brighter white on hover and go to next image on click. What went wrong? No input events reach the webcomponent or any children or parents. Events bubble to body instead. Did this work before? Yes 65.0.3318.2 Chrome version: 67.0.3394.0 Channel: stable OS Version: OS X 10.13.4 Flash Version: Tracked this down and found a fix, reversing a single line change committed on Feb. 11: Buttons in a div (and apparently all gesture events) don't work when multiple parent divs have CSS transform (translate, matrix3d) properties. May also require use of webcomponents (Polymer 2.x) as a manual minimal example seemed to still work. We also have a canvas with a complicated WebGL instance as an earlier sibling element with lower z-index, but that doesn't seem to be important. First bad version: 65.0.3319.0, about Feb. 11, 2018 Problem version patches for that version: https://chromium.googlesource.com/chromium/src/+log/58d68fdf783d7edde1c82a642e037464861f2787..83ed536e54e76adc0278a7c02046a68d31a975a7 Problem patch: https://chromium.googlesource.com/chromium/src/+/83ed536e54e76adc0278a7c02046a68d31a975a7%5E%21/#F1 This, applied to chromium (i.e. blink) head, fixes the problem: diff --git a/third_party/blink/renderer/core/paint/paint_layer.cc b/third_party/blink/renderer/core/paint/paint_layer.cc index c71636c1530b..c30293db4a25 100644 --- a/third_party/blink/renderer/core/paint/paint_layer.cc +++ b/third_party/blink/renderer/core/paint/paint_layer.cc @@ -1939,7 +1939,7 @@ PaintLayer* PaintLayer::HitTestLayer( // Make sure the parent's clip rects have been calculated. if (Parent()) { ClipRect clip_rect; - Clipper(PaintLayer::kUseGeometryMapper) + Clipper(PaintLayer::kDoNotUseGeometryMapper) .CalculateBackgroundClipRect( ClipRectsContext(root_layer,
,
Apr 14 2018
More reduced testcase attached. The bug is related to contain:paint on one of the elements (<demo-slide-show> in the original testcase).
,
Apr 14 2018
There is a simple fix to this, working on it now.
,
Apr 14 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f068aac65c4bec64dac4707bba14097ae1cf7cc7 commit f068aac65c4bec64dac4707bba14097ae1cf7cc7 Author: Chris Harrelson <chrishtr@chromium.org> Date: Sat Apr 14 20:21:10 2018 [GM] Background clip rects should not include self-clip of layer_. The non-GeometryMapper code path was already implemented in this way. Bug:832870 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: If85f93113b737a749658c274c6d6ab9afa408362 Reviewed-on: https://chromium-review.googlesource.com/1013399 Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#550903} [modify] https://crrev.com/f068aac65c4bec64dac4707bba14097ae1cf7cc7/third_party/blink/renderer/core/paint/paint_layer_clipper.cc [modify] https://crrev.com/f068aac65c4bec64dac4707bba14097ae1cf7cc7/third_party/blink/renderer/core/paint/paint_layer_clipper.h [modify] https://crrev.com/f068aac65c4bec64dac4707bba14097ae1cf7cc7/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
,
Apr 15 2018
,
Apr 16 2018
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
,
Apr 16 2018
Pls merge your change to M67 branch 3396 by 4:00 PM PT todya, Monday (04/16/18) so we can pick it up for next M67 dev release. Thank you.
,
Apr 16 2018
chrishtr@ is on vacation this week. wangxianzhu@, could you pls merge cl listed at #4 to M67 branch 3396?
,
Apr 16 2018
,
Apr 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/242d4fd410f24029dbe0e09e49a2f63a782f53df commit 242d4fd410f24029dbe0e09e49a2f63a782f53df Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Mon Apr 16 23:26:16 2018 [GM] Background clip rects should not include self-clip of layer_. The non-GeometryMapper code path was already implemented in this way. Bug:832870 TBR=chrishtr@chromium.org (cherry picked from commit f068aac65c4bec64dac4707bba14097ae1cf7cc7) Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: If85f93113b737a749658c274c6d6ab9afa408362 Reviewed-on: https://chromium-review.googlesource.com/1013399 Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#550903} Reviewed-on: https://chromium-review.googlesource.com/1014604 Cr-Commit-Position: refs/branch-heads/3396@{#31} Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428} [modify] https://crrev.com/242d4fd410f24029dbe0e09e49a2f63a782f53df/third_party/blink/renderer/core/paint/paint_layer_clipper.cc [modify] https://crrev.com/242d4fd410f24029dbe0e09e49a2f63a782f53df/third_party/blink/renderer/core/paint/paint_layer_clipper.h [modify] https://crrev.com/242d4fd410f24029dbe0e09e49a2f63a782f53df/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
,
Apr 16 2018
,
Apr 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f068aac65c4bec64dac4707bba14097ae1cf7cc7 commit f068aac65c4bec64dac4707bba14097ae1cf7cc7 Author: Chris Harrelson <chrishtr@chromium.org> Date: Sat Apr 14 20:21:10 2018 [GM] Background clip rects should not include self-clip of layer_. The non-GeometryMapper code path was already implemented in this way. Bug:832870 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: If85f93113b737a749658c274c6d6ab9afa408362 Reviewed-on: https://chromium-review.googlesource.com/1013399 Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#550903} [modify] https://crrev.com/f068aac65c4bec64dac4707bba14097ae1cf7cc7/third_party/blink/renderer/core/paint/paint_layer_clipper.cc [modify] https://crrev.com/f068aac65c4bec64dac4707bba14097ae1cf7cc7/third_party/blink/renderer/core/paint/paint_layer_clipper.h [modify] https://crrev.com/f068aac65c4bec64dac4707bba14097ae1cf7cc7/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by chrishtr@chromium.org
, Apr 13 2018Labels: -Pri-2 Pri-1
Owner: chrishtr@chromium.org
Status: Assigned (was: Unconfirmed)