Merge pull request #215 from bakulf/fix

Fix the restoring container tabs after the add-on has been removed #183
This commit is contained in:
luke crouch 2017-02-19 20:32:23 -06:00 committed by GitHub
commit 1c118c3ba9

View file

@ -408,7 +408,9 @@ const ContainerService = {
// forget about this tab. 0 is the index of the forgotten tab and 0 // forget about this tab. 0 is the index of the forgotten tab and 0
// means the last one. // means the last one.
SessionStore.forgetClosedTab(window, 0); try {
SessionStore.forgetClosedTab(window, 0);
} catch(e) {} // eslint-disable-line no-empty
} }
}).catch(() => null); }).catch(() => null);
}, },
@ -926,23 +928,26 @@ const ContainerService = {
} }
for (let window of windows.browserWindows) { // eslint-disable-line prefer-const for (let window of windows.browserWindows) { // eslint-disable-line prefer-const
// Let's close all the container tabs.
// Note 1: we don't care if containers are supported but the current FF
// version.
// Note 2: We cannot use _closeTabs() because at this point tab.window is
// null.
for (let tab of window.tabs) { // eslint-disable-line prefer-const
if (this._getUserContextIdFromTab(tab)) {
tab.close();
try {
SessionStore.forgetClosedTab(viewFor(window), 0);
} catch(e) {} // eslint-disable-line no-empty
}
}
this._getOrCreateContainerWindow(viewFor(window)).shutdown(); this._getOrCreateContainerWindow(viewFor(window)).shutdown();
} }
// all the configuration must go away now. // all the configuration must go away now.
this._windowMap = new Map(); this._windowMap = new Map();
// Let's close all the container tabs (note: we don't care if containers
// are supported but the current FF version).
const tabsToClose = [];
for (let tab of tabs) { // eslint-disable-line prefer-const
if (this._getUserContextIdFromTab(tab)) {
tabsToClose.push(tab);
}
}
this._closeTabs(tabsToClose);
// Let's forget all the previous closed tabs. // Let's forget all the previous closed tabs.
this._forgetIdentity(); this._forgetIdentity();
@ -968,7 +973,9 @@ const ContainerService = {
if (userContextId === 0 || if (userContextId === 0 ||
closedTabData[i].state.userContextId === userContextId) { closedTabData[i].state.userContextId === userContextId) {
SessionStore.forgetClosedTab(window, i); try {
SessionStore.forgetClosedTab(window, i);
} catch(e) {} // eslint-disable-line no-empty
} }
} }
} }