Closed Bug 1563171 Opened 1 year ago Closed 1 year ago

Convert content-sessionStore to C++ - force tabState flush cannot be finished when doing window.close

Categories

(Firefox :: Session Restore, task, P2)

Desktop
All
task

Tracking

()

RESOLVED FIXED
Firefox 70
Fission Milestone M4
Tracking Status
firefox70 --- fixed

People

(Reporter: alchen, Assigned: alchen)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

In Bug 1549973, we introduce a way to do the final tabState flush before closing the tab.
It can work successfully on the normal case.

However, we cannot complete the final flush when doing "await BrowserTestUtils.closeWindow(win);".
https://searchfox.org/mozilla-central/rev/8a990595ce6d5ed07ace2d4d5d86cc69aec90bde/browser/components/sessionstore/test/browser_broadcast.js#54

From the investigation, it seems that BrowserChild have sent the finsh flush by "SendSessionStoreUpdate()". However, BrowserParent cannot receive this IPC call.

Assignee: nobody → alchen
Blocks: 1549975
Status: NEW → ASSIGNED
Depends on: 1549973
Priority: -- → P2

Update the investigation,
If we just close the tab, the mechanism works correctly.
However, if the tab is closed by window.close(), we cannot finish the final TabState update.
The reason is we cannot get xulBrowserWindow at this time.
https://searchfox.org/mozilla-central/rev/11712bd3ce7454923e5931fa92eaf9c01ef35a0a/dom/ipc/BrowserParent.cpp#2638

Blocks: 1564412

Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/autoland/rev/10986407e229
Move the sessionStore related functions from nsIXULBrowserWindow.idl r=peterv

Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 70
Regressions: 1567057
Fission Milestone: --- → M4
You need to log in before you can comment on or make changes to this bug.