Do not terminate a wheel transaction when scrolling over an out of process iframe - scroll wheel
Categories
(Core :: Panning and Zooming, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox130 | --- | fixed |
People
(Reporter: dlrobertson, Assigned: dlrobertson)
References
Details
(Whiteboard: [apz-wheelevents] )
Attachments
(1 file)
Bug 1863194 will fix the case where we scroll over an iframe and will add a test for scrolling over an out of process iframe. Ensure that the wheel transaction is still used when scrolling over an out of process iframe.
Updated•11 months ago
|
Assignee | ||
Updated•11 months ago
|
Comment 1•11 months ago
|
||
Adding to diagnosis backlog as discussed during our meeting.
Comment 2•10 months ago
|
||
I would say this is similar to bug 1882168, we deliver wheel events into the out of process iframe. Chrome doesn't deliver wheel events in the test case in bug bug 1863194 comment 6.
Comment 3•10 months ago
|
||
The severity field is not set for this bug.
:botond, could you have a look please?
For more information, please visit BugBot documentation.
Assignee | ||
Comment 4•10 months ago
|
||
Like the parent bug, I think this is a S3/P3.
Assignee | ||
Updated•10 months ago
|
Assignee | ||
Comment 5•9 months ago
|
||
Problem
Currently, the wheel event transaction is stored as a static variable here. If the static variable is non-null, a transaction is present, and the stored event target will be used for any wheel events we need to fire. This doesn't work for cases where the topmost-event-target is in an out-of-process iframe (e.g. the map seen at https://agriculture.canada.ca/en/agricultural-production/weather/canadian-drought-monitor).
Possible Solution
In order to determine the correct wheel transaction for an out-of-process iframe I think we'd need to determine that a couple things. The wheel event transaction target could no longer be a static variable owned by the WheelTransaction
class, or maybe each BrowserParent
should own a WheelTransaction
. I think this would need to live in the BrowserParent
. Similar to sFocus, we could maintain a static variable in BrowserParent
, that we update from APZ when wheel events are handled by APZ.
Assignee | ||
Comment 6•8 months ago
|
||
Ensure that weel events are sent to the content process for the layers
id of the current APZ wheel transaction. The corresponding content
process should also have a content side wheel transaction that will
ensure that content that is scrolled over cannot halt a user scroll with
preventDefault on a wheel event listener.
Updated•8 months ago
|
Comment 7•8 months ago
|
||
I filed bug 1901337 for what looks like the same problem with trackpad scrolling (thanks Alice0775 White for linking the bug). I tested the current patch using the bug 1901337 test case and the problem was still reproducible with the trackpad. I couldn't reproduce the problem with the mouse wheel with the patch though.
Assignee | ||
Updated•8 months ago
|
Comment 10•8 months ago
|
||
Backed out for causing build bustages in InputBlockState.h.
- Backout link
- Push with failures
- Failure Log
- Failure line: /builds/worker/checkouts/gecko/gfx/layers/apz/src/InputBlockState.h(277,60): error: member access into incomplete type 'const AsyncPanZoomController'
Assignee | ||
Comment 11•8 months ago
|
||
Posted the update to fix the backout reason
Comment 12•7 months ago
|
||
Comment 13•7 months ago
|
||
bugherder |
Description
•