Closed Bug 1799216 Opened 2 years ago Closed 2 years ago

css transforms display bug

Categories

(Core :: Graphics: WebRender, defect)

Firefox 106
defect

Tracking

()

VERIFIED FIXED
108 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox106 --- wontfix
firefox107 --- wontfix
firefox108 --- verified

People

(Reporter: mail, Assigned: emilio)

References

(Regressed 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(3 files, 3 obsolete files)

Attached image firefox106bug.png β€”

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0

Steps to reproduce:

Here an example (many other sites are affected too) - see in this example the bottom 'bar' and compare it with any other browser:

https://krpano.com/tours/paris/

Actual results:

That gray/blue bar is rendered wrong, one part looks vertically stretched and so overlaps other elements and results in a wrong output.

The related html elements are css transformed.

The problem happens since Firefox 106.

Tested on Windows and Mac and with different device-pixels, the problem is everywhere the same.

Expected results:

Just compare with any other browser or see the attached screenshot.

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

2022-11-05T06:25:26.589000: DEBUG : Found commit message:
Bug 1661147 - When starting a new list, copy inputs from the stack as well. r=gfx-reviewers,bradwerth

Copying outputs with a null clip input is not sound if one of the other
items expand outside of our bounds, such as in the case of a blur
filter.

Status: UNCONFIRMED → NEW
Has STR: --- → yes
Component: CSS Parsing and Computation → Graphics: WebRender
Ever confirmed: true
Flags: needinfo?(emilio)
Regressed by: 1661147

Set release status flags based on info from the regressing bug 1661147

Attached file Somewhat reduced test-case. (obsolete) β€”

Somehow pointer-events affects the rendering here which is clearly bogus. Will look, thanks.

Attached file More reduced. (obsolete) β€”
Attachment #9302162 - Attachment is obsolete: true
Attached file Even more reduced. (obsolete) β€”

Okay I see what's going on I think. pointer-events: none causes us to not create a display item for the middle item at all, which causes us to ignore its clip, I believe.

Attachment #9302163 - Attachment is obsolete: true
Attached file Simpler frame tree. β€”

(Sorry for the spam)

Attachment #9302170 - Attachment is obsolete: true
Assignee: nobody → emilio
Flags: needinfo?(emilio)
Duplicate of this bug: 1796562

Bug 1661147 made us correctly inherit the clip chain. We do fix up the
scroll id etc before pushing a new ASR override etc, but we didn't fix
up the clip chain ID.

Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2d53a4acaad2
Keep clip chain id in sync when switching items that affect clip positioning. r=gfx-reviewers,gw
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/36837 for changes under testing/web-platform/tests

Great work! The quick problem analyzing, localizing and fixing was impressive. Thanks!

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 108 Branch

The patch landed in nightly and beta is affected.
:emilio, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox107 to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(emilio)

Comment on attachment 9302173 [details]
Bug 1799216 - Keep clip chain id in sync when switching items that affect clip positioning. r=#gfx-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: comment 0
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: comment 0
  • List of other uplifts needed: none
  • Risk to taking this patch: Medium
  • Why is the change risky/not risky? (and alternatives if risky): While not the lowest-risk-patch ever, it's well-scoped and this code-path is relatively well tested, so it might be worth uplifting.
  • String changes made/needed: none
  • Is Android affected?: Yes
Flags: needinfo?(emilio)
Attachment #9302173 - Flags: approval-mozilla-beta?
Flags: qe-verify+
Upstream PR merged by moz-wptsync-bot
QA Whiteboard: [qa-triaged]

Reproduced this issue on an affected Nightly build from 2022-11-04, on Win 10 and Ubuntu 21.04.
Verified as fixed on 108.0a1 (20221107212933) on Win 10, Ubuntu 21.04 and macOS 10.13.

Leaving the qe-verify+ flag until this gets verified in beta as well.

We are in 107 RC week, wontfix 106.

Comment on attachment 9302173 [details]
Bug 1799216 - Keep clip chain id in sync when switching items that affect clip positioning. r=#gfx-reviewers

Switching beta uplift request to release, 107 is now in RC.
Keeping on the radar for potential uplift later for a ride-along.

Attachment #9302173 - Flags: approval-mozilla-beta? → approval-mozilla-release?

Might want to slow down on the uplift, this is suspected of causing a perf regression, bug 1799800.

Regressions: 1799800

Comment on attachment 9302173 [details]
Bug 1799216 - Keep clip chain id in sync when switching items that affect clip positioning. r=#gfx-reviewers

Alright let's hold off.

Attachment #9302173 - Flags: approval-mozilla-release?
Regressions: 1800133

Closing this as Verified fixed and removing the qe+ flag.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: