LGTM1 This seems like a reasonable optimization, and I like plans to optimize this further. The immediate compat risk does indeed seem tiny. (but please keep the flag around just in case)
On Fri, Jan 3, 2025 at 4:58 PM Chris Fredrickson <cfred...@chromium.org> wrote: > > > On Thursday, January 2, 2025 at 10:53:50 PM UTC-5 Yoav Weiss wrote: > > On Thu, Jan 2, 2025 at 7:36 PM Chris Fredrickson <cfred...@chromium.org> > wrote: > > Contact emails > > sled...@google.com, johann...@chromium.org, cfred...@chromium.org > > Explainer > > https://github.com/privacycg/storage-access-headers > > > Do I understand correctly and the extra RTT imposed by the "retry" is > required for security reasons > <https://github.com/privacycg/storage-access-headers?tab=readme-ov-file#opt-in-signal> > ? > > > Yes, the additional round trip is necessary for security. (We recognize > that an extra round trip is not ideal, and we're working on a way to " > reuse <https://github.com/privacycg/storage-access-headers/pull/22>" the > security signal provided by one round trip for subsequent requests.) > > > > > > Specification > > https://privacycg.github.io/storage-access-headers > > Summary > > Storage Access Headers offer an alternate way for authenticated embeds to > opt in to unpartitioned cookies. These headers indicate whether embedded > resources should load with permission they have already been granted, > reducing loads and latency overall for these use cases. > > > Blink component > > Blink>StorageAccessAPI > <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EStorageAccessAPI> > > Search tags > > storage access api > <https://chromestatus.com/features#tags:storage%20access%20api>, storage > access headers > <https://chromestatus.com/features#tags:storage%20access%20headers> > > TAG review > > https://github.com/w3ctag/design-reviews/issues/982. > > TAG review status > > Satisfied in early design review. TAG didn’t expect to have major input on > the spec and invited us to proceed without their spec review. > > Chromium Trial Name > > StorageAccessHeader > > Origin Trial documentation link > > https://github.com/cfredric/storage-access-headers > > Risks > > Interoperability and Compatibility > > This feature poses a minor compatibility risk, since the Origin header is > now included on requests that include the "Sec-Fetch-Storage-Access: > inactive" header - and some servers do not yet properly handle the Origin > header. > > However, this risk is low, because: > > * The "inactive" header is only included on clients that already block > third-party cookies. > > * The presence of the "inactive" header implies that the request is > cross-site, and that the site in question already uses the Storage Access > API (which is relatively new to the web platform) or that the context is an > "A > B > A" embedding scenario. > > * This feature omits the Origin header from requests whose `credentials` > mode is not "include". > > > Hmm, so we'd start sending the Origin header on no-CORS requests? > > > That's correct - but only if the recipient site has already been granted > the "storage-access" permission (or the request context is an A>B>A embed, > so no explicit permission grant is needed) *and* the request's > credentials mode is "include". I.e., only if the value of the > Sec-Fetch-Storage-Access header is "inactive". > > > Have we tried to quantify that risk? Finch it in some way? > > > We have UMA metrics on Dev that can help upper-bound the risk. On Windows > clients that have manually enabled this feature, 6k out of 88M cross-site > requests (about 0.00007%) included the Sec-Fetch-Storage-Access header and > set its value to "inactive". (On Mac, Linux, and Android, these numbers are > 0.0001%, 0.0004%, and 0.0005%, respectively.) These numbers are an > overestimate of the expected breakage, since they only count cross-site > requests, and presumably some of those requests were to servers that handle > the Origin header properly. > > Those metrics are a limited sample and are certainly biased since they > come from Dev clients that have manually enabled the feature. But those > fractions are small enough to make me feel more comfortable launching this. > (Anecdotally, I've been running Chrome with this feature enabled for months > on my corp and personal profiles, and haven't run into any noticeable > breakage.) > > > > > > > Gecko: No signal (https://github.com/mozilla/standards-positions/issues/ > 1084) > > WebKit: No signal (https://github.com/WebKit/ > standards-positions/issues/412) > > Web developers: Positive (https://github.com/privacycg/ > storage-access/issues/130) Other feature requests: * > https://github.com/privacycg/storage-access/issues/170 * > https://github.com/privacycg/storage-access/issues/189 > > Other signals: > > 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? > > None > > > Debuggability > > This is debuggable via DevTools and via chrome://net-export. > > > Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, ChromeOS, Android, and Android WebView)? > > No > > The Storage Access API itself is not yet 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 > > DevTrial instructions > > https://developers.google.com/privacy-sandbox/blog/storage- > access-api-headers-logic > > Flag name on chrome://flags > > storage-access-headers > > Finch feature name > > StorageAccessHeaders > > Requires code in //chrome? > > False > > Tracking bug > > https://b.corp.google.com/issues/329698698 > > Launch bug > > https://launch.corp.google.com/launch/4309903 > > Measurement > > We've written metrics to track the usages of the "load" and "retry" > response headers, and to measure the incidences of each variant of the > request header. > > Sample links > > https://storage-access-headers-demo.glitch.me > > Estimated milestones > > Origin trial desktop first > > 130 > > Origin trial desktop last > > 135 > > Origin trial Android first > > 130 > > Origin trial Android last > > 135 > > > Anticipated spec changes > > Open questions about a feature may be a source of future web compatibility > or interoperability issues. Please list open issues (e.g. links to known > github issues in the project for the feature specification) whose > resolution may introduce web compat/interop risk (e.g., changing to naming > or structure of the API in a non-backward-compatible way). > > None > > Anticipated implementation changes > > We decided not to separately integrate the “Activate-Storage-Access” > header with the SAA Permissions Policy in this initial version. The > follow-up work to figure out the integration is tracked in > https://crbug.com/382291442. Because of how SAH works this header already > “benefits” from the SAA PP by default (SAH won’t work if there’s no SAA > permission grant), and we haven’t seen developer demand for being able to > prevent just the header, but not SAA itself. The implementation carries a > surprising amount of architectural complexity, but we do plan to follow up > with this for completeness. Most importantly, adding this later is unlikely > to cause compat risks because SAA has a “*” default allow-list, so we won't > be changing default behavior. > > Link to entry on the Chrome Platform Status > > https://chromestatus.com/feature/6146353156849664?gate=6138146145435648 > > Links to previous Intent discussions > > Intent to Prototype: https://groups.google.com/a/ > chromium.org/d/msgid/blink-dev/CABa1CXyMJzMmpQkZMwQUFGK8- > f%3DEerhR2VQbTZephdmE22W%2ByA%40mail.gmail.com > > Intent to Experiment: https://groups.google.com/a/ > chromium.org/d/msgid/blink-dev/CABa1CXyYbxwh%3DPdnigTW80d9jez_ > 835R1SV1bQPDjvk1ra5G4g%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 visit https://groups.google.com/a/ > chromium.org/d/msgid/blink-dev/1bbe492c-8722-4dbf-8342- > 82f59fbb0bd2n%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/1bbe492c-8722-4dbf-8342-82f59fbb0bd2n%40chromium.org?utm_medium=email&utm_source=footer> > . > > -- 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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJN7gYS97vJO44TVwiUhf7H54%2BJNv_fe5%3DAx2ewwOf1dw%40mail.gmail.com.