Open Bug 1906726 Opened 3 months ago Updated 2 days ago

Fenix pageload progress bar can take multiple times longer to complete than Chrome (e.g. 50 seconds vs 10 seconds)

Categories

(Core :: Performance, defect)

defect

Tracking

()

ASSIGNED
Performance Impact none

People

(Reporter: acreskey, Assigned: tchoh)

References

(Blocks 3 open bugs)

Details

(Whiteboard: [avocado sprint])

User Story

Added to high friction list because this appears to a cause of a recurring theme from from Google Play Store reviews: slow page loading, pages not loading 

e.g.
```
Felt Slowness
    Description: Users are reporting slow page loading, pages not loading, slow browsing speed, slow app responsiveness, and slow media.
```

Attachments

(5 files)

​​The pageload progress indicator in Fenix can drag on well beyond the point at which the content is loaded and rendered.
Compared to Chrome this can lead to a lower quality user experience as it appears that the page is still loading.

Steps to Reproduce:

To emphasize the impact, ensure you are on a slower network.
For example, the videos attached were made on a network with 3mbps throughput and ~300ms rtt latency.

Load a large top site (e.g. nytimes.com wsj.com etc)
Observe how long it takes for the page load progress bar to complete

Expected Results:

Pageload progress bar completes roughly when page is loaded

Actual Results:

In Fenix the indicator can stall and take up to 50seconds (as in the video)

In Chrome, same network, same site, I am seeing the progress bar complete in about 10 seconds.

System configuration:

Samsung A54

Fenix loading nytimes on slower network, part 1 of 2 due to file size restrictions.

Fenix loading nytimes on slower network, part 2 of 2 due to file size restrictions.

Attached video Chrome_nytimes.mov
Blocks: necko-perf

The pageload progress bar was a bit faster in this profile, but still about 27 seconds long

https://share.firefox.dev/3zwLSJ4

And a 36 second document load with nsHttp logs as markers
https://share.firefox.dev/4cRmNqK

A Chrome performance trace of the same site, same network is here

And another profiler in the chrome://tracing format is here

Not clear yet, but perhaps Chrome is completing the progress bar on DomContentLoaded?

As Markus pointed out, while the progress bar completed in the Chrome load (comment 6), but the load event had not yet fired.

In this Chrome trace we can see DCL firing just before 12 seconds but the load event not until much later, about 23 seconds.

The progress bar completes much closer to DCL, roughly at around 10-12 seconds.

In bug 1889771 we just increased the maximum parallel http connections on Android from 40 to 128.
We have data from CI and local tests that show (as expected) that one impact of the change is load time being decreased, sometimes by up to 40%.

We should re-test this with the 128 socket change landed.

Flags: needinfo?(acreskey)

(In reply to Andrew Creskey [:acreskey] from comment #9)

In bug 1889771 we just increased the maximum parallel http connections on Android from 40 to 128.
We have data from CI and local tests that show (as expected) that one impact of the change is load time being decreased, sometimes by up to 40%.

We should re-test this with the 128 socket change landed.

From local tests on nytimes.com, cnn.com, the slow progress bar is not improved with bug 1889771.

Flags: needinfo?(acreskey)

https://cnn.com in particular makes a very good test case.

On the same network, 3mbps throughput and ~300ms rtt latency:

Chrome has the loading progress bar complete in under 10 seconds.
In Fenix, it's about 1 minute or longer.

In this profile, resources continue to trickle in for about 90 seconds, at which point the loading indicator finally completes:
https://share.firefox.dev/3Lv96C0

Assignee: nobody → tchoh
Status: NEW → ASSIGNED
Blocks: 1894804
User Story: (updated)
See Also: → 1909562
Whiteboard: [avocado sprint]
Blocks: 1913418
No longer blocks: 1913418
Severity: -- → S4
Performance Impact: --- → none

In bug 1915490 and bug 1915186 we've standardized how we categorize and prioritize trackers between nightly/beta/release.

So retesting this one, but still seeing Chrome complete the progress bar within 10-20 seconds while in Fenix it drags on, sometimes indefinitely.
See video attachments.

Attached video chrome_cnn_3g_slow.mp4

Chrome loading https://www.cnn.com on a RogersInAbox "3g slow" throttled network.

The progress bar completes in about 18 seconds. (Note that the primary image does not even load).

Fenix nightly, 09/11/2024, loading https://www.cnn.com on the same RogersInAbox "3g-slow" configuration.

I had to trim the video to fit within Bugzilla file limits, but the progress doesn't actually complete even though all the visual content has has been loaded and displayed for quite some time.

I tried capturing profiles of the near-infinite progress bar, but when profiling so far I'm seeing it complete at about 34seconds, while the images are loaded at about 19 seconds. Not great, but this isn't the problematic scenario that I see in general, and in the videos.

https://share.firefox.dev/3ZfDWqu

I think good next steps on this one could be to find a scenario where multiple people can reproduce a large difference in progress bar times, Fenix to Chrome.
Perhaps https://www.cnn.com, current Fenix Nightly, with 3g-slow or 3g-fast is that scenario, but it's not clear.

With that determined, we can capture nsHttp:5 and related logs, as well as performance profiles, to understand what's happening.

See Also: → 1583222
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: