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
                <mailto:jbro...@chromium.org>,
                liviuti...@chromium.org <mailto:liviuti...@chromium.org>


                Explainer


                
https://wicg.github.io/nav-speculation/speculation-rules.html#security-xss
                
<https://wicg.github.io/nav-speculation/speculation-rules.html#security-xss>


                Specification


                
https://wicg.github.io/nav-speculation/speculation-rules.html#security-xss
                
<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
                
<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
                
<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/
                
<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
                
<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
        <mailto: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
        <mailto: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.

Reply via email to