diff --git a/index.js b/index.js
index 7b373c3..34660cf 100644
--- a/index.js
+++ b/index.js
@@ -1,9 +1,8 @@
-const {ContextualIdentityService} = require('resource://gre/modules/ContextualIdentityService.jsm');
+/* global require */
const tabs = require('sdk/tabs');
const webExtension = require('sdk/webextension');
function handleWebExtensionMessage(message, sender, sendReply) {
- console.log(message);
switch (message) {
case 'open-containers-preferences':
tabs.open('about:preferences#containers');
diff --git a/webextension/js/popup.js b/webextension/js/popup.js
index feb3147..e8481a7 100644
--- a/webextension/js/popup.js
+++ b/webextension/js/popup.js
@@ -16,10 +16,10 @@ function showContainer(containerId) {
browser.contextualIdentities.show(containerId);
}
-browser.contextualIdentities.query({}).then(identites=> {
+browser.contextualIdentities.query({}).then(identities=> {
const identitiesListElement = document.querySelector('.identities-list');
- identites.forEach(identity=> {
+ identities.forEach(identity=> {
const identityRow = `
{
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);
+ });
+ });
+});
diff --git a/webextension/manifest.json b/webextension/manifest.json
index 4079e5c..a1195e2 100644
--- a/webextension/manifest.json
+++ b/webextension/manifest.json
@@ -22,7 +22,9 @@
"permissions": [
"cookies",
"experiments.contextualidentities",
- "contextualidentities"
+ "contextualidentities",
+ "tabs",
+ "cookies"
],
"browser_action": {
@@ -36,4 +38,3 @@
}
}
-
diff --git a/webextension/popup.html b/webextension/popup.html
index 879795b..d79c7e4 100644
--- a/webextension/popup.html
+++ b/webextension/popup.html
@@ -14,7 +14,7 @@
Containers
|