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

Reply via email to