commit c5124076d96af9db4f648830ae81f04711c82eb1 Author: Bauke Date: Mon Sep 26 20:51:20 2022 +0000 Copy over the WebExtension Permissions page. diff --git a/WebExtension-Permissions.md b/WebExtension-Permissions.md new file mode 100644 index 0000000..fe5802a --- /dev/null +++ b/WebExtension-Permissions.md @@ -0,0 +1,37 @@ +In an attempt to be transparent about what Queue does and how it works, without needing to have to go through the code yourself, here are all the [WebExtension permissions](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/permissions) Queue uses and why. + +## Required Permissions + +### `contextMenus` + +* [MDN Web Docs](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/menus) + +Queue requires this permission to add various buttons to context menus (right-click menus), for example the "Add to Queue" button for links and tabs. + +### `storage` + +* [MDN Web Docs](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/storage) + +Since Queue is all about saving links for later, we have to store them somewhere. For this we use sync storage (such as Firefox Sync or Chrome Sync) so it's possible to sync them between devices. You don't need to be signed in to Firefox or Chrome to use it though, all the data is stored locally in that case. The exact data that is saved for each link is: + +* The date when you added the link. +* The text of the link if it's different from the URL. +* The URL of the link. + +After you've gone to your next link or removed a link in the options page, it will be saved in a local history. This is only stored locally (not using sync storage) and is cleared every time the browser is started. + +### `tabs` + +* [MDN Web Docs](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs) + +To send you to your next saved link we'll use the `tabs` API. + +In previous versions of Queue prior to 0.2.1 this was done by injecting a [content script](https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts) and having it wait for a message from Queue to open the next link. This required having access to every website you visited which isn't particularly ideal. + +In 0.2.1 this was made much simpler and safer by using the `tabs` API instead. Now Queue, from the main background process, just asks the current active tab to go to the link and that's it. + +As of 0.2.6, we don't require the tabs permission anymore. Only certain parts of `tabs` API are locked behind the permission and we don't use any of those parts. + +## Optional Permissions + +None yet! \ No newline at end of file