Erroneous CSS pointer-events bubbling
Reported by
willem.l...@gmail.com,
Mar 3 2018
|
||||||||||||||||
Issue descriptionChrome Version : 67.0.3360.1 OS Version : 10.0 URLs : https://stackoverflow.com/questions/48208468/chrome-bug-with-pointer-events-and-mouse-scroll : http://jsfiddle.net/yxf1v60x/2/embedded/result/ Other browsers tested: OS X Safari: FAIL Firefox: OK Chrome: FAIL Windows Firefox: OK IE/Edge: OK Chrome: FAIL What steps will reproduce the problem? 1. Open http://jsfiddle.net/yxf1v60x/2/embedded/result/ 2. Resize browser until the horizontal scrollbar appears. 3. Try to scroll the page with a mouse-wheel. What is the expected result? According to the pointer-events spec: If one of the element's children has pointer-events explicitly set to allow that child to be the target of mouse events, then any events targeting that child will pass through the parent as the event travels along the parent chain, and trigger event listeners on the parent as appropriate. https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events What happens instead of that? The page does not scroll because it seems the parent that has `pointer-events: none` does not listen for the scroll events of the child with `pointer-events: auto` --- UserAgentString: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3360.1 Safari/537.36
,
Mar 4 2018
,
Mar 4 2018
Here is a slightly different use case: https://jsfiddle.net/j5zksate/ In the OK browsers mentioned, the links become clickable once you scroll past the 'Overlay' section. Chrome does not scroll at all, but the links do seem to become clickable if the scrollTop of the sections within the article are forced out of view. It seems to be something to do with the overflow: hidden + overflow-y: auto, as shown here: - https://jsfiddle.net/j5zksate/1/ - https://jsfiddle.net/j5zksate/2/
,
Mar 5 2018
I can't scroll at all on Linux for either example, even uising the scrollbar. I'll bisect to see if this is recent.
,
Mar 5 2018
Regression range is this: https://chromium.googlesource.com/chromium/src/+log/04a322f25adf8b9cab272e985f44db9a01814450..34ca6f6990519850bd0831d0da74bf511d056290 Of which the one to blame seems to be this: https://chromium.googlesource.com/chromium/src/+/ebcfc3309fba892b25d84f943d26bbdab6d100ee "currentlyscrollinglayer cleared in scrollAnimatedBegin." Not clear why it breaks, but it does. That's Chroime 55 when it broke, so this must really be a rare case.
,
Mar 5 2018
FWIW in Windows the reported bug is reproducible here only 1) if site-per-process is disabled and I test the provided jsfiddle which use iframes 2) if I run the actual html/css in top document from a local file.
,
Mar 6 2018
,
Mar 6 2018
,
Mar 6 2018
,
Mar 15 2018
I don't think the regression is related to the suspected cl: https://chromium.googlesource.com/chromium/src/+/ebcfc3309fba892b25d84f943d26bbdab6d100ee Since it has three lines of code in layer_tree_host_impl.cc and the rest of the changes are comments or DCHECKS and that three lines of code are deleted in https://codereview.chromium.org/2486673008 later on. schenny@ please feel free to assign it back to me if you still think https://chromium.googlesource.com/chromium/src/+/ebcfc3309fba892b25d84f943d26bbdab6d100ee is the suspected cl.
,
Mar 16 2018
Able to reproduce this issue on reported version 67.0.3360.1, on latest canary 67.0.3371.0 using Windows , Linux and Mac. This issue is seen from M60.As per comment#10 bisected, issue is broken in M-51. Observations: Till 51.0.2686.0 able to scroll and click on links, but from 51.0.2687.0 unable to scroll. Good Build: 51.0.2686.0 Bad Build: 51.0.2687.0 You are probably looking for a change made after 382335 (known good), but no later than 382346 (first known bad). CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/6bebadddb399ad1c1f91592efed410040617e708..5840ac85a7c912d9ddb764007b6a9ec65a26ad22 Suspecting https://codereview.chromium.org/1776843003 from changelog. @ dtapuska: Please confirm the bug and help in re-assigning if it is not related to your change. As @dtapuska is OOO assigning to nzolghadr@ for further inputs on this.
,
Mar 19 2018
dtapuska@ this is not our pointer events. Do you know who owns the CSS property pointerevents?
,
May 24 2018
css pointerevents is essentially a hit-testing related feature so whoever owns hit-testing should look into this. So I suspect input-dev may be the right owner. In particular since according to comment #11 the regression appears to be related to enabling wheel gesture events. Historically, compositor hit-testing has not been taking pointer-events: none; into account (sunxd@ is working to fix that). Perhaps by enabling wheel gesture events causes this case to now hit compositor which causes this issue. nzolghadr@ can you confrim that this is fixed if you disable threaded-scrolling? If so then this is a compositor hit-testing issue and I think sunxd@ can be the right owner.
,
May 24 2018
This looks like the event is blocked by the parent. Currently cc does not have any concept of pointer-events: none, so cc's behaviour would allow any events targeted at pointer-events none elements. It seems to me this bug is still in blink side.
,
Dec 19
,
Dec 19
sunxd@, Did we even establish that an event is initiated but then blocked vs. the hit test never triggering any event? I just trying to understand where to route this. Event propagation is one team, hit testing another.
,
Dec 20
,
Dec 20
If pointer-events ever affect this scroll I think it denied the event at this line: https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/layout/layout_object.h?rcl=26e9592db563218aec7e8187e7a8c19a24349035&l=1738. But I'm not 100% sure.
,
Dec 27
,
Jan 7
The NextAction date has arrived: 2019-01-07
,
Jan 7
|
||||||||||||||||
►
Sign in to add a comment |
||||||||||||||||
Comment 1 by sindhu.chelamcherla@chromium.org
, Mar 4 2018