New issue
Advanced search Search tips

Issue 818444 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Erroneous CSS pointer-events bubbling

Reported by willem.l...@gmail.com, Mar 3 2018

Issue description

Chrome 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
 
Labels: Needs-Triage-M67
Components: Blink>HitTesting Blink>Input
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/
Labels: -Pri-3 OS-Linux Pri-2
Status: Untriaged (was: Unconfirmed)
I can't scroll at all on Linux for either example, even uising the scrollbar. I'll bisect to see if this is recent.
Components: -Blink>Input -Blink>HitTesting Internals>Compositing>Scroll
Owner: sahel@chromium.org
Status: Assigned (was: Untriaged)
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.

Comment 6 by woxxom@gmail.com, 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.

Comment 7 by yigu@chromium.org, Mar 6 2018

Labels: -Needs-Triage-M67

Comment 8 by yigu@chromium.org, Mar 6 2018

Labels: Hotlist-Input-Dev

Comment 9 by yigu@chromium.org, Mar 6 2018

Labels: Blink-Only

Comment 10 by sahel@chromium.org, Mar 15 2018

Cc: schenney@chromium.org sahel@chromium.org
Labels: Needs-Bisect
Owner: ----
Status: Available (was: Assigned)
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.
Cc: dtapu...@chromium.org
Labels: -Type-Bug -Needs-Bisect Triaged-ET M-67 Target-67 FoundIn-67 RegressedIn-51 hasbisect OS-Mac Type-Bug-Regression
Owner: nzolghadr@chromium.org
Status: Assigned (was: Available)
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.
818444 in M50.mp4
445 KB View Download
818444 Actual.mp4
410 KB View Download
dtapuska@ this is not our pointer events. Do you know who owns the CSS property pointerevents?
Cc: sunxd@chromium.org
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.

Comment 14 by sunxd@chromium.org, May 24 2018

Cc: xidac...@chromium.org
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.
Components: -Internals>Compositing>Scroll Blink>HitTesting
Status: Untriaged (was: Assigned)
Components: Blink>Input
Labels: Needs-Feedback
NextAction: 2019-01-07
Owner: ----
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.
Cc: eirage@chromium.org
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.
Status: Available (was: Untriaged)
The NextAction date has arrived: 2019-01-07
NextAction: ----

Sign in to add a comment