"Uncaught (in promise) Error: The 'activeTab' permission is not in effect because this extension has not been in invoked." in Chrome Extension
I have the <all_urls>
host permission and the activeTab
permission but this error appears on chrome://extensions/
. Here is my manifest (with non-important detail removed):
{
"action": {
"default_icon": {...},
"default_popup": "...",
"default_title": "..."
},
"author": "...",
"background": {
"service_worker": "./some-js-1.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["./some-js-2.js"]
}],
"description": "...",
"host_permissions": [
"<all_urls>"
],
"icons": {...},
"manifest_version": 3,
"name": "...",
"options_page": "...",
"permissions": [
"activeTab",
"storage",
"tabs"
],
"short_name": "...",
"version": "..."
}
In my background script (./some-js-1.js
), this is the code that takes the screenshot:
browser.windows.getCurrent().then(function(win){
browser.tabs.captureVisibleTab(win.id,{
"format":"png"
}).then(function(dataURI){
console.log(dataURI);
// do something with it
});
});
It works in most places, but on chrome://extensions/
it doesn't work - even with the <all_urls>
and activeTab
permissions.
To quote the documentation (emphasis mine),
In order to call this method, the extension must have either the <all_urls> permission or the activeTab permission. In addition to sites that extensions can normally access, this method allows extensions to capture sensitive sites that are otherwise restricted, including chrome:-scheme pages, other extensions' pages, and data: URLs. These sensitive sites can only be captured with the activeTab permission. File URLs may be captured only if the extension has been granted file access.
I have both <all_urls>
and activeTab
, but still chrome://extensions
is unavailable. When I tried putting <all_urls>
into the permissions
key I got a warning that said,
Permission '<all_urls>' is unknown or URL pattern is malformed.
I have it in the host_permissions
because I want access to all of the hosts, but it still seems that the permission isn't given (or that I'm doing something wrong).
How can I fix this? If you need any more information please ask in the comments.
Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW
Comments
Post a Comment