Embedder should prevent engine initialization if the ICU data file is not provided #40103
Labels
a: quality
A truly polished experience
e: embedder
Users of the Embedder API
engine
flutter/engine repository. See also e: labels.
P3
Issues that are less important to the Flutter project
team-engine
Owned by Engine team
triaged-engine
Triaged by Engine team
Currently, via the embedder API, if the Shell is initialized without an ICU data file, it is assumed that the embedder has initialized ICU before the first instantiation of the shell. The engine does not warn of this implicit fallback in non-verbose launch modes.
The model works this way because ICU setup has to be done once per process and the mobile and Fuchsia shells have access to Fuchsia directly (and may need ICU initialized before shell initialization and not have the shell blow away the embedder set configuration). This is not the case for custom embedders and embedders can only initialize ICU via the Flutter engine (ICU symbols are hidden).
If embedders forget to pass a valid ICU data file, the engine crashes during first text layout with an obscure error. This is poor UX and we should just prevent engine launches without embedder provided ICU data files.
The text was updated successfully, but these errors were encountered: