Contact emails

johann...@chromium.org, mreichh...@chromium.org, kaustub...@chromium.org

Explainer

https://github.com/privacycg/requestStorageAccessForOrigin

(note that we recently updated the name to remove “origin”, but not yet the
repository name)

Specification

https://privacycg.github.io/requestStorageAccessForOrigin

Summary

An extension to the Storage Access API that allows a top-level site to
request access to unpartitioned ("first-party") cookies on behalf of
embedded sites. Browsers will have discretion to grant or deny access, with
mechanisms like First-Party Set membership as a potential signal. This
allows for use of the Storage Access API by top-level sites.

For now, we intend to ship requestStorageAccessFor without user-facing
prompts, instead relying on information from First-Party Sets to determine
which sites should be granted storage access.

Blink component

Blink>StorageAccessAPI
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EStorageAccessAPI>

TAG review

https://github.com/w3ctag/design-reviews/issues/808

TAG review status

Pending

Risks

Interoperability and Compatibility

Gecko: No signal (https://github.com/mozilla/standards-positions/issues/736)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/125)

This has been discussed with other browser vendors outside of the
standards-positions repositories. These browsers ship this functionality as
a version that is only accessible to internal code (as an
anti-cross-site-cookie-breakage measure), but haven’t exposed it to
developers, primarily out of prompt relevance concerns. There have been
mixed reactions to our proposal, with the primary feedback being on reputation
concerns with potential prompts
<https://github.com/privacycg/requestStorageAccessForOrigin/issues/29>, and
a desire to maintain the security benefits from cross-site cookie blocking
to an even larger extent
<https://github.com/privacycg/requestStorageAccessForOrigin/issues/30>. We
intend to work on these concerns in collaboration with other browsers (if
possible).

Edge: No public signal. However, we’ve discussed this with Edge and they
are supportive of this additional API surface and will work on enabling it
(i.e. providing the prompts or FPS mechanisms to gate it) on Edge as well.

Web developers:

Positive. There has been developer
<https://github.com/privacycg/storage-access/issues/107#issuecomment-1330491548>
feedback <https://github.com/privacycg/storage-access/issues/53> on SAA
asking for this or similar functionality, as well as communication with
partners that are trying out the API to utilize FPS.

Ergonomics

Like requestStorageAccess, this API requires additional work from the
developer compared to the old state of "passive" cross-site cookie access.
This is an inherent, intentional property of the design.

For security reasons, this feature requires developers to use either CORS
headers (for non-iframe subresources) or requestStorageAccess in iframes to
be able to access cross-site cookies after a requestStorageAccessFor call.


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

No


Debuggability

Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?

No. This will be supported on Windows, Mac, Linux, Chrome OS, and Android,
but will not initially be supported on Android WebView.

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

Yes, https://wpt.fyi/results/top-level-storage-access-api. Note that while
tests are passing locally in Chrome, they’re not yet showing up on wpt.fyi
because the feature wasn’t included in the experimental web platform
features flag.

Flag name

StorageAccessAPIForOriginExtension

Requires code in //chrome?

True, as we’re adding a new permission and integrating with FPS. As
mentioned in the FPS I2S, Chromium-based browsers should be able to consume
the list through component updater.

Estimated milestones

Shipping in M113.


Anticipated spec changes

Some details of this API are still being discussed in the Privacy CG
<https://github.com/privacycg/requestStorageAccessForOrigin/issues> and
there may be backwards-incompatible changes in the future. As mentioned
above, the primary feedback has been on reputation concerns with potential
prompts
<https://github.com/privacycg/requestStorageAccessForOrigin/issues/29>, and
a desire to maintain the security benefits from cross-site cookie blocking
to an even larger extent
<https://github.com/privacycg/requestStorageAccessForOrigin/issues/30>.

We are confident in shipping the API in its current state to better
understand and iterate on real-world developer needs, and accept the
responsibility of supporting potential future breaking API changes. Since
use of the API in Chrome is currently restricted to First-Party Sets, we
think it allows us to leverage targeted developer outreach to minimize
compatibility impact.

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5122534152863744

Links to previous Intent discussions

Intent to prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGg35awh2_aqmFtWgOdo40vYVnWf%2BkEv3o7jxZ8DLbWq0eC3eQ%40mail.gmail.com


This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAD_OO4g87zWDtnn00w1%2BVD%2BYwr9oP0TjOfemX97VrBe96kby3A%40mail.gmail.com.

Reply via email to