Open Bug 1790860 Opened 3 years ago Updated 2 years ago

Firefox screws up if there are too many transform properties in use (hit-testing of preserve-3d items)

Categories

(Core :: Web Painting, defect, P3)

Firefox 91
defect

Tracking

()

Tracking Status
firefox-esr102 --- wontfix
firefox105 --- wontfix
firefox106 --- wontfix
firefox107 --- wontfix

People

(Reporter: kaesbertrichson, Unassigned)

References

(Regression)

Details

(Keywords: regression)

Attachments

(4 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.2 Chrome/83.0.4103.122 Safari/537.36

Steps to reproduce:

It seems that as soon as you are using too many transform properties, firefox does not display them properly.

Build Id:
20220811191823 Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0

Additional Builds and Platforms:
Doesn't occur on Chromium Version 105.0.5195.102 (Official Build) built on Debian 11.4
Doesn't occur on Falkon Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Falkon/3.1.0 Chrome/83.0.4103.122 Safari/537.36, QtWebEngine-Version 5.15.2
Doesn't occur on Konqueror Version 20.12.0, KDE Frameworks 5.78.0, Qt 5.15.2 (kompiliert gegen 5.15.2)

Steps to Reproduce:
https://stackoverflow.com/questions/73706765/firefox-screws-up-if-there-are-too-many-transformation-properties

Just use the two sample files from Stackoverlow (to compare) and try to flip through the book from front to back and then from back to front. The first version still works fine. But after a certain number of pages, Firefox fails to display the pages correctly. The first code of Stackoverflow is still working in all browsers, the example directly below is only not working in Firefox (although only one more page was added).

Below the first two examples I have added another example that uses a completely different code construction but where the same problem occurs. And this again only starting from a certain number of pages (and also again only in Firefox).

Actual results:

The pages are not displayed in a chronological order.

Expected results:

The pages should actually be displayed in a chronological order. Both when flipping forward and when flipping back.

The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Widget: Gtk
Product: Firefox → Core

Perhaps layout code but definitely not widget one.

Component: Widget: Gtk → Layout

(In reply to Martin Stránský [:stransky] (ni? me) from comment #2)

Perhaps layout code but definitely not widget one.

Did you really tested/reproduced the issue? Because that sounds like pure skepticism, and not that you've tried it yourself and witnessed the bug occurring only in Firefox. In my stackoverflow article are even 2 different layouts for testing.

Because in the last 3 days I have tested many different layouts that I have found on Codepen, Yotube or other sites and with all layouts the same problem occurred at a certain number of pages. In my Stackoverflow article both examples have a very different layout.

And it doesn't necessarily have to be related to the transform property, it could also be the perspective or the backface-visibility. But also the Z-index could be the cause.

I did a lot of research and testing before I wrote this bug report because I also thought the problem was with my layout. But after I have tested 8 or 10 different layouts and every time the (always the same) error occurred only with Firefox the issue must be with the browser.

Or can you explain what I need to change in my code to make it work in all browsers? Because the issue is only in Firefox, everything works fine in other browsers. Please test and reproduce the issue and then you will see that only FF displays the layout wrong (and that always only when more pages are added).

Thank you in advance for the effort and understanding and have a great day.

I mean internal Firefox component. Widget code is related to system integration, I doubt it's related.

But can you please attach a screencast of the issue?
https://fedoraproject.org/wiki/How_to_debug_Firefox_problems#Collect_information_for_a_bug_report
Thanks.

Flags: needinfo?(kaesbertrichson)

Ok, here is a screencast of the issue.

Flags: needinfo?(kaesbertrichson)

(In reply to Martin Stránský [:stransky] (ni? me) from comment #4)

I mean internal Firefox component. Widget code is related to system integration, I doubt it's related.

But can you please attach a screencast of the issue?
https://fedoraproject.org/wiki/How_to_debug_Firefox_problems#Collect_information_for_a_bug_report
Thanks.

Oh well, then I have misunderstood you, I am sorry! I thought you mean my layout...

Ok, here is a screencast of the issue.

Description of the screen capture and what can be seen:

Until second 11 you see the working version where the total number of pages is 12 (including cover and spine). From second 12 on, you see the problem version where it should have 14 pages (including cover and spine) but where Firefox displays the pages completely wrong.

I hope the problem is now detailed enough documented so that something can change in the near future. Have a great evening!

Attachment #9295166 - Attachment description: non-working test-case from reporter. → working test-case from reporter.

Ah, I see what's going on. This seems about which of the stacked transformed element we're targetting...

Status: UNCONFIRMED → NEW
Component: Layout → Panning and Zooming
Ever confirmed: true
Summary: Firefox screws up if there are too many transform properties in use → Firefox screws up if there are too many transform properties in use (hit-testing of preserve-3d items)
Attached file Minimal test-case.

Clicking inside the border should alert "0", it alerts "3" instead.

This reminds me strongly of bug 1738017 but there is a different regression range here.

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

Moving to Core:Web Painting based on the regressor bug. Setting P3:S3 since it's not a recent regression.

Severity: -- → S3
Component: Panning and Zooming → Web Painting
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: