From 55f2a780a86e7e59f9f4cade7f5105ce3cb0717e Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 26 Jul 2022 12:54:54 -0500 Subject: [PATCH] fix: crash on startup in X11 Fixes #34996. --- 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);