Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embedder should prevent engine initialization if the ICU data file is not provided #40103

Open
chinmaygarde opened this issue Sep 9, 2019 · 0 comments
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

Comments

@chinmaygarde
Copy link
Member

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.

@chinmaygarde chinmaygarde added engine flutter/engine repository. See also e: labels. e: embedder Users of the Embedder API labels Sep 9, 2019
@Hixie Hixie added this to the Stretch Goals milestone Jan 8, 2020
@Hixie Hixie added the a: quality A truly polished experience label Jan 8, 2020
@Hixie Hixie changed the title [embedder] Prevent engine initialization if the ICU data file is not provided. Embedder should prevent engine initialization if the ICU data file is not provided Jan 8, 2020
@kf6gpe kf6gpe added the P3 Issues that are less important to the Flutter project label May 29, 2020
@Hixie Hixie removed this from the - milestone Aug 17, 2020
@flutter-triage-bot flutter-triage-bot bot added team-engine Owned by Engine team triaged-engine Triaged by Engine team labels Jul 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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
Projects
None yet
Development

No branches or pull requests

4 participants