| Index: chrome/browser/chromeos/preferences.cc
|
| diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc
|
| index c52e7baaadb93f8aabffa809bb27fb010f040401..4d835bf04baf1aaa6812891240a1625831a2e7cb 100644
|
| --- a/chrome/browser/chromeos/preferences.cc
|
| +++ b/chrome/browser/chromeos/preferences.cc
|
| @@ -87,6 +87,8 @@ void Preferences::RegisterPrefs(PrefRegistrySimple* registry) {
|
| registry->RegisterBooleanPref(prefs::kAccessibilityVirtualKeyboardEnabled,
|
| false);
|
| registry->RegisterStringPref(prefs::kLogoutStartedLast, std::string());
|
| + registry->RegisterBooleanPref(prefs::kResolveDeviceTimezoneByGeolocation,
|
| + true);
|
| }
|
|
|
| // static
|
| @@ -315,6 +317,10 @@ void Preferences::RegisterProfilePrefs(
|
| false,
|
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
|
|
| + registry->RegisterBooleanPref(
|
| + prefs::kResolveTimezoneByGeolocation, true,
|
| + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
|
| +
|
| input_method::InputMethodSyncer::RegisterProfilePrefs(registry);
|
| }
|
|
|
| @@ -355,6 +361,9 @@ void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) {
|
| prefs::kLanguageXkbAutoRepeatInterval, prefs, callback);
|
|
|
| wake_on_wifi_ssid_.Init(prefs::kWakeOnWifiSsid, prefs, callback);
|
| +
|
| + pref_change_registrar_.Init(prefs);
|
| + pref_change_registrar_.Add(prefs::kResolveTimezoneByGeolocation, callback);
|
| }
|
|
|
| void Preferences::Init(Profile* profile, const user_manager::User* user) {
|
| @@ -609,6 +618,23 @@ void Preferences::ApplyPreferences(ApplyReason reason,
|
| WakeOnWifiManager::Get()->OnPreferenceChanged(
|
| static_cast<WakeOnWifiManager::WakeOnWifiFeature>(features));
|
| }
|
| +
|
| + if (pref_name == prefs::kResolveTimezoneByGeolocation &&
|
| + reason != REASON_ACTIVE_USER_CHANGED) {
|
| + const bool value = g_browser_process->local_state()->GetBoolean(
|
| + prefs::kResolveTimezoneByGeolocation);
|
| + if (user_is_owner) {
|
| + g_browser_process->local_state()->SetBoolean(
|
| + prefs::kResolveDeviceTimezoneByGeolocation, value);
|
| + }
|
| + if (user_is_primary_) {
|
| + if (value) {
|
| + g_browser_process->platform_part()->timezone_resolver()->Start();
|
| + } else {
|
| + g_browser_process->platform_part()->timezone_resolver()->Stop();
|
| + }
|
| + }
|
| + }
|
| }
|
|
|
| void Preferences::OnIsSyncingChanged() {
|
|
|