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(); |
} |