Files
webextensions-examples/permissions/page.js
Andy McKay 48d7eb4479 an example using permissions (#204)
* an example using permissions

* fix up after suggestions from wbamberg
2017-04-24 17:55:53 -07:00

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();