mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 06:18:35 +02:00
* Replace var with let in examples store-collected-images/webextension-plain/deps/uuidv4.js * Reverted third–party code
55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
function eventHandler(event) {
|
|
if (event.target.dataset.action == 'create') {
|
|
browser.tabs.create({
|
|
url: 'about:blank',
|
|
cookieStoreId: event.target.dataset.identity
|
|
});
|
|
}
|
|
if (event.target.dataset.action == 'close-all') {
|
|
browser.tabs.query({
|
|
cookieStoreId: event.target.dataset.identity
|
|
}).then((tabs) => {
|
|
browser.tabs.remove(tabs.map((i) => i.id));
|
|
});
|
|
}
|
|
event.preventDefault();
|
|
}
|
|
|
|
function createOptions(node, identity) {
|
|
for (let option of ['Create', 'Close All']) {
|
|
let a = document.createElement('a');
|
|
a.href = '#';
|
|
a.innerText = option;
|
|
a.dataset.action = option.toLowerCase().replace(' ', '-');
|
|
a.dataset.identity = identity.cookieStoreId;
|
|
a.addEventListener('click', eventHandler);
|
|
node.appendChild(a);
|
|
}
|
|
}
|
|
|
|
let div = document.getElementById('identity-list');
|
|
|
|
if (browser.contextualIdentities === undefined) {
|
|
div.innerText = 'browser.contextualIdentities not available. Check that the privacy.userContext.enabled pref is set to true, and reload the add-on.';
|
|
} else {
|
|
browser.contextualIdentities.query({})
|
|
.then((identities) => {
|
|
if (!identities.length) {
|
|
div.innerText = 'No identities returned from the API.';
|
|
return;
|
|
}
|
|
|
|
for (let identity of identities) {
|
|
let row = document.createElement('div');
|
|
let span = document.createElement('span');
|
|
span.className = 'identity';
|
|
span.innerText = identity.name;
|
|
span.style = `color: ${identity.color}`;
|
|
console.log(identity);
|
|
row.appendChild(span);
|
|
createOptions(row, identity);
|
|
div.appendChild(row);
|
|
}
|
|
});
|
|
}
|