Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Unified Diff: chrome/browser/chromeos/chrome_browser_main_chromeos.cc

Issue 14200028: Make CrosSettings and DeviceSettingsService non Lazy instances (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/chrome_browser_main_chromeos.cc
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index d628d9093a639d5f59f635221eba5b9de65ce316..ed6edde12fa4d518f96b6e8ab5fed44d5dadc95e 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -326,8 +326,10 @@ class DBusServices {
}
// Initialize the device settings service so that we'll take actions per
- // signals sent from the session manager.
- DeviceSettingsService::Get()->Initialize(
+ // signals sent from the session manager. This needs to happen before
+ // g_browser_process initializes BrowserPolicyConnector.
+ DeviceSettingsService::Initialize();
+ DeviceSettingsService::Get()->SetSessionManager(
DBusThreadManager::Get()->GetSessionManagerClient(),
OwnerKeyUtil::Create());
chromeos::ConnectivityStateHelper::Initialize();
@@ -738,8 +740,10 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
if (NetworkPortalDetector::IsEnabledInCommandLine() && detector)
detector->Shutdown();
- // Tell DeviceSettingsService to stop talking to session_manager.
- DeviceSettingsService::Get()->Shutdown();
+ // Tell DeviceSettingsService to stop talking to session_manager. Do not
+ // shutdown DeviceSettingsService yet, it might still be accessed by
+ // BrowserPolicyConnector (owned by g_browser_process).
+ DeviceSettingsService::Get()->UnsetSessionManager();
// We should remove observers attached to D-Bus clients before
// DBusThreadManager is shut down.
@@ -793,6 +797,12 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
ChromeBrowserMainPartsLinux::PostMainMessageLoopRun();
}
+void ChromeBrowserMainPartsChromeos::PostDestroyThreads() {
+ ChromeBrowserMainPartsLinux::PostDestroyThreads();
+ // Destroy DeviceSettingsService after g_browser_process.
+ DeviceSettingsService::Shutdown();
+}
+
void ChromeBrowserMainPartsChromeos::SetupPlatformFieldTrials() {
SetupZramFieldTrial();
}
« no previous file with comments | « chrome/browser/chromeos/chrome_browser_main_chromeos.h ('k') | chrome/browser/chromeos/drive/drive_system_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698