diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc index c06585b15b8f..763212a575ce 100644 --- chrome/browser/chrome_browser_main.cc +++ chrome/browser/chrome_browser_main.cc @@ -49,6 +49,7 @@ #include "build/branding_buildflags.h" #include "build/build_config.h" #include "cc/base/switches.h" +#include "cef/libcef/features/runtime.h" #include "chrome/browser/about_flags.h" #include "chrome/browser/active_use_util.h" #include "chrome/browser/after_startup_task_utils.h" @@ -885,8 +886,10 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() { #if !defined(OS_ANDROID) // Create the RunLoop for MainMessageLoopRun() to use, and pass a copy of // its QuitClosure to the BrowserProcessImpl to call when it is time to exit. + // CEF with the Chrome runtime will create and manage its own RunLoop. DCHECK(!g_run_loop); - g_run_loop = new base::RunLoop; + if (!cef::IsChromeRuntimeEnabled()) + g_run_loop = new base::RunLoop; // These members must be initialized before returning from this function. // Android doesn't use StartupBrowserCreator. @@ -1580,11 +1583,13 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // This step is costly and is already measured in // Startup.StartupBrowserCreator_Start. // See the comment above for an explanation of |process_command_line|. + // Bypass StartupBrowserCreator with CEF where |g_run_loop| is nullptr. const bool started = + !g_run_loop || !process_command_line || browser_creator_->Start(parsed_command_line(), base::FilePath(), profile_, last_opened_profiles); - if (started) { + if (started && g_run_loop) { #if defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS)) // Initialize autoupdate timer. Timer callback costs basically nothing // when browser is not in persistent mode, so it's OK to let it ride on diff --git ui/gtk/select_file_dialog_impl_kde.cc ui/gtk/select_file_dialog_impl_kde.cc index f09501d6cd8e..edfc2a4c9bb5 100644 --- ui/gtk/select_file_dialog_impl_kde.cc +++ ui/gtk/select_file_dialog_impl_kde.cc @@ -6,6 +6,8 @@ #include #include +#undef Success + #include #include