From 215ae2b012c6adaf31cb5931dfc1790a199020a3 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Wed, 27 Jul 2022 11:09:11 +0200 Subject: [PATCH] fix: crash on startup in X11 (#35092) Fixes #34996. Co-authored-by: Charles Kerr --- shell/browser/electron_browser_main_parts.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/shell/browser/electron_browser_main_parts.cc b/shell/browser/electron_browser_main_parts.cc index feaa3b04fe603..5f2e3fc5a49c8 100644 --- a/shell/browser/electron_browser_main_parts.cc +++ b/shell/browser/electron_browser_main_parts.cc @@ -278,12 +278,6 @@ void ElectronBrowserMainParts::PostEarlyInitialization() { } int ElectronBrowserMainParts::PreCreateThreads() { -#if defined(USE_AURA) - if (!display::Screen::GetScreen()) { - screen_ = views::CreateDesktopScreen(); - } -#endif - if (!views::LayoutProvider::Get()) layout_provider_ = std::make_unique(); @@ -314,6 +308,14 @@ int ElectronBrowserMainParts::PreCreateThreads() { // Load resources bundle according to locale. std::string loaded_locale = LoadResourceBundle(locale); +#if defined(USE_AURA) + // NB: must be called _after_ locale resource bundle is loaded, + // because ui lib makes use of it in X11 + if (!display::Screen::GetScreen()) { + screen_ = views::CreateDesktopScreen(); + } +#endif + // Initialize the app locale. std::string app_locale = l10n_util::GetApplicationLocale(loaded_locale); ElectronBrowserClient::SetApplicationLocale(app_locale);