Skip to content

QJS permissions explainedΒ #74

@maximelebreton

Description

@maximelebreton

Hello Quick Javascript Switcher users!
As some of you ask me to explain the permissions, here is a detailled topic:

Read all sites data
image

Differences between v1 and v2

First thing, you should know that QJS v2 requires exactly the same permissions than QJS v1, except the debugger permission.

You can find the v2 permissions here:

permissions: [
"contextMenus",
// "activeTab",
"tabs",
"contentSettings",
"storage",
"debugger",
],

And the v1 permissions here:

, "permissions" :
[ "tabs"
, "contentSettings"
, "contextMenus"
, "storage"
]

Tabs permission

  • Read and change your data on all websites
  • Change the settings that control websites access to features such as ... JavaScript

It's too much permission, I know, and I tried to do the Job with a restricted activeTab permission (commented here...), but it was too restrictive.

With activeTab permission you need to click on the extension icon to authorize it on the tab.
And it's not authorized by url, or domain, it's by tab...
So if you close the tab, you need to reactivate the extension on this tab again, and at each time.
So you can't see the JS state of the tab until you click on it, and it's a big UX problem for me:
image

So I had to make a choice, better UX or better permissions?
I've opted for better UX.

Because the code is Open Source, so you can looking at the code, and I think it's a good warranty.
For example, check the use cases of chrome.tabs:

Important

If someone can give me a better solution to reduce the permission, without loosing UX, i'm very interested.

Debugger permission

This permission was required for the new pause/resume JS feature, but removed since 2.1.0 because users complain about this permission, and it seems that the feature is not very useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions