-
Notifications
You must be signed in to change notification settings - Fork 242
Settings vs. Permissions #342
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
This proposal could also improve the UI for things like protocol handlers, which currently look like permissions but similarly don't quite fit that model. |
/cc @slightlyoff |
Storage durability is also currently modeled as a permission, but it's awkward. |
Thanks @reillyeon for opening up thoughts from a different angle. About Permissions vs Settings, I feel like they are similar as both are for powerful features that need users' acknowledge and consent. But they seem to be different as Permissions on the web today are a set of user choices that developers can ask for whereas Settings are what browsers maintain (including exposing the states of those Permissions). It seems to me that
|
I'm still mulling over precise definitions but I think the distinction I would like to draw is that a permission represents the user's control over the capabilities of an web app while a setting is a control over user agent behavior as it applies to the site. There is definitely some overlap between permissions and settings with regard to other considerations like privacy. For example, the
I think it is reasonable to limit the extent to which web apps can provide their own settings UI experience. We see this pattern applied on other platforms for which sensitive settings must be configured through a trusted UI that the application can trigger programmatically. In my proposal the navigator.siteSettings.show('run-on-login'); I think this is a better user experience than an model in which modifying each setting requires its own prompt.
Like permissions, settings and their desired behavior could be standardized. To take
|
@reillyeon brings up a really good point here. We also tried to remodel In general, just because it kind of looks like a permission doesn't mean we should shoehorn it into the permissions API. A question I like to pose is "does this permission make sense if queried from a non-installed context?". If the answer is "no", then I usually feel that it's a poor fit for the permissions API. |
@reillyeon, @dominickng, We plan on moving toward this direction of controlling Run on OS Login through site settings as soon as more details on these new site settings APIs ( |
To be clear, these APIs will need to be designed. This was a suggested direction, not an existing project. |
I am concerned about overloading the term "permission" to refer to other types of settings a user may want to apply to a site. The terms "allow" and "block" seem strained in this context. The user isn't "allowing" the site to launch at startup. The user is configuring the site to launch at startup. The site has no choice in the matter other than to highlight this as a setting the user may want to toggle.
Thinking of these as settings avoids adding new "permission prompts" for them. Rather than the proposed
navigator.runOnOsLogin.set()
method I propose anavigator.siteSettings.show()
method which opens the appropriate user agent or operating system UI for adjusting installed application settings. In Chrome this would openchrome://settings/content/siteDetails?site=${document.location.origin}
or the like. For a set of specification-defined settings this method could take an additional parameter which would highlight the desired setting for the user.I think this distinction also helps avoids tying the "Run on OS Login" proposal to the "Install Time Permissions Prompt" proposal given that the latter seems significantly more controversial. It seems reasonable for the user agent to show some installed web app settings in the install prompt itself. Unlike permissions in general, these settings can be immediately relevant to the user installing the web app.
The text was updated successfully, but these errors were encountered: