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

Side by Side Diff: chrome/browser/chromeos/power/power_prefs.cc

Issue 793973002: chromeos: Add separate screen dim/off delays for lock screen (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/power/power_prefs.h" 5 #include "chrome/browser/chromeos/power/power_prefs.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/prefs/pref_change_registrar.h" 11 #include "base/prefs/pref_change_registrar.h"
12 #include "base/prefs/pref_service.h" 12 #include "base/prefs/pref_service.h"
13 #include "chrome/browser/browser_process.h" 13 #include "chrome/browser/browser_process.h"
14 #include "chrome/browser/chrome_notification_types.h" 14 #include "chrome/browser/chrome_notification_types.h"
15 #include "chrome/browser/chromeos/profiles/profile_helper.h" 15 #include "chrome/browser/chromeos/profiles/profile_helper.h"
16 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/profiles/profile_manager.h" 17 #include "chrome/browser/profiles/profile_manager.h"
18 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
19 #include "chromeos/dbus/power_policy_controller.h" 19 #include "chromeos/dbus/power_policy_controller.h"
20 #include "components/pref_registry/pref_registry_syncable.h" 20 #include "components/pref_registry/pref_registry_syncable.h"
21 #include "content/public/browser/notification_details.h" 21 #include "content/public/browser/notification_details.h"
22 #include "content/public/browser/notification_service.h" 22 #include "content/public/browser/notification_service.h"
23 #include "content/public/browser/notification_source.h" 23 #include "content/public/browser/notification_source.h"
24 24
25 namespace chromeos { 25 namespace chromeos {
26 26
27 PowerPrefs::PowerPrefs(PowerPolicyController* power_policy_controller) 27 PowerPrefs::PowerPrefs(PowerPolicyController* power_policy_controller)
28 : power_policy_controller_(power_policy_controller), 28 : power_policy_controller_(power_policy_controller),
29 profile_(NULL) { 29 profile_(NULL),
30 screen_is_locked_(false) {
30 notification_registrar_.Add(this, 31 notification_registrar_.Add(this,
31 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE, 32 chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
32 content::NotificationService::AllSources()); 33 content::NotificationService::AllSources());
33 notification_registrar_.Add(this, 34 notification_registrar_.Add(this,
35 chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED,
36 content::NotificationService::AllSources());
37 notification_registrar_.Add(this,
34 chrome::NOTIFICATION_SESSION_STARTED, 38 chrome::NOTIFICATION_SESSION_STARTED,
35 content::NotificationService::AllSources()); 39 content::NotificationService::AllSources());
36 notification_registrar_.Add(this, 40 notification_registrar_.Add(this,
37 chrome::NOTIFICATION_PROFILE_DESTROYED, 41 chrome::NOTIFICATION_PROFILE_DESTROYED,
38 content::NotificationService::AllSources()); 42 content::NotificationService::AllSources());
39 } 43 }
40 44
41 PowerPrefs::~PowerPrefs() { 45 PowerPrefs::~PowerPrefs() {
42 } 46 }
43 47
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 const content::NotificationSource& source, 79 const content::NotificationSource& source,
76 const content::NotificationDetails& details) { 80 const content::NotificationDetails& details) {
77 switch (type) { 81 switch (type) {
78 case chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE: { 82 case chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE: {
79 // Update |profile_| when entering the login screen. 83 // Update |profile_| when entering the login screen.
80 ProfileManager* profile_manager = g_browser_process->profile_manager(); 84 ProfileManager* profile_manager = g_browser_process->profile_manager();
81 if (!profile_manager || !profile_manager->IsLoggedIn()) 85 if (!profile_manager || !profile_manager->IsLoggedIn())
82 SetProfile(ProfileHelper::GetSigninProfile()); 86 SetProfile(ProfileHelper::GetSigninProfile());
83 break; 87 break;
84 } 88 }
89 case chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED:
90 // Update the policy in case different delays have been set for the lock
91 // screen.
92 screen_is_locked_ = *content::Details<bool>(details).ptr();
93 UpdatePowerPolicyFromPrefs();
94 break;
85 case chrome::NOTIFICATION_SESSION_STARTED: 95 case chrome::NOTIFICATION_SESSION_STARTED:
86 // Update |profile_| when entering a session. 96 // Update |profile_| when entering a session.
87 SetProfile(ProfileManager::GetPrimaryUserProfile()); 97 SetProfile(ProfileManager::GetPrimaryUserProfile());
88 break; 98 break;
89 case chrome::NOTIFICATION_PROFILE_DESTROYED: { 99 case chrome::NOTIFICATION_PROFILE_DESTROYED: {
90 // Update |profile_| when exiting a session or shutting down. 100 // Update |profile_| when exiting a session or shutting down.
91 Profile* profile = content::Source<Profile>(source).ptr(); 101 Profile* profile = content::Source<Profile>(source).ptr();
92 if (profile_ == profile) 102 if (profile_ == profile)
93 SetProfile(NULL); 103 SetProfile(NULL);
94 break; 104 break;
95 } 105 }
96 default: 106 default:
97 NOTREACHED(); 107 NOTREACHED();
98 break; 108 break;
99 } 109 }
100 } 110 }
101 111
102 void PowerPrefs::UpdatePowerPolicyFromPrefs() { 112 void PowerPrefs::UpdatePowerPolicyFromPrefs() {
103 if (!pref_change_registrar_ || !pref_change_registrar_->prefs()) { 113 if (!pref_change_registrar_ || !pref_change_registrar_->prefs()) {
104 NOTREACHED(); 114 NOTREACHED();
105 return; 115 return;
106 } 116 }
107 117
108 const PrefService* prefs = pref_change_registrar_->prefs(); 118 const PrefService* prefs = pref_change_registrar_->prefs();
109 PowerPolicyController::PrefValues values; 119 PowerPolicyController::PrefValues values;
110 values.ac_screen_dim_delay_ms = 120 values.ac_screen_dim_delay_ms =
111 prefs->GetInteger(prefs::kPowerAcScreenDimDelayMs); 121 prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenDimDelayMs :
122 prefs::kPowerAcScreenDimDelayMs);
112 values.ac_screen_off_delay_ms = 123 values.ac_screen_off_delay_ms =
113 prefs->GetInteger(prefs::kPowerAcScreenOffDelayMs); 124 prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenOffDelayMs :
125 prefs::kPowerAcScreenOffDelayMs);
114 values.ac_screen_lock_delay_ms = 126 values.ac_screen_lock_delay_ms =
115 prefs->GetInteger(prefs::kPowerAcScreenLockDelayMs); 127 prefs->GetInteger(prefs::kPowerAcScreenLockDelayMs);
116 values.ac_idle_warning_delay_ms = 128 values.ac_idle_warning_delay_ms =
117 prefs->GetInteger(prefs::kPowerAcIdleWarningDelayMs); 129 prefs->GetInteger(prefs::kPowerAcIdleWarningDelayMs);
118 values.ac_idle_delay_ms = 130 values.ac_idle_delay_ms =
119 prefs->GetInteger(prefs::kPowerAcIdleDelayMs); 131 prefs->GetInteger(prefs::kPowerAcIdleDelayMs);
120 values.battery_screen_dim_delay_ms = 132 values.battery_screen_dim_delay_ms =
121 prefs->GetInteger(prefs::kPowerBatteryScreenDimDelayMs); 133 prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenDimDelayMs :
134 prefs::kPowerBatteryScreenDimDelayMs);
122 values.battery_screen_off_delay_ms = 135 values.battery_screen_off_delay_ms =
123 prefs->GetInteger(prefs::kPowerBatteryScreenOffDelayMs); 136 prefs->GetInteger(screen_is_locked_ ? prefs::kPowerLockScreenOffDelayMs :
137 prefs::kPowerBatteryScreenOffDelayMs);
124 values.battery_screen_lock_delay_ms = 138 values.battery_screen_lock_delay_ms =
125 prefs->GetInteger(prefs::kPowerBatteryScreenLockDelayMs); 139 prefs->GetInteger(prefs::kPowerBatteryScreenLockDelayMs);
126 values.battery_idle_warning_delay_ms = 140 values.battery_idle_warning_delay_ms =
127 prefs->GetInteger(prefs::kPowerBatteryIdleWarningDelayMs); 141 prefs->GetInteger(prefs::kPowerBatteryIdleWarningDelayMs);
128 values.battery_idle_delay_ms = 142 values.battery_idle_delay_ms =
129 prefs->GetInteger(prefs::kPowerBatteryIdleDelayMs); 143 prefs->GetInteger(prefs::kPowerBatteryIdleDelayMs);
130 values.ac_idle_action = static_cast<PowerPolicyController::Action>( 144 values.ac_idle_action = static_cast<PowerPolicyController::Action>(
131 prefs->GetInteger(prefs::kPowerAcIdleAction)); 145 prefs->GetInteger(prefs::kPowerAcIdleAction));
132 values.battery_idle_action = static_cast<PowerPolicyController::Action>( 146 values.battery_idle_action = static_cast<PowerPolicyController::Action>(
133 prefs->GetInteger(prefs::kPowerBatteryIdleAction)); 147 prefs->GetInteger(prefs::kPowerBatteryIdleAction));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 202 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
189 registry->RegisterIntegerPref( 203 registry->RegisterIntegerPref(
190 prefs::kPowerBatteryIdleWarningDelayMs, 204 prefs::kPowerBatteryIdleWarningDelayMs,
191 0, 205 0,
192 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 206 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
193 registry->RegisterIntegerPref( 207 registry->RegisterIntegerPref(
194 prefs::kPowerBatteryIdleDelayMs, 208 prefs::kPowerBatteryIdleDelayMs,
195 600000, 209 600000,
196 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 210 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
197 registry->RegisterIntegerPref( 211 registry->RegisterIntegerPref(
212 prefs::kPowerLockScreenDimDelayMs,
213 30000,
214 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
215 registry->RegisterIntegerPref(
216 prefs::kPowerLockScreenOffDelayMs,
217 40000,
218 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
219 registry->RegisterIntegerPref(
198 prefs::kPowerAcIdleAction, 220 prefs::kPowerAcIdleAction,
199 PowerPolicyController::ACTION_SUSPEND, 221 PowerPolicyController::ACTION_SUSPEND,
200 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 222 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
201 registry->RegisterBooleanPref( 223 registry->RegisterBooleanPref(
202 prefs::kPowerUseAudioActivity, 224 prefs::kPowerUseAudioActivity,
203 true, 225 true,
204 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 226 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
205 registry->RegisterBooleanPref( 227 registry->RegisterBooleanPref(
206 prefs::kPowerUseVideoActivity, 228 prefs::kPowerUseVideoActivity,
207 true, 229 true,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 pref_change_registrar_->Add(prefs::kPowerAcIdleDelayMs, update_callback); 276 pref_change_registrar_->Add(prefs::kPowerAcIdleDelayMs, update_callback);
255 pref_change_registrar_->Add(prefs::kPowerBatteryScreenDimDelayMs, 277 pref_change_registrar_->Add(prefs::kPowerBatteryScreenDimDelayMs,
256 update_callback); 278 update_callback);
257 pref_change_registrar_->Add(prefs::kPowerBatteryScreenOffDelayMs, 279 pref_change_registrar_->Add(prefs::kPowerBatteryScreenOffDelayMs,
258 update_callback); 280 update_callback);
259 pref_change_registrar_->Add(prefs::kPowerBatteryScreenLockDelayMs, 281 pref_change_registrar_->Add(prefs::kPowerBatteryScreenLockDelayMs,
260 update_callback); 282 update_callback);
261 pref_change_registrar_->Add(prefs::kPowerBatteryIdleWarningDelayMs, 283 pref_change_registrar_->Add(prefs::kPowerBatteryIdleWarningDelayMs,
262 update_callback); 284 update_callback);
263 pref_change_registrar_->Add(prefs::kPowerBatteryIdleDelayMs, update_callback); 285 pref_change_registrar_->Add(prefs::kPowerBatteryIdleDelayMs, update_callback);
286 pref_change_registrar_->Add(prefs::kPowerLockScreenDimDelayMs,
287 update_callback);
288 pref_change_registrar_->Add(prefs::kPowerLockScreenOffDelayMs,
289 update_callback);
264 pref_change_registrar_->Add(prefs::kPowerAcIdleAction, update_callback); 290 pref_change_registrar_->Add(prefs::kPowerAcIdleAction, update_callback);
265 pref_change_registrar_->Add(prefs::kPowerBatteryIdleAction, update_callback); 291 pref_change_registrar_->Add(prefs::kPowerBatteryIdleAction, update_callback);
266 pref_change_registrar_->Add(prefs::kPowerLidClosedAction, update_callback); 292 pref_change_registrar_->Add(prefs::kPowerLidClosedAction, update_callback);
267 pref_change_registrar_->Add(prefs::kPowerUseAudioActivity, update_callback); 293 pref_change_registrar_->Add(prefs::kPowerUseAudioActivity, update_callback);
268 pref_change_registrar_->Add(prefs::kPowerUseVideoActivity, update_callback); 294 pref_change_registrar_->Add(prefs::kPowerUseVideoActivity, update_callback);
269 pref_change_registrar_->Add(prefs::kPowerAllowScreenWakeLocks, 295 pref_change_registrar_->Add(prefs::kPowerAllowScreenWakeLocks,
270 update_callback); 296 update_callback);
271 pref_change_registrar_->Add(prefs::kEnableAutoScreenLock, update_callback); 297 pref_change_registrar_->Add(prefs::kEnableAutoScreenLock, update_callback);
272 pref_change_registrar_->Add(prefs::kPowerPresentationScreenDimDelayFactor, 298 pref_change_registrar_->Add(prefs::kPowerPresentationScreenDimDelayFactor,
273 update_callback); 299 update_callback);
274 pref_change_registrar_->Add(prefs::kPowerUserActivityScreenDimDelayFactor, 300 pref_change_registrar_->Add(prefs::kPowerUserActivityScreenDimDelayFactor,
275 update_callback); 301 update_callback);
276 pref_change_registrar_->Add(prefs::kPowerWaitForInitialUserActivity, 302 pref_change_registrar_->Add(prefs::kPowerWaitForInitialUserActivity,
277 update_callback); 303 update_callback);
278 304
279 UpdatePowerPolicyFromPrefs(); 305 UpdatePowerPolicyFromPrefs();
280 } 306 }
281 307
282 } // namespace chromeos 308 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698