Given that this is described as "very different", I think a new I2S would be helpful. Or if you decide that's too annoying, at the very least could you write up a minimal explainer (inline is fine) that describes the diff from require-sri-for, and create a new chromestatus entry?

On 4/17/25 11:44 PM, Yoav Weiss (@Shopify) wrote:
Hey folks!

I now have a CL <https://chromium-review.googlesource.com/c/chromium/src/+/6408111> for Integrity-Policy (that also removes the require-sri-for implementation), and a PR <https://github.com/w3c/webappsec-subresource-integrity/pull/133> is being reviewed.

Should I send a new intent for this? Or can we assume that this intent is still valid, despite the now inaccurate name?

On Thu, Mar 27, 2025 at 10:04 PM Yoav Weiss (@Shopify) <yoavwe...@chromium.org> wrote:

    Thanks for reviewing!!

    In discussions with Mozilla folk, we eventually landed on a very
    different API shape
    
<https://github.com/w3c/webappsec-subresource-integrity/pull/129#issuecomment-2757716392>,
    to enable them to expand the concept of "integrity policy", rather
    than doing this as a one-off CSP directive. As a result, I'd need
    to revamp the implementation and spec. I'll let y'all know when
    it's time to reapprove (I can do that as a separate intent, if
    that would be more convenient)

    On Wed, Mar 26, 2025 at 11:02 AM Chris Harrelson
    <chris...@chromium.org> wrote:

        LGTM3

        On Tue, Mar 25, 2025 at 6:48 AM Mike Taylor
        <miketa...@chromium.org> wrote:


            On 3/24/25 10:24 PM, Domenic Denicola wrote:


            On Mon, Mar 24, 2025 at 4:37 PM Yoav Weiss (@Shopify)
            <yoavwe...@chromium.org> wrote:



                On Mon, Mar 24, 2025 at 6:45 AM Domenic Denicola
                <dome...@chromium.org> wrote:

                    Great to hear!

                    I see you've already updated the spec PR. My
                    instinct is that we should give folks a week-ish
                    to react to the new name, finish the spec review,
                    etc. What do you think?


                Normally I would think this makes perfect sense. But
                given the 136 branch point a week from now, I
                prefer one of the two options:
                * Enable the flag in 136 before it branches and
                revert in the unlikely case there's some disagreement
                on the spelling.


            This option sounds good to me. LGTM1.
            Me too, LGTM2

                * Get help from Google folks to Finch enable it in
                136 after branch point.
                Does that make sense?


                    (Also, I can't quite understand what's blocking
                    the spec PR from landing... I guess there's still
                    some discussion about whether the bar is "2
                    interested implementers" or "2 actively
                    implementing implementers"? Maybe it's worth
                    poking to see if you can get more clarity on that?)


                I believe it's held back on getting SRI L2 to FPWD
                
<https://lists.w3.org/Archives/Public/public-webappsec/2025Mar/0011.html>
                (as a future Living Standard), and then potentially
                on getting a working mode agreed on, and for the PR
                to meet it. So it may take a while to land the PR.

                +Mike West <mailto:mk...@chromium.org> - Is my
                understanding correct?


                    On Mon, Mar 24, 2025 at 2:28 PM Yoav Weiss
                    (@Shopify) <yoavwe...@chromium.org> wrote:

                        Following discussions
                        
<https://github.com/w3c/webappsec/blob/main/meetings/2025/2025-03-19-minutes.md#require-sri-for-compatibility-and-spelling>
                        at WebAppSec and the WAICT
                        
