Closed
Bug 1465828
Opened 6 years ago
Closed 1 year ago
Navigations in discarded tabs via tabs.update are undone when that tab is activated again
Categories
(WebExtensions :: Android, defect, P3)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 1583281
People
(Reporter: robwu, Unassigned)
References
(Blocks 2 open bugs)
Details
I attached the WebIDE debugger (F8) to a Firefox Beta for Android instance (Firefox 61, buildID 20180514150347), inspected the main process and switched the context to an extension (with the tabs permission so I can see the URL, e.g. uBlock). In the browser all tabs except for the last one were zombified/"discarded" (I guess that you can trigger this by causing memory pressure, e.g. by opening another app that uses lots of memory). browser.tabs.query({ discarded: true, }).then(tabs => console.log(tabs[0].id)); Then I triggered a navigation, e.g. browser.tabs.update(4, { url: 'https://example.com', }); I can see that the tab has navigated. However, when I query the tab info, then the tab is still in the "discarded" state: browser.tabs.get(4).then(console.log); // { ... discarded: true ..., url: "https://example.com/" ...} When I switch to the tab, the original URL is restored. What I expected is: - After navigating by tabs.update, tab.discarded should be false. - After tapping on the navigated tab, the tab should not be "restored", but stay at the changed location. The implementation of tabs.update calls nativeTab.browser.loadURI : https://searchfox.org/mozilla-central/rev/83a923ef7a3b95a516f240a6810c20664b1e0ac9/mobile/android/components/extensions/ext-tabs.js#306,318 The zombie restoration logic scattered over: - https://searchfox.org/mozilla-central/rev/83a923ef7a3b95a516f240a6810c20664b1e0ac9/mobile/android/chrome/content/browser.js#3922-3963 - https://searchfox.org/mozilla-central/rev/83a923ef7a3b95a516f240a6810c20664b1e0ac9/mobile/android/components/SessionStore.js#846-859,1462-1480 (Search for "pending" (including the quotes or __SS to find relevant code). It seems that the tab management implementation does not account for navigating a zombified tab.
Updated•6 years ago
|
Priority: -- → P2
Updated•6 years ago
|
Product: Toolkit → WebExtensions
Comment 1•6 years ago
|
||
Conversely, tabs.update() shouldn't be stomping over the session history of a discarded tab, though. In principle, the tab needs to be restored first before we can load a new URL the normal way, although a naive implementation would trigger an additional, unneeded load of the previously loaded URL, which isn't ideal. I wonder what Desktop does here?
Comment 2•5 years ago
|
||
It seems that the tab management implementation does not account for navigating a zombified tab.
If the platform doesn't support it, we should just throw an error.
Since this is android, lowering priority.
Priority: P2 → P3
Updated•2 years ago
|
Severity: normal → S3
Comment 3•2 years ago
|
||
The severity field for this bug is relatively low, S3. However, the bug has 11 votes.
:robwu, could you consider increasing the bug severity?
For more information, please visit auto_nag documentation.
Flags: needinfo?(rob)
Comment 4•2 years ago
|
||
The last needinfo from me was triggered in error by recent activity on the bug. I'm clearing the needinfo since this is a very old bug and I don't know if it's still relevant.
Flags: needinfo?(rob)
Comment 5•1 year ago
|
||
Since there is no support for discarded tabs, I am marking this bug as a dup of Bug 1583281.
You need to log in
before you can comment on or make changes to this bug.
Description
•