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

Unified Diff: chrome/browser/browser_process_platform_part_chromeos.cc

Issue 834073002: ChromeOS: Implement periodic timezone refresh on geolocation data. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment updated. Created 5 years, 11 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/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();
}

Powered by Google App Engine
This is Rietveld 408576698