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.

Reply via email to