mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 14:28:33 +02:00
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
function updatePermissions() {
|
|
browser.permissions.getAll()
|
|
.then((permissions) => {
|
|
document.getElementById('permissions').innerText = permissions.permissions.join(', ');
|
|
});
|
|
}
|
|
|
|
async function processChange(event) {
|
|
let permission = event.target.dataset.permission;
|
|
let result = document.getElementById('result');
|
|
|
|
try {
|
|
if (event.target.dataset.action === 'grant') {
|
|
browser.permissions.request({permissions: [permission]})
|
|
.then((response) => {
|
|
result.className = 'bg-success';
|
|
result.textContent = 'Call successful.';
|
|
})
|
|
.catch((err) => {
|
|
// Catch the case where the permission cannot be granted.
|
|
result.className = 'bg-warning';
|
|
result.textContent = err.message;
|
|
});
|
|
}
|
|
else {
|
|
browser.permissions.remove({permissions: [permission]})
|
|
.then((response) => {
|
|
result.className = 'bg-success';
|
|
result.textContent = 'Call successful.';
|
|
});
|
|
}
|
|
} catch(err) {
|
|
// Catch the case where the permission is completely wrong.
|
|
result.className = 'bg-danger';
|
|
result.textContent = err.message;
|
|
}
|
|
result.style.display = 'block';
|
|
updatePermissions();
|
|
event.preventDefault();
|
|
}
|
|
|
|
for (let element of document.getElementsByClassName('permission')) {
|
|
element.addEventListener('click', processChange);
|
|
}
|
|
|
|
updatePermissions();
|