OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/preferences.h" | 5 #include "chrome/browser/chromeos/preferences.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ash/autoclick/autoclick_controller.h" | 9 #include "ash/autoclick/autoclick_controller.h" |
10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
80 ash::Shell::GetInstance()->RemoveShellObserver(this); | 80 ash::Shell::GetInstance()->RemoveShellObserver(this); |
81 } | 81 } |
82 | 82 |
83 // static | 83 // static |
84 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) { | 84 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) { |
85 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); | 85 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); |
86 registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true); | 86 registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true); |
87 registry->RegisterBooleanPref(prefs::kAccessibilityVirtualKeyboardEnabled, | 87 registry->RegisterBooleanPref(prefs::kAccessibilityVirtualKeyboardEnabled, |
88 false); | 88 false); |
89 registry->RegisterStringPref(prefs::kLogoutStartedLast, std::string()); | 89 registry->RegisterStringPref(prefs::kLogoutStartedLast, std::string()); |
90 registry->RegisterBooleanPref(prefs::kResolveDeviceTimezoneByGeolocation, | |
91 true); | |
90 } | 92 } |
91 | 93 |
92 // static | 94 // static |
93 void Preferences::RegisterProfilePrefs( | 95 void Preferences::RegisterProfilePrefs( |
94 user_prefs::PrefRegistrySyncable* registry) { | 96 user_prefs::PrefRegistrySyncable* registry) { |
95 std::string hardware_keyboard_id; | 97 std::string hardware_keyboard_id; |
96 // TODO(yusukes): Remove the runtime hack. | 98 // TODO(yusukes): Remove the runtime hack. |
97 if (base::SysInfo::IsRunningOnChromeOS()) { | 99 if (base::SysInfo::IsRunningOnChromeOS()) { |
98 DCHECK(g_browser_process); | 100 DCHECK(g_browser_process); |
99 PrefService* local_state = g_browser_process->local_state(); | 101 PrefService* local_state = g_browser_process->local_state(); |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
308 registry->RegisterBooleanPref( | 310 registry->RegisterBooleanPref( |
309 prefs::kTouchHudProjectionEnabled, | 311 prefs::kTouchHudProjectionEnabled, |
310 false, | 312 false, |
311 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 313 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
312 | 314 |
313 registry->RegisterBooleanPref( | 315 registry->RegisterBooleanPref( |
314 prefs::kTouchVirtualKeyboardEnabled, | 316 prefs::kTouchVirtualKeyboardEnabled, |
315 false, | 317 false, |
316 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | 318 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
317 | 319 |
320 registry->RegisterBooleanPref( | |
321 prefs::kResolveTimezoneByGeolocation, true, | |
322 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); | |
323 | |
318 input_method::InputMethodSyncer::RegisterProfilePrefs(registry); | 324 input_method::InputMethodSyncer::RegisterProfilePrefs(registry); |
319 } | 325 } |
320 | 326 |
321 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { | 327 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { |
322 prefs_ = prefs; | 328 prefs_ = prefs; |
323 | 329 |
324 BooleanPrefMember::NamedChangeCallback callback = | 330 BooleanPrefMember::NamedChangeCallback callback = |
325 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); | 331 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); |
326 | 332 |
327 performance_tracing_enabled_.Init(prefs::kPerformanceTracingEnabled, | 333 performance_tracing_enabled_.Init(prefs::kPerformanceTracingEnabled, |
(...skipping 20 matching lines...) Expand all Loading... | |
348 prefs, callback); | 354 prefs, callback); |
349 | 355 |
350 xkb_auto_repeat_enabled_.Init( | 356 xkb_auto_repeat_enabled_.Init( |
351 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); | 357 prefs::kLanguageXkbAutoRepeatEnabled, prefs, callback); |
352 xkb_auto_repeat_delay_pref_.Init( | 358 xkb_auto_repeat_delay_pref_.Init( |
353 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); | 359 prefs::kLanguageXkbAutoRepeatDelay, prefs, callback); |
354 xkb_auto_repeat_interval_pref_.Init( | 360 xkb_auto_repeat_interval_pref_.Init( |
355 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); | 361 prefs::kLanguageXkbAutoRepeatInterval, prefs, callback); |
356 | 362 |
357 wake_on_wifi_ssid_.Init(prefs::kWakeOnWifiSsid, prefs, callback); | 363 wake_on_wifi_ssid_.Init(prefs::kWakeOnWifiSsid, prefs, callback); |
364 | |
365 resolve_timezone_by_geolocation_.Init(prefs::kResolveTimezoneByGeolocation, | |
366 prefs, callback); | |
358 } | 367 } |
359 | 368 |
360 void Preferences::Init(Profile* profile, const user_manager::User* user) { | 369 void Preferences::Init(Profile* profile, const user_manager::User* user) { |
361 DCHECK(profile); | 370 DCHECK(profile); |
362 DCHECK(user); | 371 DCHECK(user); |
363 PrefServiceSyncable* prefs = PrefServiceSyncable::FromProfile(profile); | 372 PrefServiceSyncable* prefs = PrefServiceSyncable::FromProfile(profile); |
364 // This causes OnIsSyncingChanged to be called when the value of | 373 // This causes OnIsSyncingChanged to be called when the value of |
365 // PrefService::IsSyncing() changes. | 374 // PrefService::IsSyncing() changes. |
366 prefs->AddObserver(this); | 375 prefs->AddObserver(this); |
367 user_ = user; | 376 user_ = user; |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
602 int features = wake_on_wifi_ssid_.GetValue() ? | 611 int features = wake_on_wifi_ssid_.GetValue() ? |
603 WakeOnWifiManager::WAKE_ON_SSID : WakeOnWifiManager::WAKE_ON_NONE; | 612 WakeOnWifiManager::WAKE_ON_SSID : WakeOnWifiManager::WAKE_ON_NONE; |
604 // The flag enables wake on packets but doesn't update a preference. | 613 // The flag enables wake on packets but doesn't update a preference. |
605 if (base::CommandLine::ForCurrentProcess()-> | 614 if (base::CommandLine::ForCurrentProcess()-> |
606 HasSwitch(switches::kWakeOnPackets)) { | 615 HasSwitch(switches::kWakeOnPackets)) { |
607 features |= WakeOnWifiManager::WAKE_ON_PACKET; | 616 features |= WakeOnWifiManager::WAKE_ON_PACKET; |
608 } | 617 } |
609 WakeOnWifiManager::Get()->OnPreferenceChanged( | 618 WakeOnWifiManager::Get()->OnPreferenceChanged( |
610 static_cast<WakeOnWifiManager::WakeOnWifiFeature>(features)); | 619 static_cast<WakeOnWifiManager::WakeOnWifiFeature>(features)); |
611 } | 620 } |
621 | |
622 if (pref_name == prefs::kResolveTimezoneByGeolocation && | |
623 reason != REASON_ACTIVE_USER_CHANGED) { | |
624 const bool value = resolve_timezone_by_geolocation_.GetValue(); | |
625 if (user_is_owner) { | |
626 g_browser_process->local_state()->SetBoolean( | |
627 prefs::kResolveDeviceTimezoneByGeolocation, value); | |
628 } | |
629 if (user_is_primary_) { | |
630 if (value == true) { | |
Bernhard Bauer
2015/01/05 10:22:33
== true isn't necessary.
Alexander Alekseev
2015/01/15 18:59:02
Done.
| |
631 g_browser_process->platform_part()->timezone_resolver()->Start(); | |
632 } else { | |
633 g_browser_process->platform_part()->timezone_resolver()->Stop(); | |
634 } | |
635 } | |
636 } | |
612 } | 637 } |
613 | 638 |
614 void Preferences::OnIsSyncingChanged() { | 639 void Preferences::OnIsSyncingChanged() { |
615 DVLOG(1) << "OnIsSyncingChanged"; | 640 DVLOG(1) << "OnIsSyncingChanged"; |
616 ForceNaturalScrollDefault(); | 641 ForceNaturalScrollDefault(); |
617 } | 642 } |
618 | 643 |
619 void Preferences::ForceNaturalScrollDefault() { | 644 void Preferences::ForceNaturalScrollDefault() { |
620 DVLOG(1) << "ForceNaturalScrollDefault"; | 645 DVLOG(1) << "ForceNaturalScrollDefault"; |
621 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 646 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
693 touch_hud_projection_enabled_.SetValue(enabled); | 718 touch_hud_projection_enabled_.SetValue(enabled); |
694 } | 719 } |
695 | 720 |
696 void Preferences::ActiveUserChanged(const user_manager::User* active_user) { | 721 void Preferences::ActiveUserChanged(const user_manager::User* active_user) { |
697 if (active_user != user_) | 722 if (active_user != user_) |
698 return; | 723 return; |
699 ApplyPreferences(REASON_ACTIVE_USER_CHANGED, ""); | 724 ApplyPreferences(REASON_ACTIVE_USER_CHANGED, ""); |
700 } | 725 } |
701 | 726 |
702 } // namespace chromeos | 727 } // namespace chromeos |
OLD | NEW |