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.