Port to Manifest v3
Port chrome.tabs.executeScript to chrome.scripting.executeScript
Port chrome.browserAction to chrome.action
And add some try catch to make it more resilient
Make use of "userAgentData" for detecting Google Chrome
The plugins aren't exposed to the navigator on a WorkerScript and this is a much better approach, too. (new in Chrome 90)
Port historyrunner favicon fetching to new favicon API
XMLHttpRequest is also not a thing for service workers.
Add service-worker.js
It just loads all the JS files to be as compatible to before as possible
Migrate manifest.json to v3
- Justifies a version 2.0
- Replace background page with service worker
- Add favicon permission, host permission for everything
- browser_action -> action
- Remove obsolete stuff
Add history permission
If we're messing with the permissions anyway, might as well use the chance to make "history" a mandatory permission so the history runner works out of the box.
manifest: "applications" is now "browser_specific_settings"
manifest: Add back scripts
Firefox doesn't currently support Service Workers for extensions, so we'll just register them both.
Luckily newer Firefox and Chrome ignore each other's specifics so we can use both keys at once.