| 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 fcbd489b41a3d3e312c53547c38c58898ab34f72..aff8a887f13cd00b6c88b4e4900b4f63fd5e4778 100644
|
| --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
|
| @@ -67,7 +67,6 @@
|
| #include "chrome/browser/chromeos/settings/device_settings_service.h"
|
| #include "chrome/browser/chromeos/settings/owner_key_util.h"
|
| #include "chrome/browser/chromeos/status/data_promo_notification.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"
|
| @@ -100,6 +99,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"
|
| @@ -384,10 +384,6 @@ void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() {
|
| switches::kLoginProfile).value();
|
| }
|
|
|
| - // Initialize the statistics provider, which will ensure that the Chrome
|
| - // channel info is read and made available early.
|
| - system::StatisticsProvider::GetInstance()->Init();
|
| -
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| const char kChromeOSReleaseTrack[] = "CHROMEOS_RELEASE_TRACK";
|
| std::string channel;
|
| @@ -427,8 +423,13 @@ 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(
|
| + content::BrowserThread::GetMessageLoopProxyForThread(
|
| + content::BrowserThread::FILE),
|
| + load_oem_statistics);
|
|
|
| base::FilePath downloads_directory;
|
| CHECK(PathService::Get(chrome::DIR_DEFAULT_DOWNLOADS, &downloads_directory));
|
| @@ -580,13 +581,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 ||
|
| @@ -755,6 +749,7 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
|
|
|
| MagnificationManager::Shutdown();
|
| AccessibilityManager::Shutdown();
|
| + system::StatisticsProvider::GetInstance()->Shutdown();
|
|
|
| // Let the UserManager and WallpaperManager unregister itself as an observer
|
| // of the CrosSettings singleton before it is destroyed. This also ensures
|
|
|