Mousewheel input stops working within iframes using CSS perspective with certain matrix3D values
Categories
(Core :: Panning and Zooming, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr102 | --- | affected |
firefox105 | --- | wontfix |
firefox106 | --- | wontfix |
firefox107 | --- | wontfix |
firefox108 | --- | fix-optional |
People
(Reporter: gambitgamesllc, Unassigned)
References
(Regression)
Details
(Keywords: regression)
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Steps to reproduce:
Visit the reproducible codepen (https://codepen.io/gambitgames/pen/poVWjGd).
To create from scratch
- Create a parent div and give it a style with perspective of 1000
- Create a child iframe and style it to have a width & height value
- Add a style to the iframe of transform: matrix3D of
(1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, -1000, .001) - Give the iframe a url that contains a scrollbar
Actual results:
Mousewheel input works on initial hover over the iframe, but leaving the iframe element and reentering it causes the mousewheel to no longer function within the iframe.
Does not occur on Chromium based browsers or Safari in our testing.
Expected results:
Mousewheel input should work even after leaving iframe and returning with mouse input focus.
Reporter | ||
Updated•2 years ago
|
Comment 1•2 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::CSS Parsing and Computation' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
Updated•2 years ago
|
Comment 2•2 years ago
|
||
Interestingly, if your window is sized so that the outer iframe (the one containing the testcase that does not have transform) is scrollable and test in a older build where you can scroll the inner iframe then the scroll hand off seems to be reversed. The outer iframe scrolls first and then the inner when you reach the end of the outer.
Updated•2 years ago
|
Updated•2 years ago
|
Comment 4•2 years ago
|
||
"identity"
[ 1.000000 0.000000 0.000000 0.000000 ] [ 0.000000 1.000000 0.000000 0.000000 ] [ -0.005402 -0.015259 0.999939 -0.000000 ] [ -10.937500 -30.500000 -0.125000 0.999939 ]
matrix
[ 1.000000 0.000000 0.000000 0.000000 ] [ 0.000000 1.000000 0.000000 0.000000 ] [ 250.368332 199.993469 1000.953247 0.499977 ] [ 499456.750000 398525.375000 1999906.500000 999.953247 ]
inverse
[ 1.000000 0.000000 0.000000 0.000000 ] [ 0.000000 1.000000 0.000000 0.000000 ] [ -0.639986 -0.730826 1.000078 -0.000500 ] [ 780.481567 1063.076904 -2000.156494 1.001078 ]
Updated•2 years ago
|
Comment 5•2 years ago
|
||
(In reply to gambitgamesllc from comment #0)
[...]
Actual results:Mousewheel input works on initial hover over the iframe, but leaving the iframe element and reentering it causes the mousewheel to no longer function within the iframe.
Does not occur on Chromium based browsers or Safari in our testing.
Expected results:
Mousewheel input should work even after leaving iframe and returning with mouse input focus.
Thanks for reporting the issue! Sorry for the delay in triaging the bug.
(In reply to Timothy Nikkel (:tnikkel) from comment #2)
Interestingly, if your window is sized so that the outer iframe (the one containing the testcase that does not have transform) is scrollable and test in a older build where you can scroll the inner iframe then the scroll hand off seems to be reversed. The outer iframe scrolls first and then the inner when you reach the end of the outer.
Setting to S3 for now since I struggled a bit to reproduce. Is this easy for you to reproduce Timothy? Do you agree that this should be an S3? I don't fully grok what is going on here, so if possible I plan to bring it up in the APZ meeting this week.
Comment 6•2 years ago
|
||
S3 seems appropriate. It's already on the meeting notes.
Updated•2 years ago
|
Comment 8•2 years ago
|
||
Some info on matrix inversion and numerical accuracy https://gregorygundersen.com/blog/2020/12/09/matrix-inversion/
Updated•2 years ago
|
Updated•2 years ago
|
Updated•6 months ago
|
Description
•