Chromium Code Reviews| 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 002bf0986a24b368c35b31d613d17aab5bab3d22..dd0c0f825dce6d8d905b8037c4d6f8fde5ae1d41 100644 |
| --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
| +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
| @@ -66,7 +66,6 @@ |
| #include "chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h" |
| #include "chrome/browser/chromeos/settings/device_settings_service.h" |
| #include "chrome/browser/chromeos/settings/owner_key_util.h" |
| -#include "chrome/browser/chromeos/system/statistics_provider.h" |
| #include "chrome/browser/chromeos/system_key_event_listener.h" |
| #include "chrome/browser/chromeos/upgrade_detector_chromeos.h" |
| #include "chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.h" |
| @@ -99,6 +98,7 @@ |
| #include "chromeos/network/network_change_notifier_chromeos.h" |
| #include "chromeos/network/network_change_notifier_factory_chromeos.h" |
| #include "chromeos/network/network_handler.h" |
| +#include "chromeos/system/statistics_provider.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/notification_service.h" |
| #include "content/public/browser/power_save_blocker.h" |
| @@ -385,7 +385,9 @@ void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() { |
| // Initialize the statistics provider, which will ensure that the Chrome |
| // channel info is read and made available early. |
| - system::StatisticsProvider::GetInstance()->Init(); |
| + system::StatisticsProvider::Initialize( |
| + content::BrowserThread::GetMessageLoopProxyForThread( |
| + content::BrowserThread::IO)); |
|
satorux1
2013/10/02 01:36:55
Did you mean FILE? IO is not for file IO.
stevenjb
2013/10/03 01:17:23
Yes, thanks. That still gets me every time.
Done.
|
| #if defined(GOOGLE_CHROME_BUILD) |
| const char kChromeOSReleaseTrack[] = "CHROMEOS_RELEASE_TRACK"; |
| @@ -426,8 +428,11 @@ void ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() { |
| CrasAudioHandler::Initialize( |
| AudioDevicesPrefHandler::Create(g_browser_process->local_state())); |
| - if (!StartupUtils::IsOobeCompleted()) |
| - system::StatisticsProvider::GetInstance()->LoadOemManifest(); |
| + // Start loading machine statistics here. StatisticsProvider::Shutdown() |
| + // will ensure that loading is aborted on early exit. |
| + bool load_oem_statistics = !StartupUtils::IsOobeCompleted(); |
| + system::StatisticsProvider::GetInstance()->StartLoadingMachineStatistics( |
| + load_oem_statistics); |
| base::FilePath downloads_directory; |
| CHECK(PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &downloads_directory)); |
| @@ -579,13 +584,6 @@ void ChromeBrowserMainPartsChromeos::PostProfileInit() { |
| UserManager::Get()->RestoreActiveSessions(); |
| } |
| - // Start loading the machine statistics. Note: if we start loading machine |
| - // statistics early in PreEarlyInitialization() then the crossystem tool |
| - // sometimes hangs for unknown reasons, see http://crbug.com/167671. |
| - // Also we must start loading no later than this point, because login manager |
| - // may call GetMachineStatistic() during startup, see crbug.com/170635. |
| - system::StatisticsProvider::GetInstance()->StartLoadingMachineStatistics(); |
| - |
| // Tests should be able to tune login manager before showing it. |
| // Thus only show login manager in normal (non-testing) mode. |
| if (!parameters().ui_task || |
| @@ -749,6 +747,7 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() { |
| MagnificationManager::Shutdown(); |
| AccessibilityManager::Shutdown(); |
| + system::StatisticsProvider::Shutdown(); |
| // Let the UserManager and WallpaperManager unregister itself as an observer |
| // of the CrosSettings singleton before it is destroyed. This also ensures |