<https://docs.google.com/document/d/16-cvBkWYrKlZHXkWRFvKGEifdcMthUfv-LxIbg6bx2o/edit?tab=t.0>
                        proposal, I'm renaming the directive to
                        `integrity-required`. (CL
                        
<https://chromium-review.googlesource.com/c/chromium/src/+/6382018>)

                        That would also reduce the compatibility risk
                        to zero AFAICT.

                        On Monday, March 10, 2025 at 10:55:02 AM
                        UTC+1 Yoav Weiss wrote:

                            FWIW, I'm planning to discuss
                            
<https://github.com/w3c/webappsec/issues/668#issuecomment-2709995028>
                            a syntax change at next week's WebAppSec
                            meeting, that can help us avoid these
                            compat issues.

                            On Tue, Feb 25, 2025 at 7:54 PM Yoav
                            Weiss (@Shopify) <yoavwe...@chromium.org>
                            wrote:



                                On Tue, Feb 25, 2025 at 6:08 PM Mike
                                Taylor <miketa...@chromium.org> wrote:


                                    On 2/24/25 4:24 PM, Yoav Weiss
                                    (@Shopify) wrote:


                                    On Mon, Feb 24, 2025 at 7:18 PM
                                    Mike Taylor
                                    <miketa...@chromium.org> wrote:

                                        On 2/21/25 8:33 AM, Yoav
                                        Weiss (@Shopify) wrote:


                                        On Thursday, February 20,
                                        2025 at 1:56:59 PM UTC+1
                                        Yoav Weiss wrote:


                                            On Thursday, February
                                            20, 2025 at 11:47:00 AM
                                            UTC+1 Yoav Weiss wrote:

                                                Contact
                                                emailsyoavwe...@chromium.org

                                                
Explainerhttps://github.com/w3c/webappsec-subresource-integrity/pull/129#:~:text=for%20some%20assets.-,require%2Dsri%2Dfor%20CSP%20directive,-Subresource%2DIntegrity%20
                                                
<https://github.com/w3c/webappsec-subresource-integrity/pull/129#:~:text=for%20some%20assets.-,require%2Dsri%2Dfor%20CSP%20directive,-Subresource%2DIntegrity%20>

                                                
Specificationhttps://github.com/w3c/webappsec-subresource-integrity/pull/129
                                                
<https://github.com/w3c/webappsec-subresource-integrity/pull/129>



                                                The feature and PR
                                                were discussed
                                                
<https://github.com/w3c/webappsec/blob/main/meetings/2025/2025-02-19-minutes.md#reviving-require-sri-for>
                                                at the WebAppSec WG
                                                call.

                                                No objection beyond
                                                questions on
                                                whether we'd need
                                                to expand this to
                                                cover stylesheets
                                                as well. We'd be
                                                able to do that in
                                                the future (as a
                                                separate intent) if
                                                needed.

                                                Summary

                                                The
                                                `require-sri-for`
                                                directive gives
                                                developers the
                                                ability to assert
                                                that every resource
                                                of a given type
                                                needs to be
                                                integrity checked.
                                                If a resource of
                                                that type is
                                                attempted to be
                                                loaded without
                                                integrity metadata,
                                                that attempt will
                                                fail and trigger a
                                                CSP violation
                                                report. This intent
                                                covers the "script"
                                                value of this
                                                directive.



                                                Blink
                                                
componentBlink>SecurityFeature>ContentSecurityPolicy
                                                
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESecurityFeature%3EContentSecurityPolicy%22>

                                                TAG
                                                
reviewhttps://github.com/w3ctag/design-reviews/issues/1048
                                                
<https://github.com/w3ctag/design-reviews/issues/1048>

                                                TAG review
                                                statusPending - No
                                                response just yet



                                                Risks


                                                Interoperability
                                                and Compatibility

                                                On the
                                                compatibility front:

                                                This directive was
                                                already implemented
                                                in the past, and
                                                there are some
                                                developer docs
                                                
<https://udn.realityripple.com/docs/Web/HTTP/Headers/Content-Security-Policy/require-sri-for>
                                                that still describe
                                                it. The current PR
                                                and implementation
                                                did not diverge
                                                from the past
                                                implementation.


                                                If developers
                                                deployed the
                                                feature in the past
                                                and are now relying
                                                on it */not really
                                                working/*, that may
                                                result in
                                                surprising
                                                breakage. The
                                                HTTPArchive shows
                                                *0.0011% of page
                                                responses*(178 out
                                                of 15760519)have an
                                                existing
                                                `require-sri-for`
                                                directive. That's
                                                an upper bound -
                                                only those that
                                                enforce scripts,
                                                and have no
                                                integrity
                                                attributes on some
                                                scripts may get broken.


                                            Doing some more HA
                                            digging I found that
                                            it's 153 sites, which
                                            is not significantly
                                            different.
                                            I downloaded their URLs
                                            
<https://docs.google.com/spreadsheets/d/1NlFHLytc8lQcdP5FXXDltKEPQVE0e8oyjw9k1S-9KPI/edit?usp=sharing>
 and
                                            started going to these
                                            sites with the feature
                                            enabled.
                                            Of those 153, 22 had
                                            any blocked assets, 9
                                            had broken
                                            functionality or layout
                                            and 1 had missing ads.
                                            Non-visiblity broken
                                            but blocked sites
                                            mostly had their
                                            analytics blocked.

                                            Extrapolating that data
                                            brings us to 0.000158%
                                            for any blocked assets,
                                            and 0.000065% for
                                            broken functionality.

                                            I'm planning to reach
                                            out to the broken sites
                                            and make them aware of
                                            this change. Many of
                                            them seem to be coming
                                            from a single provider
                                            (similar site and
                                            breakage).


                                        I also found ~3500 sites
                                        that have the
                                        `require-sri-for` string in
                                        their response bodies (and
                                        hence may have it applied).
                                        I put together a script
                                        that so far scanned ~1800
                                        of them and found no
                                        blocked assets. So, it
                                        seems like the risk is very
                                        low on that front.

                                        Thanks, I appreciate you
                                        digging in to understand the
                                        possible risks. My
                                        understanding of the compat
                                        risk goes something like
                                        (please let me know if I'm
                                        missing something):

                                        1. This feature never really
                                        shipped, but was implemented
                                        behind a flag.

                                        2. Early adopter developers
                                        (or menu framework authors?)
                                        added require-sri-for for
                                        some scripts that they
                                        wanted to lock down

                                    Tiny correction: they added it
                                    to the document's CSP, not
                                    specific scripts.

                                        (to prevent 3rd-party
                                        attackers from modifying
                                        them, etc).

                                        3. Now, you actually ship
                                        the feature.

                                        That means the risks are:

                                        a) Some CDN was compromised
                                        at some point, and now some
                                        sketchy scripts will fail to
                                        load. Seems like that's
                                        security positive, even if
                                        it surprises users or
                                        developers.

                                        b) Perhaps more likely, a
                                        page was redesigned and they
                                        updated their analytics
                                        provider but didn't remember
                                        to add hashes. Now some
                                        things don't work.

                                    I suspect it's
                                    c) they added the header but
                                    never actually tested with the
                                    feature enabled, as it never
                                    shipped.

                                    It seems like they added the CSP
                                    header, but never added an
                                    "integrity" attribute to
                                    many/most of their scripts.

                                        From your sheet (which is
                                        great, thanks), it seems
                                        like largest impact is
                                        busted menus. Is this a
                                        single library? Or common
                                        pattern?

                                    It seems like a common provider.
                                    6 out of the 9 sites with issues
                                    are Canadian health/edu related
                                    sites.

                                    Breaking health/edu-releated
                                    sites is not good...

                                Indeed, although I'm not sure how
                                load-bearing they are..

                                    When broken, is it cosmetic, or
                                    are the links in the menu still
                                    accessible? (I see you're
                                    gathering contact info - let me
                                    know if you need help with that.)

                                It seems like the desktop view is
                                functional, but the mobile view's
                                hamburger menu is not working (at
                                least in some cases).

                                    Assuming we can sort out the menu
                                    breakage somehow, I think for the
                                    rest - the best we can do is roll
                                    it out and be ready to killswitch
                                    if needed.




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

                                                /WebKit/: No signal
                                                
(https://github.com/WebKit/standards-positions/issues/458
                                                
<https://github.com/WebKit/standards-positions/issues/458>)

                                                /Web developers/:
                                                Shopify is
                                                interested in this.
                                                I suspect PCIv4
                                                
<https://docs.google.com/document/d/1RcUpbpWPxXTyW0Qwczs9GCTLPD3-LcbbhL4ooBUevTM/edit?tab=t.0>
 would
                                                make some
                                                developers
                                                interested in
                                                making sure their
                                                documents' scripts
                                                have complete
                                                integrity checks.

                                                /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

                                                None



                                                Will this feature
                                                be supported on all
                                                six Blink platforms
                                                (Windows, Mac,
                                                Linux, ChromeOS,
                                                Android, and
                                                Android WebView)?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/content-security-policy/tentative/require-sri-for?label=experimental&label=master&aligned
                                                
<https://chromium-review.googlesource.com/c/chromium/src/+/5877633>



                                                Flag name on
                                                about://flagsNone

                                                Finch feature
                                                nameCSPRequireSRIFor

                                                Requires code in
                                                //chrome?False

                                                Estimated
                                                milestonesShipping
                                                on
                                                desktop135DevTrial
                                                on
                                                desktop134Shipping
                                                on
                                                Android135DevTrial
                                                on
                                                Android134Shipping
                                                on WebView135

                                                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
                                                
Statushttps://chromestatus.com/feature/5090023365672960?gate=5186570942152704
                                                
<https://chromestatus.com/feature/5090023365672960?gate=5186570942152704>

                                                Links to previous
                                                Intent
                                                discussionsIntent
                                                to Prototype:
                                                
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJUygAmobR9dRkDr%3DBWQ1h5hv2Lj3WUFN31QZF360A47A%40mail.gmail.com
                                                
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJUygAmobR9dRkDr%3DBWQ1h5hv2Lj3WUFN31QZF360A47A%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/8d3107ca-61cc-47f6-badd-8bc6a1f30145n%40chromium.org
                                        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8d3107ca-61cc-47f6-badd-8bc6a1f30145n%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/49037f78-2795-4d2e-9645-361e632c61f7n%40chromium.org
                        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/49037f78-2795-4d2e-9645-361e632c61f7n%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/0b112bbd-5132-4d64-a85f-78afb6ba3005%40chromium.org
            
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0b112bbd-5132-4d64-a85f-78afb6ba3005%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/b08e17db-d207-4053-9580-0560d7722d9e%40chromium.org.

Reply via email to