LGTM2

/Daniel

On 2025-12-10 10:24, Yoav Weiss (@Shopify) wrote:
LGTM1

This feels like a pile of bug fixes. The fact that we have a flag in place makes me confident that even if this breaks in the wild, we'd be able to quickly revert and handle it.

On Monday, December 8, 2025 at 2:19:51 PM UTC+1 Daniel Vogelheim wrote:

    Hi Daniel, et al.,

    Unfortunately, I don't have a nice document with the changes. The
    WPT suite is quite thorough, however, and can provide us with a
    canonical list of observable differences: The TT-related test
    differences between our current stable version without the flag
    (i.e., implementation of the old spec) vs the current version with
    experimental flags enabled
    
<https://wpt.fyi/results/trusted-types?sha=80ed8d6999&label=master&max-count=1&product=chrome%5Bstable%5D&product=chrome%5Bexperimental%5D>.

    The changes are a fairly large grab bag of editorial changes and
    clarifications, where the original spec -- written as a "monkey
    patch" for HTML -- was incomplete or inconsistent. The intent of
    the changes was always to keep the existing behaviour, but to fill
    in under-specified or inconsistent bits. The "large" changes fall
    into three buckets:

      * Error reports (via CSPViolationException or CSP error
        reporting) contain the "sink name", usually the element +
        attribute name. These have changed in quite a few cases.
          o This
            
<https://wpt.fyi/results/trusted-types/set-attributes-require-trusted-types-default-policy.html?sha=80ed8d6999&label=master&max-count=1&product=chrome%5Bstable%5D&product=chrome%5Bexperimental%5D>
 test
            would be a good example. The original "sink names" we used
            were fairly ad-hoc. E.g. when calling
            `setAttribute("onclick", ...)` we'd report "Element
            setAttribute" as the sink. The current spec wants this to
            be "Element onclick", which admittedly makes a lot more sense.
      * The order of checks within a DOM method, i.e., when exactly
        the TT check is run, has now been properly specified. This is
        oftentime observable when you have competing error conditions.
          o This CL
            <https://chromium-review.googlesource.com/c/chromium/src/+/6243963>
            would be a good example. Note that the implementation
            change only moved a few lines of code around, but fixed a
            fairly large number of WPT tests in the process.
      * Trusted Types (when enabled) mostly just blocks invocation of
        some DOM methods on some elements/attributes, but it also
        allows you to query on which attributes it would do so. These
        "metadata" functions have been more thoroughly specified,
        especially with respect to namespaces.
          o These functions were originally somewhat underspecified.
            The updated spec is a lot more clear, and our
            implementation adapts to this. This test
            
