| 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 |