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 Web Feature ID 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? 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 (eg links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (eg, 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. -- 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/68cbd396.710a0220.35905a.01ff.GAE%40google.com.