On Tue, Jan 7, 2025 at 10:31 PM Chris Fredrickson <cfred...@chromium.org> wrote:
> Minor updates: > > Mike Taylor previously noted > <https://groups.google.com/a/chromium.org/g/blink-dev/c/5-SQmyp95U0/m/ibM_3pbcAAAJ> > a possible concern about naming. Ben VanderSloot (Mozilla) indicated > <https://github.com/mozilla/standards-positions/issues/1084> that they're > not concerned about the names, so this concern has been resolved. > > I also started a thread in blink-api-owners-discuss about whether we can > also ship on WebView (given the earlier discussion), though I think it's > still waiting for approval from a moderator. > FWIW, my LGTM still stands if we're expanding scope to cover WebView. > On Monday, January 6, 2025 at 10:28:53 AM UTC-5 Chris Fredrickson wrote: > >> On Monday, January 6, 2025 at 10:08:53 AM UTC-5 Peter Pakkenberg wrote: >> >> Hi Chris, >> >> > The Storage Access API itself is not yet supported on Android WebView. >> >> WebView does support the Storage Access JS methods, but lacks a way to >> grant permission, which we are currently working on adding. Once that work >> is done, the already exposed JS interfaces will be usable by web content. >> >> >> Thanks for the clarification, I was a bit imprecise there. >> >> >> >> I also don’t see any code to explicitly disable the kStorageAccessHeaders >> flag on WebView, so if the feature flag is flipped to enabled by default, >> then this feature will be launched on WebView. >> >> >> That's correct; my plan was to disable the feature on WebView using >> AwFieldTrials::RegisterFeatureOverrides >> <https://source.chromium.org/chromium/chromium/src/+/main:android_webview/browser/aw_field_trials.cc;drc=57e439af5bc1022525302dc8c3e25f8c7c10e445;l=86> >> in >> the same CL that default-enables the feature. >> >> >> >> Is there any reason why the header feature should not be supported by >> WebView? >> >> >> There's no reason why WebView shouldn't support this feature. I'm not >> opposed to including WebView when this feature ships, given what you said >> above! >> >> >> >> On Friday, January 3, 2025 at 4:44:35 PM UTC Yoav Weiss wrote: >> >> 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/sta >> ndards-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-a >> ccess-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/ch >> romium.org/d/msgid/blink-dev/CABa1CXyMJzMmpQkZMwQUFGK8-f%3DE >> erhR2VQbTZephdmE22W%2ByA%40mail.gmail.com >> >> Intent to Experiment: https://groups.google.com/a/ch >> romium.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/ch >> romium.org/d/msgid/blink-dev/1bbe492c-8722-4dbf-8342-82f59fb >> b0bd2n%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/CAOmohS%2BUjZy0vax%2B_u31q-WTHCrRo5%2B9%2BP6W6yF8LH%3DgdJJy1A%40mail.gmail.com.