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

Issue 750765 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

iframe element doesn't properly respond to parent's pointer-events being toggled

Reported by robertf...@gmail.com, Jul 31 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

Steps to reproduce the problem:
minimal example in attached html file

1. create a div with an iframe inside of it and you should be able to scroll in the iframe at first
2. turn off pointer events on the div (this should in fact prevent you from scrolling in iframe)
3. turn back on pointer events on the div (you should be able to scroll in the iframe again but you can't)

What is the expected behavior?
once parent div's pointer-events are re-enabled you should be able to scroll in the iframe again.  this exact same html file works as expected in FireFox.

What went wrong?
see the attached html file.  works as expected in firefox, does not work in chrome.

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 59.0.3071.115  Channel: n/a
OS Version: OS X 10.12.6
Flash Version: 

weirdly if you have other custom event listeners that trigger inside the iframe then scrolling start working again
 
more descriptive example
iframe_pointer_events_bug.html
1.1 KB View Download
the bottom example sometimes works, sometimes doesn't.  also chrome seems to allow a bit of scrolling before realizing it shouldn't when you set pointer-events to none.  like the attribute is being lazily set or something.
Components: -Blink>CSS Blink>Scroll
There seem to be 4 issues here:

1. Scrolling not working with pointer-events auto. I am able to repro this but not consistently.

2. Scrolling not disabled with pointer-events none. This is one I discovered while playing with the test case. Again, I can repro this but not consistently.

3. Pointer-events of none does not disable scrolling at all in the first iframe in the example (which points to example.com) - I am able to consistently repro this

4. When pointer-events are none a small amount of scrolling is allowed iframe before it is disabled - I am able to consistently repro this

I am using chrome 59.0.3071.115 on Mac 10.12.6


The computed styles seem to be correct though even when the behavior is not, so I don't think that CSS is the right component here. Moving to Blink>Scroll
Labels: Needs-Milestone
Cc: petermayo@chromium.org
Labels: Hotlist-ThreadedRendering
petermayo@ please triage. I suspect this is composited scrolling is allowed for layers that have pointerevent on them but it probably shouldn't.

repros on Mac @ 62.... but not on linux.
Cc: smcgruer@chromium.org
It repros on high-DPI mode on Linux. Looks like we composite only the top iframe but not the bottom, and there is something wrong with composited scrolling in this case (as dtapuska@ notes).
Cc: -smcgruer@chromium.org -petermayo@chromium.org flackr@chromium.org hayleyferr@chromium.org
Components: -Blink>Scroll Internals>Compositing
Labels: -OS-Mac OS-All
Owner: xidac...@chromium.org
Status: Assigned (was: Unconfirmed)
This is likely not a regression issue, it has probably existed as long as we had composited wheel input.

We likely just need to add a bit on the layer for pointer-event none. Xida, could you or Hayley look at this? (I believe Hayley did a similar change recently for touch-action?)
Cc: xidac...@chromium.org
Owner: ----
Status: Available (was: Assigned)

Sign in to add a comment