From fb1d2502d930fc43991d0afe4fc281a75481dd01 Mon Sep 17 00:00:00 2001 From: ngxson Date: Wed, 26 Aug 2020 11:35:51 +0200 Subject: [PATCH] add browser host permission API --- src/background/content-script.js | 25 ++++++++++++++++--------- src/background/permissions.js | 17 +++++++++++++++++ src/manifest.json | 4 ++++ 3 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 src/background/permissions.js diff --git a/src/background/content-script.js b/src/background/content-script.js index 8be3c26..66d812d 100644 --- a/src/background/content-script.js +++ b/src/background/content-script.js @@ -1,12 +1,19 @@ import browser from "webextension-polyfill"; +import { havePermission } from "./permissions"; -browser.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { - browser.tabs.executeScript(tabId, { - file: 'content_script/input_tools.js', - runAt: 'document_idle', - }); +async function init() { + if (await havePermission('tabs')) { + browser.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { + browser.tabs.executeScript(tabId, { + file: 'content_script/input_tools.js', + runAt: 'document_idle', + }); + + browser.tabs.insertCSS(tabId, { + file: 'content_script/input_tools.css', + }); + }); + } +} - browser.tabs.insertCSS(tabId, { - file: 'content_script/input_tools.css', - }); -}); \ No newline at end of file +init(); diff --git a/src/background/permissions.js b/src/background/permissions.js new file mode 100644 index 0000000..1ba6fb6 --- /dev/null +++ b/src/background/permissions.js @@ -0,0 +1,17 @@ +import browser from "webextension-polyfill"; + +async function havePermission(name) { + return await browser.permissions.contains({ + permissions: [ name ], + origins: [ 'http://*/*', 'https://*/* '], + }); +} + +async function requestPermission(name) { + return await browser.permissions.request({ + permissions: [ name ], + origins: [ 'http://*/*', 'https://*/* '], + }); +} + +export { havePermission, requestPermission }; \ No newline at end of file diff --git a/src/manifest.json b/src/manifest.json index 73494bd..01b785c 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -8,9 +8,13 @@ "128": "icons/icon_128.png" }, "permissions": [ + "activeTab", "storage", "cookies", "contextMenus", + "https://*.simplelogin.io/*" + ], + "optional_permissions": [ "tabs", "http://*/*", "https://*/*"