-
Notifications
You must be signed in to change notification settings - Fork 43
Define Add-on Permission UI #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Need more info on the permission model and context to understand what UI needs to be in place. |
I see three parts to this project:
Displaying permissionsAdvanced users might want to know what permissions an add-on is asking for and manage them. Most users don’t care and just want their add-ons to work. So, a good principle to follow seems to be to provide information only to those who want it. Execution: on add-on listing page
Granting permissionsI posited above that most users wants the add-on to work in way that’s “one-click install-and-forget”. Unfortunately, the more permissions dialogue we display, we’re going to get people who not be able to successfully active the add-on. A good principle to follow seems to be:
Alternative 1: ask user to give the add-on all the permissions that it requiresThis can be done at either one of these two points in time:
Alternative 2: ask user to give permission only when specific features within the add-on is activatedFor example, I have an audio-recorder add-on. The add-on will only ask for permission to access my microphone when I click the “Record” button.
Revoking/editing permissionsWe will need an interface to manage permissions after it’s been granted. I think that a good place to put this is under about:addons > [addon_name] > Preferences > create a new section called “Permissions”. We put each permission there, and user can revoke at will. Thoughts? |
Would there be anything about non-WebExtension add-ons? There's a couple of concerns here:
The downside is that a WebExtension add-on that still can do less harm to a user than an old style add-on triggers the warning. For a end users point of view it might appear worse. And that's a disincentive for WebExtensions. If all this puts in place a prompt for users, does this also make sense for old style add-ons? Maybe a question for product. |
Do we want old-style add-ons to start asking for permissions like WebExtensions add-ons can? We’ve never done this before. And given the fact that we’re moving to a WebExtensions future, it’s probably not a good idea. But this is a product question. For WebExtension add-ons, as you said, they will be less attractive than old style add-on that don’t/can’t ask for permissions. One potential solution here is to ask for user approval prior to install instead of prior to permission activation. So instead of saying “Do you want to install {addon_name}?”, we say instead “Do you want to install {addon_name}? It requires {permission_1}, {permission_2}, etc.” It’s not the best in terms of security, but it’s the least interrupting. |
An interesting example of permissions experienced with Momentum on Chrome: After that the extension is installed, an icon appears in the toolbar and a door-hanger confirming the installation appears. And from then on the extension is active and replaces the newTab page. On ones first encounter with the new newTab page, Chrome will - after some delay - prompt if this is the page one expects. If one does not act on that prompt, Chrome will show it again on the next restart of the browser (but not every time one opens a newTab in the current Session). And settings that have been changed by an extension, show up in Chromes settings with a reference to the respective extension: Interesting to see that the extension is allowed to modify the browser first, and only later the users is asked if they accept that change. This gives the user time to understand the effect and prevents a more abstract decision upfront. |
Strong preference for Alternative 2, prompting at time-of-use for sensitive APIs. It's consistent with the Web Platform (we prompt on use for geolocation, getusermedia, notifications, etc.) and it allows users to make more informed decisions since the prompt is temporally correlated with a specific directed action. Furthermore, Android initially used the permission-at-install model for apps, and was widely panned for its inscrutability. In Android 6, Google moved to the prompt-on-use model. iOS has followed this model for several years. Given the convergence to prompt-at-use in all other platforms, I suspect this model would be consistent with the expectations of users and developers. |
Permissions prioritization in Chrome:Chrome is using a prioritization of how critical the permissions are. I like the idea of this system, wether we should rethink/clarify the prioritization for Firefox. Pre-installation Notifications could be tagged or seperated into the different required permissions weight. There should also be a way to display, which permissions are optional and which ones are required for the addon to work. At the moment chromes prioritization looks like the following list. light-weight:
medium-weight:
critical-weight:
|
I did a quick version to visualize the idea of different pre-install notifications, based on the addon permissions weight, using the design of my concepts at Install Confirmations to stay consistent. |
Activating Permissions:Based on the different permissions, we have to decide:1. We don't activate this permission, unless the the user "Grants" activation
2. We activate this permission, but the user is able to "Revoke"
3. We activate this permission, the user can "view only" not edit/revoke
List of existing defined permissions (Work in progress / feel free to comment ) |
If, at that point, the add-on isn't installed, I wonder where this panel can be attached to? Or if it need to be attached to anything at all. |
The action shortly before the install is somehow related to downloads. So attaching it to the download-button, as shown in the concept would make sense. |
Max wrote:
This makes sense if the add-on does not modify the UI. However, if the add-on is adding a new icon to the toolbar (for example, AdBlock Plus or Video DownloadHelper), one thing we can do is add the icon at 50% opacity and ask “Do you want to install this thing that’s behind this icon?”. If user says yes, we then install the add-on and ‘fade in’ the opacity to 100%. If user says no, we can ‘fade out’ the opacity, as if the add-on is also visually removed. What do you think? Regardless of what we show before the install, we will need a way to manage permissions. What happen if you go to The wording shown here isn’t final, but it should nevertheless give you an idea of what this permissions management UI could look like. |
This green, yellow, red color coding is bullshit |
@askmatey Please keep your comments constructive, there's no need for that kind of language. |
@askmatey I am not sure color coding is the right way either. I would love to hear your reasons why it isn't. I think Android and iOS perfectly illustrate the problems around permissions that we need to solve: Fewer permissions shown to users in context keeps them relevant and understandable. Maybe we too need to cover all cases internally that can not be explained to users in context. For that we need to review all permissions, see which ones are necessary for the user to decide on, which can be understood, and which can be shown in context. And then figure out how to deal with the remaining permissions. |
On Jul 7, 2016 04:22, "Markus Jaritz" [email protected] wrote:
One hurdle to overcome: color coding isn't especially accessible for folks |
Besides WebExtensions, permissions are also discussed in the context of websites. Which have some similar permissions (Location, Camera, Microphone). And also discuss similar problems of how to best serve permissions in context for users to understand. They default to temporarily granting permissions with an option for the users to make it permanent. Can we use the same system for all permissions, Websites and WebExtensions? |
This behaviour is great for non-essential permissions. For example, if an add-on wants to change your wallpaper, we can say “Would you like to allow [Add-on name] to change your desktop wallpaper? [Allow] [Don’t allow] [x] Remember my decision” But if an add-on requires a permission in order to function correctly (maybe an ad blocker needs the ability to modify your privacy settings), then it would be smart to ask before the add-on is installed. Otherwise, the add-on will be installed and we immediately need to ask users “Would you like to allow [Add-on name] to change your privacy settings?”. If you say “Don’t allow”, that add-on cannot function. |
For non-essential but critical permissions, the in-context system could look like this. Using the same style as used for websites permissions. There are different ways, on where the panel is attached to. I would expect that this information is attached to the add-on's toolbar-icon if one is existing. If there is no toolbar-icon displayed, we can display the icon for as long as the panel is opened, or simply attach it to the menu icon. |
It might make for a more consistent experience to always have it attached If a user doesn't click Remember my decision when are they asked again? Aislinn On Sun, Jul 24, 2016 at 4:45 AM, maxpopp [email protected] wrote:
Aislinn Dewey Grigas 978.930.3729http://www.linkedin.com/in/aislinn http://www.twitter.com/ashdewey |
Yeah makes sense - I guess I mean if a user doesn't check remember my On Wed, Jul 27, 2016 at 9:46 AM, maxpopp [email protected] wrote:
Aislinn Dewey Grigas 978.930.3729http://www.linkedin.com/in/aislinn http://www.twitter.com/ashdewey |
I wonder if temporary permissions is manageable for WebExtensions. For access to my camera it might make sens to control it, but what with history or others where the add-on might require permanent access. Would it then ask on every start-up? That might soon get annoying. And what would happen if a user doesn't want to give a certain permission permanently? With web-sites that is pretty easy. The users would be surprised by a permission request, wouldn't give that permission, and close the tab. (To maybe never come back again.) Max, you mentioned, the icon could temporary show up when the permission is asked. That might be interesting to indicate activity of otherwise invisible extensions if not only visible when first accessing something, but any time they access something behind a permission. (Might be another issue though.) |
If the user doesn't click "remember" he would be asked again if he resets the browser(since this is not tab or window related) and the permissions is needed again. |
Permissions PanelWe will also need a way to manage different permissions of every single Addon. I did a quick rework suggestion for bram's visual of the permissions panel, which I like very much. I reduced the number of categories to Optional Permissions and Essential Permissions. I also included a way to quickly disable the Addon if the user doesn't like the Essential Permissions to run. I think providing a way to quickly perform instead of only leading to, what the user has to do if he wants to disable essential Addons will be much quicker. |
I like the two categories - wondering if the essential ones should be at I wonder also if these should be duplicated into our upcoming re-design of A On Thu, Aug 18, 2016 at 8:50 AM, Markus Jaritz [email protected]
Aislinn Dewey Grigas 978.930.3729http://www.linkedin.com/in/aislinn http://www.twitter.com/ashdewey |
It would be great to have a central point showing all permissions granted to websites and add-ons. @ashgrigas you mentioned about:premissions , I couldn't find that in current nightly. Please update us if you know more about that. |
I just checked with the team and it was removed in 45 so I guess I can't On Mon, Aug 22, 2016 at 10:01 AM, Markus Jaritz [email protected]
Aislinn Dewey Grigas 978.930.3729http://www.linkedin.com/in/aislinn http://www.twitter.com/ashdewey |
We made a lot of progress on this.
other install-related work:
|
What about for users who have used Classic Theme Restorer to switch to a more traditional-style menu with keyboard shortcut hints (like Chrome still uses) rather than the Australis "word-wrapped toolbar in a panel" design? (I ask because I have the older "firefox button in the top-left corner" menu design and, ever since the aggressive deprecation plan for XUL addons was announced, I've been collecting data points to decide when to start riding down from Aurora through to ESR and, when that is no longer viable, which alternative browser to use.) |
The implementation of it's now in the product! |
How does surfacing permissions help the user?
What do we need to surface on install, update, or request of optional permissions?
What should the user control, and what could the user control?
UX Bug 1229230
Engineering Bug 1197420
The text was updated successfully, but these errors were encountered: