3 WebExtension Permissions
Bauke edited this page 2022-09-26 22:07:52 +00:00

In an attempt to be transparent about what Queue does and how it works, and without needing to go through the code yourself, here are all the WebExtension permissions Queue uses and why.

Required Permissions

contextMenus

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

Since Queue is all about saving links for later, they have to be stored somewhere. For this Queue uses 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

To send you to your next saved link Queue uses the tabs API.

In versions of Queue before 0.2.1, this was done by injecting a content script and having it wait for a message from Queue to open the next link. This required having access to every website you visited, which wasn't particularly ideal.

In 0.2.1 this was made much simpler and safer by using the tabs API instead. Now, from the main background process, Queue simply asks the current active tab to go to the link and that's it.

And in 0.2.6, Queue doesn't require the tabs permission anymore at all. Only certain parts of the tabs API are locked behind the permission and Queue doesn't use any of those parts.

Optional Permissions

None yet!