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 pref_change_registarar_.Init(prefs); |
| 366 pref_change_registarar_.Add(prefs::kResolveTimezoneByGeolocation, 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 = g_browser_process->local_state()->GetBoolean( |
| 625 prefs::kResolveTimezoneByGeolocation); |
| 626 if (user_is_owner) { |
| 627 g_browser_process->local_state()->SetBoolean( |
| 628 prefs::kResolveDeviceTimezoneByGeolocation, value); |
| 629 } |
| 630 if (user_is_primary_) { |
| 631 if (value) { |
| 632 g_browser_process->platform_part()->timezone_resolver()->Start(); |
| 633 } else { |
| 634 g_browser_process->platform_part()->timezone_resolver()->Stop(); |
| 635 } |
| 636 } |
| 637 } |
612 } | 638 } |
613 | 639 |
614 void Preferences::OnIsSyncingChanged() { | 640 void Preferences::OnIsSyncingChanged() { |
615 DVLOG(1) << "OnIsSyncingChanged"; | 641 DVLOG(1) << "OnIsSyncingChanged"; |
616 ForceNaturalScrollDefault(); | 642 ForceNaturalScrollDefault(); |
617 } | 643 } |
618 | 644 |
619 void Preferences::ForceNaturalScrollDefault() { | 645 void Preferences::ForceNaturalScrollDefault() { |
620 DVLOG(1) << "ForceNaturalScrollDefault"; | 646 DVLOG(1) << "ForceNaturalScrollDefault"; |
621 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 647 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); | 719 touch_hud_projection_enabled_.SetValue(enabled); |
694 } | 720 } |
695 | 721 |
696 void Preferences::ActiveUserChanged(const user_manager::User* active_user) { | 722 void Preferences::ActiveUserChanged(const user_manager::User* active_user) { |
697 if (active_user != user_) | 723 if (active_user != user_) |
698 return; | 724 return; |
699 ApplyPreferences(REASON_ACTIVE_USER_CHANGED, ""); | 725 ApplyPreferences(REASON_ACTIVE_USER_CHANGED, ""); |
700 } | 726 } |
701 | 727 |
702 } // namespace chromeos | 728 } // namespace chromeos |
OLD | NEW |