mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2024-12-12 09:37:37 +01:00
e9bf3cdb98
This change adds basic Chrome runtime implementations for CefBrowserContext and CefBrowserPlatformDelegate. A Chrome browser window with default frame and styling can now be created using CefBrowserHost::CreateBrowser and some CefClient callbacks will be triggered via the WebContentsObserver implementation in CefBrowserHostImpl. Any additional browser windows created via the Chrome UI will be unmanaged by CEF. The application message loop will block until all browser windows have been closed by the user.
53 lines
2.2 KiB
Diff
53 lines
2.2 KiB
Diff
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 <gtk/gtk.h>
|
|
#include <stddef.h>
|
|
|
|
+#undef Success
|
|
+
|
|
#include <memory>
|
|
#include <set>
|
|
|