extension: Reload the tab when non-<all_urls> host permission added

This commit is contained in:
Daniel Jacobs 2024-06-24 11:25:44 -04:00
parent 23d8e5617c
commit 8af4454012
2 changed files with 14 additions and 8 deletions

View File

@ -52,6 +52,16 @@ async function disable() {
} }
} }
function onAdded(permissions: chrome.permissions.Permissions) {
if (
permissions.origins &&
permissions.origins.length === 1 &&
permissions.origins[0] !== "<all_urls>"
) {
utils.tabs.reload();
}
}
function onMessage( function onMessage(
request: unknown, request: unknown,
_sender: chrome.runtime.MessageSender, _sender: chrome.runtime.MessageSender,
@ -96,3 +106,4 @@ async function handleInstalled() {
} }
utils.runtime.onInstalled.addListener(handleInstalled); utils.runtime.onInstalled.addListener(handleInstalled);
utils.permissions.onAdded.addListener(onAdded);

View File

@ -200,16 +200,11 @@ window.addEventListener("DOMContentLoaded", async () => {
!(await utils.hasHostPermissionForActiveTab()) !(await utils.hasHostPermissionForActiveTab())
) { ) {
permissionsButton.classList.remove("hidden"); permissionsButton.classList.remove("hidden");
permissionsButton.addEventListener("click", async () => { permissionsButton.addEventListener("click", () => {
const grant = await utils.permissions.request({ utils.permissions.request({
origins: [url.toString()], origins: [url.toString()],
}); });
if (grant) {
// Unfortunately, due to the way the popup disappears, this will
// only work if the popup and the permission dialog happen to overlap
await utils.tabs.reload(activeTab.id!);
window.close(); window.close();
}
}); });
} }
}); });