Chromium Code Reviews| Index: chrome/browser/browser_process_platform_part_chromeos.cc |
| diff --git a/chrome/browser/browser_process_platform_part_chromeos.cc b/chrome/browser/browser_process_platform_part_chromeos.cc |
| index 9ae7863744c1f7a3376b9ef05e2fd6629ce9fdf4..a4362fe91d31277ee4f12d7b9d8e35f872d09125 100644 |
| --- a/chrome/browser/browser_process_platform_part_chromeos.cc |
| +++ b/chrome/browser/browser_process_platform_part_chromeos.cc |
| @@ -12,16 +12,37 @@ |
| #include "chrome/browser/chromeos/login/session/chrome_session_manager.h" |
| #include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h" |
| #include "chrome/browser/chromeos/memory/oom_priority_manager.h" |
| +#include "chrome/browser/chromeos/net/delay_network_call.h" |
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| #include "chrome/browser/chromeos/settings/cros_settings.h" |
| #include "chrome/browser/chromeos/system/automatic_reboot_manager.h" |
| #include "chrome/browser/chromeos/system/device_disabling_manager.h" |
| #include "chrome/browser/chromeos/system/device_disabling_manager_default_delegate.h" |
| +#include "chrome/browser/chromeos/system/timezone_util.h" |
| #include "chrome/browser/profiles/profile.h" |
| +#include "chromeos/geolocation/simple_geolocation_provider.h" |
| #include "components/session_manager/core/session_manager.h" |
| #include "components/user_manager/user_manager.h" |
| +namespace { |
| + |
| +// This is a callable object to mimic chromeos::DelayNetworkCall |
| +class DelayNetworkCallWithDelay { |
|
Bernhard Bauer
2015/01/05 10:22:32
Could you do this with a static method DelayNetwor
Alexander Alekseev
2015/01/15 18:59:02
Done.
|
| + public: |
| + explicit DelayNetworkCallWithDelay(base::TimeDelta delay) : delay_(delay) {} |
| + |
| + void Run(const base::Closure& callback) { |
| + chromeos::DelayNetworkCall(callback, delay_); |
| + } |
| + |
| + private: |
| + const base::TimeDelta delay_; |
| + DISALLOW_COPY_AND_ASSIGN(DelayNetworkCallWithDelay); |
| +}; |
| + |
| +} // anonymous namespace |
| + |
| BrowserProcessPlatformPart::BrowserProcessPlatformPart() |
| : created_profile_helper_(false) { |
| } |
| @@ -107,6 +128,20 @@ BrowserProcessPlatformPart::browser_policy_connector_chromeos() { |
| g_browser_process->browser_policy_connector()); |
| } |
| +chromeos::TimeZoneResolver* BrowserProcessPlatformPart::timezone_resolver() { |
| + if (!timezone_resolver_.get()) { |
| + timezone_resolver_.reset(new chromeos::TimeZoneResolver( |
| + g_browser_process->system_request_context(), |
| + chromeos::SimpleGeolocationProvider::DefaultGeolocationProviderURL(), |
| + base::Bind(&chromeos::system::ApplyTimeZone), |
| + base::Bind(&DelayNetworkCallWithDelay::Run, |
| + base::Owned(new DelayNetworkCallWithDelay( |
| + base::TimeDelta::FromMilliseconds( |
| + chromeos::kDefaultNetworkRetryDelayMS)))))); |
| + } |
| + return timezone_resolver_.get(); |
| +} |
| + |
| void BrowserProcessPlatformPart::StartTearDown() { |
| profile_helper_.reset(); |
| } |