<https://wpt.fyi/results/trusted-types/TrustedTypePolicyFactory-getAttributeType.html?sha=80ed8d6999&label=master&max-count=1&product=chrome%5Bstable%5D&product=chrome%5Bexperimental%5D>
            would be a good example.

    The fact that Safari launched their version of TT
    <https://webkit.org/blog/17333/webkit-features-in-safari-26-0/#web-api>
    without much notice of these differences makes me quite confident
    that websites aren't inadvertently relying on them.

    All implementation changes are tracked in the tracking bug
    <http://issues.chromium.org/issues/330516530>.


    Daniel

    On Fri, Dec 5, 2025 at 11:00 PM Daniel Bratell
    <[email protected]> wrote:

        Is there a diff-document or changelog or something else that
        can document what the actual change is? You say that "some
        [...] may be developer observable", and I guess it is those
        changes that matter here, but what are they?

        /Daniel

        On 2025-12-04 15:49, Chromestatus wrote:
        *Contact emails*
        [email protected]

        *Specification*
        https://html.spec.whatwg.org/#:~:text=Trusted%20Types
        <https://html.spec.whatwg.org/#:~:text=Trusted%20Types>

        *Summary*
        Trusted Types
        (https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API
        <https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API>)
        was originally implemented and launched in Chromium in 2019,
        and has since found use in numerous websites. It has recently
        gained interest from other browser vendors. The Trusted Type
        spec was co-written as a "monkey patch" spec along with our
        original implementation. It now receives fresh attention as
        others are trying to implement the same spec. It has now been
        "upstreamed" into HTML + DOM (plus a bit of CSP). As part of
        that process, various inconsistencies are being identified
        and fixed. Some of these fixes may be developer observable.
        This intent is to update our implementation to match the
        spec, as it's upstreamed into HTML. Meanwhile, WebKit has
        launched their implementation of the updated Trusted Types
        spec, which gives us high confidence that this update is
        highly web compatible.

        *Blink component*
        Blink>SecurityFeature>TrustedTypes
        
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESecurityFeature%3ETrustedTypes%22>

        *Web Feature ID*
        trusted-types <https://webstatus.dev/features/trusted-types>

        *Motivation*
        The Trusted Types spec has been upstreamed into HTML, with
        some minor cleanups and changes. Our implementation should
        follow the updated spec to ensure cross-browser
        compatibility. Spec:
        https://w3c.github.io/trusted-types/dist/spec/
        <https://w3c.github.io/trusted-types/dist/spec/> +
        https://html.spec.whatwg.org/

        *Initial public proposal*
        /No information provided/

        *TAG review*
        /No information provided/

        *TAG review status*
        Not applicable

        *Risks*


        *Interoperability and Compatibility*
        The goal is to achieve full cross-browser interoperability.
        Meanwhile, both WebKit and Firefox have enabled their version
        -- at least in testing builds -- without any major
        incompatibility reports. This makes us rather confident that
        the compability risk is low.

        /Gecko/:
        Positive (https://github.com/mozilla/standards-positions/issues/20
        <https://github.com/mozilla/standards-positions/issues/20>) Firefox
        has enabled their version in Nightly:
        https://www.firefox.com/en-US/firefox/145.0a1/releasenotes/
        <https://www.firefox.com/en-US/firefox/145.0a1/releasenotes/>

        /WebKit/:
        Support (https://github.com/WebKit/standards-positions/issues/186
        <https://github.com/WebKit/standards-positions/issues/186>) WebKit
        has launched their version:
        
https://developer.apple.com/documentation/safari-release-notes/safari-26-release-notes#New-Features
        
<https://developer.apple.com/documentation/safari-release-notes/safari-26-release-notes#New-Features>

        /Web developers/: Positive

        /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?

        /No information provided/


        *Debuggability*
        /No information provided/

        *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/trusted-types/
        <https://wpt.fyi/results/trusted-types/>

        *Flag name on about://flags*
        /No information provided/

        *Finch feature name*
        TrustedTypesHTML

        *Rollout plan*
        Will ship enabled for all users

        *Requires code in //chrome?*
        False

        *Tracking bug*
        https://issues.chromium.org/u/1/issues/330516530
        <https://issues.chromium.org/u/1/issues/330516530>

        *Estimated milestones*
        Shipping on desktop     145
        Shipping on desktop     145
        Shipping on Android     145
        Shipping on Android     145
        Shipping on WebView     145
        Shipping on WebView     145



        *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).

        All anticipated spec changes have landed in HTML, DOM, and
        CSP specs.

        *Link to entry on the Chrome Platform Status*
        https://chromestatus.com/feature/5163792014245888?gate=5109165432504320
        
<https://chromestatus.com/feature/5163792014245888?gate=5109165432504320>

        *Links to previous Intent discussions*
        Intent to Prototype:
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6KPMLJR2%3DBqAugsavCtqSR0Z_CQOgWHjeiyzpU0crTphANQ%40mail.gmail.com
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6KPMLJR2%3DBqAugsavCtqSR0Z_CQOgWHjeiyzpU0crTphANQ%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 [email protected]
        <mailto:[email protected]>.
        To view this discussion visit
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69319f7c.050a0220.107b62.1926.GAE%40google.com
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69319f7c.050a0220.107b62.1926.GAE%40google.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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0f22c576-411e-4def-8832-eff74cd36d7e%40gmail.com.

Reply via email to