Bug 1228593 - dontSaveSession may be undefined, assume false if so r?liuche
GeckoApp sometimes passes in an aClear where only sanitize is defined, and dontSaveSession
has never been set. We need to be able to handle this, and should assume that this
means we should retain the current session (as these are also the default params).
Previously this would result in session restore data either not being saved, or
not being cleared respectively.
MozReview-Commit-ID: 6tu6KuL68LA
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -1350,17 +1350,19 @@ var BrowserApp = {
Services.obs.notifyObservers(cancelQuit, "quit-application-requested", "restart");
// Quit aborted.
if (cancelQuit.data) {
return;
}
// Tell session store to forget about this window
- if (aClear.dontSaveSession) {
+ // dontSaveSession might not be defined, especially for calls made from java, we should
+ // treat that as equivalent to dontSaveSession being false
+ if ((aClear.dontSaveSession !== undefined) && (aClear.dontSaveSession)) {
let ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
ss.removeWindow(window);
}
BrowserApp.sanitize(aClear.sanitize, function() {
let appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup);
appStartup.quit(Ci.nsIAppStartup.eForceQuit);
});