On 9/18/25 5:54 a.m., Philip Jägenstedt wrote:

Some additional context. Upgrading ICU can break sites and it cannot be done with a flag because of the size of the library (two copies would be needed). To mitigate the risk, we'd like to use the Blink launch process going forward. Where we can identify a risk ahead of time, we can add a targeted flag for that, as we've done for Italian number formatting here.

On Thu, Sep 18, 2025 at 11:40 AM Chromestatus <ad...@cr-status.appspotmail.com> wrote:

    *Contact emails*
    foo...@chromium.org, ko...@chromium.org

    *Explainer*
    None

    *Specification*
    https://tc39.es/ecma402

    *Design docs*

    https://unicode-org.github.io/icu/download/77.html
    https://cldr.unicode.org/downloads/cldr-46
    https://www.unicode.org/versions/Unicode16.0.0

    *Summary*
    ICU is not a feature itself, but the third-party library we use
    for general Unicode support. We are using the Blink launch process
    because there is web compat risk and security considerations. The
    upgrade is from ICU 74.2 to ICU 77.1, the current latest release.
    ICU 77 contains CLDR 46 and other changes to support Unicode 16.
    The web-exposed changes are mainly the Intl and RegExp APIs, IDNA
    rules for URLs, and text segmentation. Intl and RegExp (V8): Lots
    of small changes. The change of Italian number formatting is the
    riskiest and has a dedicated flag, see compat risk section. IDNA:
    Generally more things are allowed, and this upgrade improves our
    overall test results in WPT. Text segmentation: The most
    interesting change is better Japanese line breaking when using
    `word-break: auto-phrase`, related to
    https://chromestatus.com/feature/5133892532568064. All test
    changes are explained in
    
https://docs.google.com/document/d/1lrfJJmWvLXYPYSYlxE3mXTgDZI9U1bw2FrJYrDorgqE/edit?usp=sharing

This doc mentions changes to "added comma in en-GB in a date format" - where's the best place to see what that change looks like? This kind of change sounds pretty similar to https://issues.chromium.org/issues/40256057 (or go/omg-1414292-pm if you can read it (apologies to non-googlers)), and the type of things to easily break regular expressions.



    *Blink component*
    Blink>JavaScript>Internationalization
    
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EJavaScript%3EInternationalization%22>

    *Web Feature ID*
    intl <https://webstatus.dev/features/intl>

    *TAG review*
    None

    *TAG review status*
    Not applicable

    *Risks*


    *Interoperability and Compatibility*
    ICU upgrades have non-trivial web compat risk and have broken
    sites in the past. These steps have been taken to reduce the risk
    of this upgrade: - Asked Mozilla about regressions they got when
    upgrading - Added webexposed tests for common locales:
    
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/webexposed/resources/intl-locales.js
    - Explained all test changes we see in Chromium and V8:
    
https://docs.google.com/document/d/1lrfJJmWvLXYPYSYlxE3mXTgDZI9U1bw2FrJYrDorgqE/edit?usp=sharing
    The biggest risk is probably the change for Italian number
    formatting, which has generated bugs and discussion for both
    Firefox and iOS:
    https://bugzilla.mozilla.org/show_bug.cgi?id=1940923
    https://stackoverflow.com/q/79621903 A flag was added for this in
    V8, to be used as a Finch kill switch for this specific behavior.

    /Gecko/:
    Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=1954425)

    /WebKit/: N/A For Safari, ICU is part of the OS. It looks like iOS
    18.5 upgraded to ICU 76, which includes most of the changes.

    /Web developers/: No signals

    /Other signals/:

    *Security*
    There are some changes to IDNA in
    https://unicode-org.github.io/icu/download/76.html: "The handling
    of UseSTD3ASCIIRules was simplified. Some existing characters
    changed from disallowed (when that was only for compatibility with
    long-obsolete IDNA2003) to valid." All IDNA-related changes are
    explained here:
    
https://docs.google.com/document/d/1lrfJJmWvLXYPYSYlxE3mXTgDZI9U1bw2FrJYrDorgqE/edit?usp=sharing

    *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 special risk for WebView, but note that this
    cannot be put behind a flag due to the size of the dependency. A
    flag was added for the change deemed the riskiest, Italian number
    formatting.



    *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>?*
    NoICU isn't tested primarily through WPT, but a few tests are
    affected:
    
https://docs.google.com/document/d/1lrfJJmWvLXYPYSYlxE3mXTgDZI9U1bw2FrJYrDorgqE/edit?tab=t.0#bookmark=id.lm58eue6rpml
    ICU has a large impact on Test262 results which can be seen here:
    https://chromium-review.googlesource.com/c/v8/v8/+/6586986

    *Flag name on about://flags*
    None

    *Finch feature name*
    None

    *Non-finch justification*
    We cannot ship two copies of ICU and switch with a flag as ICU is
    a very large library. Instead we have carefully analyzed test
    changes and added a flag for the risky change that we could
    identify in V8:
    https://chromium-review.googlesource.com/c/v8/v8/+/6944304 That
    flag can be controlled with Finch.

    *Rollout plan*
    Will ship enabled for all users

    *Requires code in //chrome?*
    False

    *Tracking bug*
    https://crbug.com/421834885

    *Sample links*

    https://mathiasbynens.github.io/caniunicode

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



    *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/5143313833000960?gate=5082343567785984

    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/CAARdPYe82rZ8OMa%3DSju64AwoF7cQtL%3DhkwiwJWX_%3D3Sr_kSStA%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYe82rZ8OMa%3DSju64AwoF7cQtL%3DhkwiwJWX_%3D3Sr_kSStA%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/971ede51-211e-4448-9c2d-5ab35dc443bc%40chromium.org.

Reply via email to