parent
3c06f76ab3
commit
d2978510ca
4 changed files with 36 additions and 7 deletions
3
index.js
3
index.js
|
@ -1,9 +1,8 @@
|
||||||
const {ContextualIdentityService} = require('resource://gre/modules/ContextualIdentityService.jsm');
|
/* global require */
|
||||||
const tabs = require('sdk/tabs');
|
const tabs = require('sdk/tabs');
|
||||||
const webExtension = require('sdk/webextension');
|
const webExtension = require('sdk/webextension');
|
||||||
|
|
||||||
function handleWebExtensionMessage(message, sender, sendReply) {
|
function handleWebExtensionMessage(message, sender, sendReply) {
|
||||||
console.log(message);
|
|
||||||
switch (message) {
|
switch (message) {
|
||||||
case 'open-containers-preferences':
|
case 'open-containers-preferences':
|
||||||
tabs.open('about:preferences#containers');
|
tabs.open('about:preferences#containers');
|
||||||
|
|
|
@ -16,10 +16,10 @@ function showContainer(containerId) {
|
||||||
browser.contextualIdentities.show(containerId);
|
browser.contextualIdentities.show(containerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
browser.contextualIdentities.query({}).then(identites=> {
|
browser.contextualIdentities.query({}).then(identities=> {
|
||||||
const identitiesListElement = document.querySelector('.identities-list');
|
const identitiesListElement = document.querySelector('.identities-list');
|
||||||
|
|
||||||
identites.forEach(identity=> {
|
identities.forEach(identity=> {
|
||||||
const identityRow = `
|
const identityRow = `
|
||||||
<tr data-identity-cookie-store-id="${identity.cookieStoreId}" >
|
<tr data-identity-cookie-store-id="${identity.cookieStoreId}" >
|
||||||
<td><div class="userContext-icon"
|
<td><div class="userContext-icon"
|
||||||
|
@ -70,3 +70,32 @@ document.querySelector('#edit-containers-link').addEventListener('click', ()=> {
|
||||||
window.close();
|
window.close();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function moveTabs(sortedTabsArray) {
|
||||||
|
let positionIndex = 0;
|
||||||
|
|
||||||
|
sortedTabsArray.forEach(tabID=> {
|
||||||
|
browser.tabs.move(tabID, {index: positionIndex});
|
||||||
|
positionIndex++;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelector('#sort-containers-link').addEventListener('click', ()=> {
|
||||||
|
browser.contextualIdentities.query({}).then(identities=> {
|
||||||
|
identities.unshift({cookieStoreId: 'firefox-default'});
|
||||||
|
|
||||||
|
browser.tabs.query({}).then(tabsArray=> {
|
||||||
|
const sortedTabsArray = [];
|
||||||
|
|
||||||
|
identities.forEach(identity=> {
|
||||||
|
tabsArray.forEach(tab=> {
|
||||||
|
if (tab.cookieStoreId === identity.cookieStoreId) {
|
||||||
|
sortedTabsArray.push(tab.id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
moveTabs(sortedTabsArray);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -22,7 +22,9 @@
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"cookies",
|
"cookies",
|
||||||
"experiments.contextualidentities",
|
"experiments.contextualidentities",
|
||||||
"contextualidentities"
|
"contextualidentities",
|
||||||
|
"tabs",
|
||||||
|
"cookies"
|
||||||
],
|
],
|
||||||
|
|
||||||
"browser_action": {
|
"browser_action": {
|
||||||
|
@ -36,4 +38,3 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<h4>Containers</h4>
|
<h4>Containers</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="small-2 columns header-column">
|
<div class="small-2 columns header-column">
|
||||||
<img alt="Sort Containers" class="header-icon" src="/img/container-sort.svg">
|
<a id="sort-containers-link"><img alt="Sort Containers" class="header-icon" src="/img/container-sort.svg"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table class="unstriped hover">
|
<table class="unstriped hover">
|
||||||
|
|
Loading…
Add table
Reference in a new issue