From 9fd6c8a1eea906675ae87009a3d079c1f68b55d6 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Mon, 29 Apr 2019 11:31:13 -0400 Subject: [PATCH] Mac: Fix build error and NetworkService startup assertion (see issue #2622). Fixes FATAL:os_crypt_mac.mm(103)] Check failed: g_key_creation_util --- cef_paths2.gypi | 1 + libcef/browser/browser_main.cc | 15 +++++++++++++++ libcef/browser/prefs/browser_prefs.cc | 7 +++++++ 3 files changed, 23 insertions(+) diff --git a/cef_paths2.gypi b/cef_paths2.gypi index 2b5f1fcfb..c919c9d90 100644 --- a/cef_paths2.gypi +++ b/cef_paths2.gypi @@ -557,6 +557,7 @@ 'tests/ceftests/process_message_unittest.cc', 'tests/ceftests/request_handler_unittest.cc', 'tests/ceftests/request_unittest.cc', + 'tests/ceftests/resource_request_handler_unittest.cc', 'tests/ceftests/routing_test_handler.cc', 'tests/ceftests/routing_test_handler.h', 'tests/ceftests/scheme_handler_unittest.cc', diff --git a/libcef/browser/browser_main.cc b/libcef/browser/browser_main.cc index 49041e7af..bb85ca2e3 100644 --- a/libcef/browser/browser_main.cc +++ b/libcef/browser/browser_main.cc @@ -21,6 +21,7 @@ #include "libcef/common/extensions/extensions_client.h" #include "libcef/common/extensions/extensions_util.h" #include "libcef/common/net/net_resource_provider.h" +#include "libcef/common/net_service/util.h" #include "base/bind.h" #include "base/message_loop/message_loop.h" @@ -60,6 +61,11 @@ #include "libcef/browser/printing/print_dialog_linux.h" #endif +#if defined(OS_MACOSX) +#include "chrome/browser/browser_process.h" +#include "components/os_crypt/os_crypt.h" +#endif + CefBrowserMainParts::CefBrowserMainParts( const content::MainFunctionParams& parameters) : BrowserMainParts(), devtools_delegate_(NULL) {} @@ -115,6 +121,15 @@ void CefBrowserMainParts::PreMainMessageLoopStart() { ui::TouchFactory::SetTouchDeviceListFromCommandLine(); #endif +#if defined(OS_MACOSX) + if (net_service::IsEnabled()) { + // Initialize the OSCrypt. + PrefService* local_state = g_browser_process->local_state(); + DCHECK(local_state); + OSCrypt::Init(local_state); + } +#endif + for (size_t i = 0; i < chrome_extra_parts_.size(); ++i) chrome_extra_parts_[i]->PreMainMessageLoopStart(); } diff --git a/libcef/browser/prefs/browser_prefs.cc b/libcef/browser/prefs/browser_prefs.cc index 5717dbbb7..2aa083b40 100644 --- a/libcef/browser/prefs/browser_prefs.cc +++ b/libcef/browser/prefs/browser_prefs.cc @@ -52,6 +52,10 @@ #include "extensions/buildflags/buildflags.h" #include "ui/base/l10n/l10n_util.h" +#if defined(OS_MACOSX) +#include "components/os_crypt/os_crypt.h" +#endif + namespace browser_prefs { const char kUserPrefsFileName[] = "UserPrefs.json"; @@ -156,6 +160,9 @@ std::unique_ptr CreatePrefService(Profile* profile, CefURLRequestContextGetter::RegisterPrefs(registry.get()); } else if (!profile) { SystemNetworkContextManager::RegisterPrefs(registry.get()); +#if defined(OS_MACOSX) + OSCrypt::RegisterLocalPrefs(registry.get()); +#endif } // Browser UI preferences.