Bug 1338893 - Don't use the window on application-foreground if it doesn't yet exist. r?sebastian
During a cold startup, depending how this exactly plays out we might receive an application-foreground notification before the browser window is ready. Since the code to restore the selected tab if it has been left zombified while in background is only relevant if Gecko was already running and backgrounded, we can simply add a null check for the window before accessing it.
MozReview-Commit-ID: Ahp5NAODKRF
--- a/mobile/android/components/SessionStore.js
+++ b/mobile/android/components/SessionStore.js
@@ -351,18 +351,20 @@ SessionStore.prototype = {
// Reset minimum interval between session store writes back to default.
log("application-foreground");
this._interval = Services.prefs.getIntPref("browser.sessionstore.interval");
this._minSaveDelay = MINIMUM_SAVE_DELAY;
// If we skipped restoring a zombified tab before backgrounding,
// we might have to do it now instead.
let window = Services.wm.getMostRecentWindow("navigator:browser");
- let tab = window.BrowserApp.selectedTab;
- this.restoreZombieTab(tab);
+ if (window) { // Might not yet be ready during a cold startup.
+ let tab = window.BrowserApp.selectedTab;
+ this.restoreZombieTab(tab);
+ }
break;
case "ClosedTabs:StartNotifications":
this._notifyClosedTabs = true;
log("ClosedTabs:StartNotifications");
this._sendClosedTabsToJava(Services.wm.getMostRecentWindow("navigator:browser"));
break;
case "ClosedTabs:StopNotifications":
this._notifyClosedTabs = false;