Closed
Bug 1343090
Opened 8 years ago
Closed 4 years ago
Insert tabs' browser lazily into the document
Categories
(Firefox for Android Graveyard :: Session Restore, enhancement, P3)
Tracking
(Not tracked)
RESOLVED
INCOMPLETE
People
(Reporter: kmag, Unassigned)
References
Details
+++ This bug was initially created as a clone of Bug #1287330 +++
Comment 1•8 years ago
|
||
(In reply to Kris Maglione [:kmag] from comment #250)
> It's been one of my worst Fennec pain points lately...
Out of curiosity, in what way exactly?
Fennec already has infrastructure for creating lazily-loaded tabs, which is used for everything but the selected foreground tab when automatically restoring tabs on startup and also for freeing up memory under memory pressure.
From skimming over bug 1287330 and 906076 it seems that our implementation is a bit less sophisticated, though, since we simply swap in an "about:blank" browser and expect any other code to just deal with that, which is probably mostly the case give this behaviour has been around for a while now [1]. Any interesting piece of state that we want to preserve is stashed away in the session store data. There might still be some benefit in switching over to the new implementation, but I want to be sure you're aware that we already have something similar which needs to be taken into account.
[1] Although I think I've just noticed that our selectOrAddTab/getTabWithURL logic doesn't handle this case correctly.
OS: Unspecified → Android
Hardware: Unspecified → All
Updated•8 years ago
|
Reporter | ||
Comment 2•8 years ago
|
||
(In reply to Jan Henning [:JanH] from comment #1)
> (In reply to Kris Maglione [:kmag] from comment #250)
> > It's been one of my worst Fennec pain points lately...
>
> Out of curiosity, in what way exactly?
> Fennec already has infrastructure for creating lazily-loaded tabs, which is
> used for everything but the selected foreground tab when automatically
> restoring tabs on startup and also for freeing up memory under memory
> pressure.
We lazily load the actual tab content, but we still eagerly insert the
browser, and therefore eagerly create the initial about:blank docshell. For a
small number of tabs, and under light load, that doesn't make much difference,
but the more tabs you have, the more it adds up. For me, it often gets to the
point where it takes more than a minute to begin displaying the active tab
when I first open the browser.
Comment 3•8 years ago
|
||
Right - in that case it would indeed be nice to get this working for Fennec's "zombie" tabs as well.
Comment 4•8 years ago
|
||
Skimming some more through the history of this on Desktop, it seem that Fennec slept through the switch to TabStateCache, which would probably be required for this.
Comment 5•7 years ago
|
||
One further possible complication:
On Desktop, the whole UI is in XUL, so apart from the <browser>s for the content we also have <tab>s for displaying the tab bar. This means that the tab events can be dispatched on the actual XUL <tab>s (and all tabs can be watched via an event listener on the parent <tabs> element) and you don't have to care about what happens to the individual <browser>s.
Fennec on the other hand uses a native UI and therefore has only <browser>s, but no XUL-<tab>s (only plain tab JS objects, plus corresponding representations on the Java side). So instead, all tab events are dispatched on a tab's <browser>, which might a bit problematic for tabs with unlinked browsers.
Updated•7 years ago
|
Component: General → Session Restore
Priority: P2 → P3
Updated•7 years ago
|
Blocks: fastfennec
Comment 6•4 years ago
|
||
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → INCOMPLETE
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•