Merge pull request #777 from jonathanKingston/container-removal-fixes

Handle removing containers to refresh menus and remove assignments. F…
This commit is contained in:
luke crouch 2017-08-30 15:13:03 -05:00 committed by GitHub
commit 2831d019f5
2 changed files with 13 additions and 7 deletions

View file

@ -25,13 +25,12 @@ const backgroundLogic = {
return false;
},
async deleteContainer(userContextId) {
async deleteContainer(userContextId, removed = false) {
await this._closeTabs(userContextId);
if (!removed) {
await browser.contextualIdentities.remove(this.cookieStoreId(userContextId));
}
assignManager.deleteContainer(userContextId);
await browser.runtime.sendMessage({
method: "forgetIdentityAndRefresh"
});
return {done: true, userContextId};
},
@ -157,13 +156,13 @@ const backgroundLogic = {
const cookieStoreId = this.cookieStoreId(userContextId);
let tabs;
/* if we have no windowId we are going to close all this container (used for deleting) */
if (windowId) {
if (windowId !== false) {
tabs = await browser.tabs.query({
cookieStoreId,
windowId
});
} else {
await browser.tabs.query({
tabs = await browser.tabs.query({
cookieStoreId
});
}

View file

@ -76,6 +76,13 @@ const messageHandler = {
return response;
});
if (browser.contextualIdentities.onRemoved) {
browser.contextualIdentities.onRemoved.addListener(({contextualIdentity}) => {
const userContextId = backgroundLogic.getUserContextIdFromCookieStoreId(contextualIdentity.cookieStoreId);
backgroundLogic.deleteContainer(userContextId, true);
});
}
// Handles messages from sdk code
const port = browser.runtime.connect();
port.onMessage.addListener(m => {