Open Bug 1792447 Opened 2 years ago Updated 2 years ago

Mousewheel input stops working within iframes using CSS perspective with certain matrix3D values

Categories

(Core :: Panning and Zooming, defect)

Firefox 105
defect

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.

Summary: Mousewheel input stops working within iframes using CSS perspective with matrix3D values → Mousewheel input stops working within iframes using CSS perspective with certain matrix3D values

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.

Component: Untriaged → CSS Parsing and Computation
Product: Firefox → Core
Component: CSS Parsing and Computation → Panning and Zooming

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.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Regressed by: CVE-2022-36319

"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 ]

(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.

Severity: -- → S3
Flags: needinfo?(tnikkel)

S3 seems appropriate. It's already on the meeting notes.

Flags: needinfo?(tnikkel)

Some info on matrix inversion and numerical accuracy https://gregorygundersen.com/blog/2020/12/09/matrix-inversion/

You need to log in before you can comment on or make changes to this bug.