Open Bug 1874848 Opened 9 months ago Updated 8 months ago

Text rendering issues in Firefox 121 on Android

Categories

(Core :: Graphics: Text, defect)

Unspecified
Android
defect

Tracking

()

UNCONFIRMED

People

(Reporter: xerd2bjwh, Unassigned)

Details

Attachments

(3 files)

On many webpages, white bars are covering the text.
Example: On https://tvtropes.org/pmwiki/pmwiki.php/Main/ForgottenTrope, there is a white block in the second paragraph, hiding a part starting with the second half of the second line and two lines more.
The text becomes visible when selecting it or zooming in.

Device affected: Samsung Galaxy J4+ with an Adreno 308 GPU.

On Firefox Beta for Android, I can make the bug go away by setting gfx.webrender.software to true in about:config.

This looks exactly like the part of Bug 1843749 I was seeing on this device until it was fixed in 116.

The severity field is not set for this bug.
:lsalzman, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(lsalzman)

Jamie, ideas?

Severity: -- → S3
Flags: needinfo?(lsalzman) → needinfo?(jnicol)

Thanks for the bug report @xerd2bjwh !

Did this only just start in version 121? If so, it would be super helpful if you could run mozregression to find out what change has caused the bug.

First, plug your phone in to your computer and ensure USB debugging is enabled. You can install a GUI version from a link on that page, then launch the application. Click the scissor icon to start a bisection, select "gve" as the application then continue. Continue again on the next page ("profile selection"). Then on the "build selection" screen change the "date" dropdowns to select "release", and enter 120 as the last known good build and 121 as the first known bad build. Then click done. This will download and run a series of versions of firefox. For each one you select whether it is good or bad, and eventually it will provide a link telling you what changes caused the bug.

Or alternatively if you're confident using the command line you can install mozregression by running

pip install mozregression

Then run it with

mozregression --app gve --good 120 --bad 121

Let me know if you need any help with that! Thanks!

Flags: needinfo?(jnicol) → needinfo?(xerd2bjwh)

(In reply to Jamie Nicol [:jnicol] from comment #3)

Thanks for the bug report @xerd2bjwh !

You're welcome. Just trying to keep my favourite browser running.

Did this only just start in version 121? If so, it would be super helpful if you could run mozregression to find out what change has caused the bug.

I'm not sure. The problem was terrible in 115 and, as far as I can tell, completely fixed in 116. Only recently I've noticed it come up again more and more - by now even on this page.

First, plug your phone in to your computer and ensure USB debugging is enabled. You can install a GUI version from a link on that page, then launch the application. Click the scissor icon to start a bisection, select "gve" as the application then continue. Continue again on the next page ("profile selection"). Then on the "build selection" screen change the "date" dropdowns to select "release", and enter 120 as the last known good build and 121 as the first known bad build. Then click done. This will download and run a series of versions of firefox. For each one you select whether it is good or bad, and eventually it will provide a link telling you what changes caused the bug.

Tried it. This is stopped pretty quickly at the first "Next" with the message: "gve is not runnable: [WinError 2] The system cannot find the specified file: adb is not executable."

Or alternatively if you're confident using the command line you can install mozregression by running

pip install mozregression

Then run it with

mozregression --app gve --good 120 --bad 121

I tried this one too. Fortunately, I dabbled in Python a few months ago, so I had an idea what pip and how to start it on a Windows machine. Unfortunately, after installing mozregression, trying to start it results in an error: 'mozregression' is a package and cannot be directly executed

I'd really like to help, but I'm a bit out of my depth here. Do you have any idea what I'm doing wrong?

Flags: needinfo?(xerd2bjwh)

I finally figured out how to get mozregression-gui running with my phone. The documentation should mention you need adb.exe e.g. from the Android Platform Tools downloaded and included in the PATH variable.

Next I found out the problem isn't reproducible with application "gve", only with "fenix" with build architecture "armeabi-v7a".

Also, my original example is a bad one, as that does only work with uBlock, which apparently alters the page to the right degree to trigger the bug there. But I already have a better one: this page right here, https://bugzilla.mozilla.org/show_bug.cgi?id=1874848, where the bug makes part of comment #3 disappear with no add-on installed.

Now for the worst part: This is actually still Bug 1843749, apparently caused by a change on 2023-05-10, which wasn't fully healed by the fix of 2023-07-25.

This page is rendered perfectly on my device with the build of 2023-05-09, is very broken starting with 2023-05-10, almost fixed 2023-07-25 - and still the same with 122.1.0 of 2024-02-05, the current version.

So, it's not that part of the bug is back - part of it never left.

What now?

Apologies for the late reply, and thank you for figuring out how to use mozregression!! That's very useful information

Could you please navigate to about:support, click "copy text to clipboard", and attach the contents to this bug. Thanks!

Flags: needinfo?(xerd2bjwh)
Flags: needinfo?(xerd2bjwh)

It doesn't make sense that this is still bug 1843749, as the fix for that should mean that the patch from bug 1828248 has no effect on your device. I wonder if another bug was introduced sometime between 2023-05-10 and 2023-07-25, which wasn't apparent because that was the period in which it was "very broken".

Could you please attach some photos of the "very broken" and "almost fixed" states?

Flags: needinfo?(xerd2bjwh)
Attached image VeryBroken.jpg
Flags: needinfo?(xerd2bjwh)

(In reply to Jamie Nicol [:jnicol] from comment #8)

It doesn't make sense that this is still bug 1843749, as the fix for that should mean that the patch from bug 1828248 has no effect on your device. I wonder if another bug was introduced sometime between 2023-05-10 and 2023-07-25, which wasn't apparent because that was the period in which it was "very broken".

Could you please attach some photos of the "very broken" and "almost fixed" states?

Images attached. As I understand, the changes of 2023-05-10 brought up multiple issues for devices with Adreno GPUs, especially the 308, and the fixes of 2023-07-25 tackled them in different ways, so my guess was there is still one more issue which is not covered by the fixes. I may very well be wrong there. The problem looks very much like that of the "very broken" state, only less of it. Setting gfx.webrender.software to true helps for both, so if not the same thing, it could be a very similar change.

As far as I can see bug 1828248 caused a single issue only on the Adreno 308. It was a simple patch which just added two function calls, which it turned out were buggy on that GPU. Bug 1843749 made it so we don't call those functions on that GPU. I cannot see how it can be related to bug 1828248. This must be an unrelated bug.

Are you sure you cannot reproduce on a version of fenix prior to 2023-05-10? I have a different device but with the same GPU, and I can reproduce something similar to your "almost fixed" screenshot in the 2021-12-21 build (which is as far back as mozregression will install).

Flags: needinfo?(xerd2bjwh)

I've installed 2021-12-21 on my device and yes, I see similar phenomenons there too. The last part of comment #4 blinks in and out while scrolling, a little part of comment #8 is missing until I zoom in. I haven't seen those things before, but the problematic zones change with the page growing. In 122.1.0 I have currently different, smaller problems than in 2021-12-21. Not sure if these two issues are related, but probably you're right and there's more to it than the bugs concerning QCOM_tiled_rendering.

What I do see in both versions is some flicker when zooming in and out at places that don't disappear when I stop changing the zoom.

Setting gfx.webrender.software to true makes all of that problems go away, making everything look more stable. There isn't any chance to add this switch to the release configuration, is there?

Are there more specific switches I could try to see whether the problems disappear? Or anything else I could do to narrow down the source?

Flags: needinfo?(xerd2bjwh)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: