Skip to content

Conversation

@aselya
Copy link

@aselya aselya commented Jan 27, 2025

Updated language to allow the query algorithm to return prompt ordenied helps protect the user from exposing their available features and helps prevent retaliation against the user from developers.

closes #388

The following tasks have been completed:

  • Modified Web platform tests (link)

Implementation commitment:

  • WebKit (link to issue)
  • Blink (link to issue)
  • Gecko (link to issue)

Preview | Diff

…ad of "denied"

Allowing the query algorithm to return `prompt` or`denied` helps protect the user from exposing their available features and helps prevent retaliation against the user from developers.
@miketaylr miketaylr self-requested a review January 28, 2025 15:27
@miketaylr
Copy link
Member

There is some prior art at https://privacycg.github.io/storage-access/#permissions-integration and https://privacycg.github.io/requestStorageAccessFor/#permissions-integration

Conceptually, WDYT @marcoscaceres, should we pull this into permissions, or just add a note saying powerful features can do this in their own permission query algorithms?

@johannhof
Copy link
Member

@aselya can you elaborate a bit more on why you think exposing Permissions Policy state (which is "allowed to use") would lead to retaliation against the user?

I could see an argument for why this technically exposes cross-origin information, but that seems by design, the same way that, say, the sandbox argument is observable by a cross-origin iframe. Also, that doesn't seem like something that should be implementation-defined. :)

@marcoscaceres
Copy link
Member

Ok, yeah, @johannhof is right (this has nothing to do with "allowed to use")... this needs to happen further down around... we think around step 8, where the permissions store is checked. We reviewed this and added some suggested text for the note by incorporating some of Anne's wording.

Co-authored-by: Marcos Cáceres <[email protected]>
@aselya
Copy link
Author

aselya commented Feb 21, 2025

@aselya can you elaborate a bit more on why you think exposing Permissions Policy state (which is "allowed to use") would lead to retaliation against the user?

I could see an argument for why this technically exposes cross-origin information, but that seems by design, the same way that, say, the sandbox argument is observable by a cross-origin iframe. Also, that doesn't seem like something that should be implementation-defined. :)

Apologies for the delay in response, only just saw this.

I made this PR after observing that this spec and the spec for requestStorageAccessFor (rSAFor) were not in alignment on the what permission states might be returned from a query. The explanation provided in the rSAFor spec for not revealing the denied permission state seemed reasonable and worth incorporating into the permissions spec to allow for other permissions to utilize in the same manner.

aselya and others added 3 commits February 21, 2025 12:12
Co-authored-by: Marcos Cáceres <[email protected]>
Remove open tag that was not closed. Format text.
Move text to section 8 as requested by reviewer.
@aselya
Copy link
Author

aselya commented Mar 3, 2025

@marcoscaceres, moving the text to step 8 makes sense to me.

@aselya aselya requested a review from marcoscaceres April 9, 2025 14:23
@aselya
Copy link
Author

aselya commented May 12, 2025

@marcoscaceres @miketaylr, any additional questions preventing this merge?

Copy link
Member

@annevk annevk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really see how this addresses #388 (comment)

In particular:

we keep this issue as a follow-up to make "permission query algorithm" run at a lower-level (or possibly not expose "denied" (do to the end user having denied) at all anymore).

I guess this note is meant to indicate user agents can do whatever, but is that really desirable?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow returning "prompt" rather than "denied"

5 participants