"Restore Session" page after a crash is not responding, how can I get it to reset?
My computer crashed today while I was using several tabs on both IE and FF. I'm not sure what caused the crash, but everything is working fine except Firefox. Now every time I try to restart FF, it starts by attempting to go to about:sessionrestore, then goes to "Not Responding". If I'm lucky, it advances on its own to the page trying to "Restore Session" - but it again goes gray if I try to click anything - then stays unresponsive indefinitely (I left it for about an hour and came back to the same thing). If I force close, the same thing happens again. I have the spinning circle, and I'm unable to open or close any tabs. Right clicking does nothing either.
I uninstalled and re-installed FF, but it's still doing the same thing. I have no idea what to do. My open tabs were Yahoo mail, a forum, and Pandora.
If I open Task Manager, I can see that it shoots up to 100% of disk space being used when FF is open. And now hhhalf my screen is black. It's as though FF is what caused the crash to begin with
And now I've lost half my screen, so I apologize for any typos!. This seems really bad.
Thanks for any help you can offer.
All Replies (20)
Could you try starting Firefox up with a blank page? I'm not sure whether that will bypass the crash recovery, but it's worth a try.
Use the Windows "Run" dialog, which you can call up using either:
- Windows key + r
- icon on the lower part of the Start page with all the programs, possibly in the Accessories category
In the run dialog, type or paste
firefox.exe "about:blank"
and press Enter to run that.
Can you get a blank a page?
Thanks for your quick response!
I am able to get a new blank tab following your directions above, but the original tab trying to restore me is still there too, and it then freezes them both up.
Was Firefox completely closed when you tried it?
If that doesn't work, you may need to remove the sessionstore.js file which Firefox is using to restore your session. Here is where you get to that:
In the address bar of a Windows Explorer window, or again in the Run dialog, type or paste the following and press Enter:
%APPDATA%\Mozilla\Firefox\Profiles
Usually there's just one folder here, so double-click into that. If there are multiple folders, double-click into the most recently used one.
When Firefox exits, a file named sessionstore.js should be created here.
If you find that, rename it to sessionstore.old.
If you don't find it, double-click into the sessionstore-backups folder and look for recovery.js and recovery.bak. Rename recovery.js to recovery.old, and delete recovery.bak.
The next time Firefox starts up, it should not try to restore your previous session. And then hopefully things will get back to normal...
Yes, it was completely closed. It's nearly impossible to use any program on the computer when it's open - it even causes task manager to become unresponsive - and it's a beast to close back down.
Within the folder, I have a sessionstore.bak and sessionstore.bak-20140923175406. There is also a sessionCheckpoints.json with today's date (even though I did not visit Checkpoints today) but no sessionstore.js
There is also a folder - sessionstore-backups, and within that I have the following: previous recovery.bak upgrade and a ton of upgrade.js with different numbers behind them, but none for today's date
Are any of these what I need? Do I still delete recovery.bak within this second folder even though I don't have a recovery.js to change the title of?
Just to confirm, does your Firefox hide the .js extension on previous.js and the various upgrade files? In that case, you would be looking for a file named recovery with a type of JScript to rename to recovery.old, and similarly with any sessionstore file of type JScript.
Or maybe it's easiest to turn off the Windows feature of hiding certain file extensions. This article has the steps: http://windows.microsoft.com/en-us/windows/show-hide-file-name-extensions
Thank you - yes it was hiding some info, I followed the steps in that article, and now within the sessionstore-backups folder I have: previous.js recovery.bac recovery.js and all the upgrade.js's
So I will change recovery.js to recovery.old, delete recovery.bac - and report back. :)
Hmm, no it's still trying to open about:sessionrestore and then freezing up. I also retried the blank page as you suggested above, with the same result.
Do I need to restart my computer? I restarted it earlier today after the problems started, but not this evening.
And there's no sessionstore.js at the main level, either?
There must be another file I'm forgetting about. Hopefully someone else will remember what it is.
No, just the two bak files at the main level.
Thank you so much for your help to this point, I really appreciate it. It is late here, so if no one else pops in shortly, I will try again tomorrow. :)
There IS a folder titled Crashes, and within it:
store.json.mozlz4
and it shows todays date, but I have no clue if that's anything, just throwing it out there!
Alright, I'm back online and ready to try again if anyone's free. :)
Warning Unresponsive Script Script: chrome://global/content/bindings/popup.xml:255
If I hit debug, this is the text - I have left it open in case there's anything that can be done.
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
var gStateObject; var gTreeData;
// Page initialization
window.onload = function() {
// pages used by this script may have a link that needs to be updated to // the in-product link. let anchor = document.getElementById("linkMoreTroubleshooting"); if (anchor) { let baseURL = Services.urlFormatter.formatURLPref("app.support.baseURL"); anchor.setAttribute("href", baseURL + "troubleshooting"); }
// wire up click handlers for the radio buttons if they exist. for (let radioId of ["radioRestoreAll", "radioRestoreChoose"]) { let button = document.getElementById(radioId); if (button) { button.addEventListener("click", updateTabListVisibility); } }
// the crashed session state is kept inside a textbox so that SessionStore picks it up // (for when the tab is closed or the session crashes right again) var sessionData = document.getElementById("sessionData"); if (!sessionData.value) { document.getElementById("errorTryAgain").disabled = true; return; }
gStateObject = JSON.parse(sessionData.value);
// make sure the data is tracked to be restored in case of a subsequent crash var event = document.createEvent("UIEvents"); event.initUIEvent("input", true, true, window, 0); sessionData.dispatchEvent(event);
initTreeView();
document.getElementById("errorTryAgain").focus();
};
function isTreeViewVisible() {
let tabList = document.getElementById("tabList"); return tabList.hasAttribute("available");
}
function initTreeView() {
// If we aren't visible we initialize as we are made visible (and it's OK // to initialize multiple times) if (!isTreeViewVisible()) { return; } var tabList = document.getElementById("tabList"); var winLabel = tabList.getAttribute("_window_label");
gTreeData = []; gStateObject.windows.forEach(function(aWinData, aIx) { var winState = { label: winLabel.replace("%S", (aIx + 1)), open: true, checked: true, ix: aIx }; winState.tabs = aWinData.tabs.map(function(aTabData) { var entry = aTabData.entries[aTabData.index - 1] || { url: "about:blank" }; var iconURL = aTabData.attributes && aTabData.attributes.image || null; // don't initiate a connection just to fetch a favicon (see bug 462863) if (/^https?:/.test(iconURL)) iconURL = "moz-anno:favicon:" + iconURL; return { label: entry.title || entry.url, checked: true, src: iconURL, parent: winState }; }); gTreeData.push(winState); for (let tab of winState.tabs) gTreeData.push(tab); }, this);
tabList.view = treeView; tabList.view.selection.select(0);
}
// User actions function updateTabListVisibility() {
let tabList = document.getElementById("tabList"); if (document.getElementById("radioRestoreChoose").checked) { tabList.setAttribute("available", "true"); } else { tabList.removeAttribute("available"); } initTreeView();
}
function restoreSession() {
document.getElementById("errorTryAgain").disabled = true;
if (isTreeViewVisible()) { if (!gTreeData.some(aItem => aItem.checked)) { // This should only be possible when we have no "cancel" button, and thus // the "Restore session" button always remains enabled. In that case and // when nothing is selected, we just want a new session. startNewSession(); return; }
// remove all unselected tabs from the state before restoring it var ix = gStateObject.windows.length - 1; for (var t = gTreeData.length - 1; t >= 0; t--) { if (treeView.isContainer(t)) { if (gTreeData[t].checked === 0) // this window will be restored partially gStateObject.windows[ix].tabs = gStateObject.windows[ix].tabs.filter((aTabData, aIx) => gTreeData[t].tabs[aIx].checked); else if (!gTreeData[t].checked) // this window won't be restored at all gStateObject.windows.splice(ix, 1); ix--; } } } var stateString = JSON.stringify(gStateObject);
var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); var top = getBrowserWindow();
// if there's only this page open, reuse the window for restoring the session if (top.gBrowser.tabs.length == 1) { ss.setWindowState(top, stateString, true); return; }
// restore the session into a new window and close the current tab var newWindow = top.openDialog(top.location, "_blank", "chrome,dialog=no,all");
var obs = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService); obs.addObserver(function observe(win, topic) { if (win != newWindow) { return; }
obs.removeObserver(observe, topic); ss.setWindowState(newWindow, stateString, true);
var tabbrowser = top.gBrowser; var tabIndex = tabbrowser.getBrowserIndexForDocument(document); tabbrowser.removeTab(tabbrowser.tabs[tabIndex]); }, "browser-delayed-startup-finished", false);
}
function startNewSession() {
var prefBranch = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); if (prefBranch.getIntPref("browser.startup.page") == 0) getBrowserWindow().gBrowser.loadURI("about:blank"); else getBrowserWindow().BrowserHome();
}
function onListClick(aEvent) {
// don't react to right-clicks if (aEvent.button == 2) return;
var cell = treeView.treeBox.getCellAt(aEvent.clientX, aEvent.clientY); if (cell.col) { // Restore this specific tab in the same window for middle/double/accel clicking // on a tab's title.
//@line 185 "c:\builds\moz2_slave\rel-m-rel-w32_bld-000000000000\build\browser\components\sessionstore\content\aboutSessionRestore.js"
let accelKey = aEvent.ctrlKey;
//@line 187 "c:\builds\moz2_slave\rel-m-rel-w32_bld-000000000000\build\browser\components\sessionstore\content\aboutSessionRestore.js"
if ((aEvent.button == 1 || aEvent.button == 0 && aEvent.detail == 2 || accelKey) && cell.col.id == "title" && !treeView.isContainer(cell.row)) { restoreSingleTab(cell.row, aEvent.shiftKey); aEvent.stopPropagation(); } else if (cell.col.id == "restore") toggleRowChecked(cell.row); }
}
function onListKeyDown(aEvent) {
switch (aEvent.keyCode) { case KeyEvent.DOM_VK_SPACE: toggleRowChecked(document.getElementById("tabList").currentIndex); break; case KeyEvent.DOM_VK_RETURN: var ix = document.getElementById("tabList").currentIndex; if (aEvent.ctrlKey && !treeView.isContainer(ix)) restoreSingleTab(ix, aEvent.shiftKey); break; }
}
// Helper functions
function getBrowserWindow() {
return window.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebNavigation) .QueryInterface(Ci.nsIDocShellTreeItem).rootTreeItem .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
}
function toggleRowChecked(aIx) {
function isChecked(aItem) { return aItem.checked; }
var item = gTreeData[aIx]; item.checked = !item.checked; treeView.treeBox.invalidateRow(aIx);
if (treeView.isContainer(aIx)) { // (un)check all tabs of this window as well for (let tab of item.tabs) { tab.checked = item.checked; treeView.treeBox.invalidateRow(gTreeData.indexOf(tab)); } } else { // update the window's checkmark as well (0 means "partially checked") item.parent.checked = item.parent.tabs.every(isChecked) ? true : item.parent.tabs.some(isChecked) ? 0 : false; treeView.treeBox.invalidateRow(gTreeData.indexOf(item.parent)); }
// we only disable the button when there's no cancel button. if (document.getElementById("errorCancel")) { document.getElementById("errorTryAgain").disabled = !gTreeData.some(isChecked); }
}
function restoreSingleTab(aIx, aShifted) {
var tabbrowser = getBrowserWindow().gBrowser; var newTab = tabbrowser.addTab(); var item = gTreeData[aIx];
var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); var tabState = gStateObject.windows[item.parent.ix] .tabs[aIx - gTreeData.indexOf(item.parent) - 1]; // ensure tab would be visible on the tabstrip. tabState.hidden = false; ss.setTabState(newTab, JSON.stringify(tabState));
// respect the preference as to whether to select the tab (the Shift key inverses) var prefBranch = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); if (prefBranch.getBoolPref("browser.tabs.loadInBackground") != !aShifted) tabbrowser.selectedTab = newTab;
}
Too long, had to cut off...
And having left this open, I am also able to open a new tab now. Maybe it has finally worked its way out.
I will leave the debug thing open in case anyone wants to do anything with that though.
No, still having major problems.
I have tried opening Firefox in Safe Mode and can't look at anything because it immediately freezes.
I uninstalled Google Chrome, and the xml:255 has changed to xml:70, but the constant freezing remains.
Please let me know if I should start a new thread for help with this popup. Thanks.
Is this new script error related to browsing a web page, or is it a new problem with the session restore screen discussed earlier?
I'm actually don't know what store.json.mozlz4 is for. If you want to try moving or renaming that file, maybe it would help?
Note: The word chrome: actually refers to a built-in page in Firefox's program folder and not to a Google product (Mozilla has always used "chrome" to refer to the parts of the browser outside the "content" and Google apparently was very inspired by this).
Still the session restore issue. Usually it opens and freezes, but if I wait long enough, this pop up appears, so I think it must be connected.
Good to know on the chrome thing, and that explains why uninstalling Chrome really didn't help.
Did I read somewhere about starting a new profile - is that an option for me, or will this problem just keep following me. I'm ready to wipe the whole thing out at this point if that's what it takes.
Here's how to create a new profile. You can manually bring over key settings files like bookmarks, history, saved passwords, but it's quite a bit of work to reinstall extensions.
Create a new Firefox profile
This is in addition to and does not replace your existing settings.
A new profile will have your system-installed plugins (e.g., Flash) and extensions (e.g., security suite toolbars), but no themes, other extensions, or other customizations. It also should come with completely fresh settings databases and a fresh cache folder.
Exit Firefox and start up in the Profile Manager using Start > search box (or Run) -- type or paste the following and press Enter:
firefox.exe -P
Don't delete anything here.
Any time you want to switch profiles, exit Firefox and return to this dialog.
Click the Create Profile button, assign a name like April17, and ignore the option to change the folder location. Then start Firefox in the new profile you created.
This article describes key files that you might want to copy over: Recovering important data from an old profile.
To open the new profile folder in Windows Explorer, you can use the support information page. Either:
- "3-bar" menu button > "?" button > Troubleshooting Information
- (menu bar) Help > Troubleshooting Information
- type or paste about:support in the address bar and press Enter
In the first table on the page, click the "Show Folder" button.
To access your older profile folder(s), you can go "up" a level in Windows Explorer to the Profiles folder. Note that you should exit Firefox before replacing any files.
When returning to the Profile Manager later, you might be tempted to use the Delete Profile button on your older profile. But you might still need to copy stuff from it later that we overlooked now, so I recommend resisting the temptation.
Ok thanks for that! Before I try it - I just right clicked on the icon and saw the option to troubleshoot compatibility. It ran and just finished, saying "Incompatible Program"
Does this get me anywhere?
Generally speaking, you get the best results not using any of the compatibility options. In other words, right-click the Firefox icon > Properties > Compatibility tab, and make sure nothing is set or selected here so Firefox uses the full capabilities of your OS.
Alright, I've created a new profile and Firefox is now able to open, squeaky clean. :)
I have copied over places.sqlite, places.sqlite-shm, and places.sqlite-wal using the directions in the link you provided, but none of my bookmarks or history will show up in the new Firefox. There is a file titled places.sqlite.corrupt in the new profile that does not exist in the default profile, and it has the same time stamp as my copied and pasted places.squlite
Firefox is closed when I do the copy, then I reopen to check if it worked - have I done something wrong or missed something?
I have not attempted to copy over any passwords yet.