LGTM3 On Wed, Oct 9, 2024 at 10:30 AM Mike Taylor <miketa...@chromium.org> wrote:
> Got it, thanks for confirming Domenic. > > LGTM2 > On 10/9/24 2:10 AM, Yoav Weiss (@Shopify) wrote: > > LGTM1 > > I agree that this is a web-exposed bug fix, and that the likelihood of > negative impact here at this stage of the feature's life is slim. > > On Wednesday, October 9, 2024 at 4:44:10 AM UTC+2 Domenic Denicola wrote: > >> (Note: feature owner hat on, API owner hat off.) >> >> On Wed, Oct 9, 2024 at 11:24 AM Mike Taylor <miketa...@chromium.org> >> wrote: >> >>> >>> On 10/8/24 1:05 PM, Liviu Tinta wrote: >>> >>> Contact emails dome...@chromium.org, jbro...@chromium.org, >>> liviuti...@chromium.org >>> >>> Explainer >>> https://wicg.github.io/nav-speculation/speculation-rules.html#security-xss >>> >>> Specification >>> https://wicg.github.io/nav-speculation/speculation-rules.html#security-xss >>> >>> Summary >>> >>> This is somewhat of a bug-fix, but it's a web-exposed bug fix which >>> deserves full web platform security review, so we're using the Intent to >>> Ship process. When we initially shipped the Speculation-Rules header, we >>> reused much of the architecture from the <script type=speculationrules> >>> implementation, and thus it was blocked by CSP policies that blocked >>> <script> elements. This has caused some friction among web developers >>> adopting the Speculation-Rules header, who expected CSP to only apply to >>> <script>s. After consulting with Google and Chrome security teams, we >>> realized our initial implementation was a mistake, as CSP's script policies >>> are meant to protect against injection of scripts into HTML, and the CSP >>> threat model doesn't relate to HTTP headers. As such, we're updating the >>> integration between speculation rules and CSP so that CSP only applies to >>> <script type=speculationrules>, and not to the Speculation-Rules header. >>> >>> >>> Blink component Internals>Preload >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3EPreload> >>> >>> TAG review None >>> >>> TAG review status Not applicable >>> >>> Risks >>> >>> >>> Interoperability and Compatibility >>> >>> None >>> >>> Are there failure modes/compat implications y'all can think of by us >>> sending the header where it was previously blocked? I can't think of >>> anything, but you've probably thought about this for much longer than I >>> have over the past 5 mins. >>> >> >> This actually doesn't send any new headers. The website is sending the >> Speculation-Rules request header to us, the browser. The question is >> whether the browser then processes it, and proceeds with performing >> speculative loads. So I guess the question is, are there any failure >> modes/compat implications of doing new speculative loads which were >> previously blocked? >> >> We're pretty confident there are no such compat implications: >> >> - On a general level, speculative loading is a progressive >> enhancement. Sites that try to use it are coded to be resilient to it >> happening, or not. >> - On a specific level, somewhere very close to 100% of the usage of >> the Speculation-Rules header comes from Cloudflare's recent Speed Brain >> launch, and we know that they are prepared for this. >> >> >> >>> >>> >>> >>> *Gecko*: N/A >>> >>> *WebKit*: N/A >>> >>> *Web developers*: No signals >>> >>> *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? >>> >>> This feature changes the behavior of existing APIs. The Finch killswitch >>> is ExemptSpeculationRulesHeaderFromCSP. >>> >>> >>> Debuggability >>> >>> Developers can check if the speculation rules specified via >>> Speculation-Rules header, in the presence of a strict >>> Content-Security-Policy is loaded successfully in DevTools via existing CSP >>> DevTools support. >>> >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, ChromeOS, Android, and Android WebView)? No >>> >>> Is WebView the outlier here? >>> >> >> Yes. >> >> >>> >>> >>> 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/speculation-rules?label=experimental&label=master&aligned >>> >>> >>> Flag name on chrome://flags None >>> >>> Finch feature name ExemptSpeculationRulesHeaderFromCSP >>> >>> Requires code in //chrome? False >>> >>> Measurement >>> https://chromestatus.com/metrics/feature/timeline/popularity/4394 >>> >>> Availability expectation Feature is available only in Chromium browsers >>> for the foreseeable future. >>> >>> Adoption expectation Feature is used by specific partner(s) to provide >>> functionality within 12 months of launch in Chrome. >>> >>> Adoption plan Speculation-Rules header was adopted by Cloudflare for >>> the Product Speed Brain: >>> https://developers.cloudflare.com/speed/optimization/content/speed-brain/ >>> >>> Non-OSS dependencies >>> >>> Does the feature depend on any code or APIs outside the Chromium open >>> source repository and its open-source dependencies to function? >>> No. >>> >>> Estimated milestones >>> Shipping on desktop 131 >>> Shipping on Android 131 >>> Shipping on WebView 131 >>> >>> Anticipated spec changes >>> >>> Open questions about a feature may be a source of future web compat or >>> interop 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 >>> >>> Link to entry on the Chrome Platform Status >>> https://chromestatus.com/feature/5123809745829888?gate=5122300803022848 >>> -- >>> 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/CAHaAqY%2BbN7tWR_QqeHAypQwEXtG4%2BcvNciYF%2B%2BqDBko%2BjTajTA%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHaAqY%2BbN7tWR_QqeHAypQwEXtG4%2BcvNciYF%2B%2BqDBko%2BjTajTA%40mail.gmail.com?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 on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b94260c7-f9ce-424f-b153-06477edc9f9f%40chromium.org >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b94260c7-f9ce-424f-b153-06477edc9f9f%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 on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/92ec918f-5831-479e-b5b4-3a7dd27fe709%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/92ec918f-5831-479e-b5b4-3a7dd27fe709%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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2Nrgd-C2-M0gWTHcy4iCPwca8Kj5F5tPo_wxdpCAu6pxw%40mail.gmail.com.