
How can I restore my tabs from that file? However, I cannot find a way to restore the tabs from that file as Firefox just keeps ignoring any changes that I make to the files name and folder contents. While none of the files in that folder are intelligible, I can see from text snippets that a file called "upgrade.jsonlz4-20191202093317" is the only one that potentially holds a backup of my tabs. Exploring the forum for help, I found that menu "Help" > "Troubleshooting Information" will lead to a page on which one can find the profile folder, which in turn contains a folder called "sessionstore-backup," in which Firefox keeps a history of previous sessions' tabs. Check that formdate via getBrowserState doesn't require JSON.For reasons unbeknownst to me*, Firefox started without restoring the tabs from my previous session. Make sure there are nodes in the tree on about:sessionrestore Use a stringified state as formdata when opening about:sessionrestore Check that there are no backslashes in the current state ::: +1,4 +/* Any copyright is dedicated to the Public Domain.Įvery test should have a summary like this. > + browser_467409-backsplashplosion.js \ Ex: "I just saw Monsters Inc., Sully is hugmongous!" gous adjective - portmanteau of huggable and humungous.> + // instances causing hugmongous sessionstore.js files. > + // for about:sessionrestore we saved the field as JSON to avoid nested Nested sessions are still going to hurt though since we'll be stringifying larger JS objects on a regular basis as well as taking more memory to keep the JS object alive as opposed to a string (at least I assume that will be more memory)Ĭomment on attachment 558970 We might be able to let the nested about:sessionrestore's keep nesting (for now). That's a good idea to at least tackle the largest issue of file size. You're suggesting we special case that form field for about:sessionrestore and not save it as a string, but instead JSON.parse that value before we save it to sessionstore.js.

To clarify (since I confused myself reading that, too much JSON & string). By storing the previous session store as a JSON object, we could change > This leads to exponential growth (in my file, over 90% of it is the character > biggest problem is all the '\' escaping necessary to store JSON inside JSON. > As a simple alternative, could we not store the previous JSON as a string? The If this is adopted, I'd suggest warning the user about the potential loss before quitting Firefox, and offering to abort or preserve the session. deciding to reboot before reloading the hundreds (literally) of tabs in the restored session). It's something I know that I've done in the past (e.g. That's a significant change in behaviour - I'd be most "disappointed" if I were to lose an open about:sessionrestore without warning if I'd decided (for whatever reason) to close Firefox before fully restoring the session.

> just say we're not going to save about:sessionrestore. Not sure if we're going to keep it as a pref or
#Firefox restore from sessionrestore file Patch#
> The patch as is has a pref so that people like you can control the depth of > unless it is restored prior to quitting. > Your previous session (anything in about:sessionrestore) will not be saved > Your current session (open tabs, recently closed windows/tabs) will be saved. > meaning the *current* session will not be saved? The downside of this is that if a condition arises that crashes Firefox on startup, you have to restart it 6 times before you get the "Restore Sessions" window, but that's a price I'm willing to pay to prevent this slowdown issue. Because this avoids opening the "Restore Sessions" window after crashes, sessionstore.js doesn't get "bulked up". This means that sessionstore.js will be used to automatically restore windows/tabs after a crash without opening the "Restore Sessions" window, up to a maximum of 6 times in a 6-hour window, rather than after the 2nd crash. To reduce the frequency with which the problem arises, increase _resumed_crashes to a larger value, say 6 (default 1). This causes any recently-closed windows/tabs to be removed from sessionstore.js whilst preserving windows/tabs that are currently open.Ģ. To flush an existing sessionstore.js of unwanted closed sessions, use about:config to temporarily set _tabs_undo and _windows_undo to zero, and then back to their original values. No-one has mentioned possible workarounds (other than deleting sessionstore.js), so here are a couple of suggestions:ġ.

I have also been bitten by this issue, which can cause a very noticable slowdown.
