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

Side by Side Diff: chromeos/dbus/fake_power_manager_client.cc

Issue 1206733002: ChromeOs Power Emulation Impl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated Unittest Created 5 years, 5 months 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "chromeos/dbus/fake_power_manager_client.h" 5 #include "chromeos/dbus/fake_power_manager_client.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/time/time.h" 9 #include "base/time/time.h"
10 10
11 namespace chromeos { 11 namespace chromeos {
12 namespace {
13
14 const int kDefaultBatteryLifeSpanSec = 6 * 3600; // 6 hours
15
16 } // namespace
12 17
13 FakePowerManagerClient::FakePowerManagerClient() 18 FakePowerManagerClient::FakePowerManagerClient()
14 : num_request_restart_calls_(0), 19 : num_request_restart_calls_(0),
15 num_request_shutdown_calls_(0), 20 num_request_shutdown_calls_(0),
16 num_set_policy_calls_(0), 21 num_set_policy_calls_(0),
17 num_set_is_projecting_calls_(0), 22 num_set_is_projecting_calls_(0),
18 num_pending_suspend_readiness_callbacks_(0), 23 num_pending_suspend_readiness_callbacks_(0),
19 is_projecting_(false) { 24 is_projecting_(false) {
20 } 25 }
21 26
22 FakePowerManagerClient::~FakePowerManagerClient() { 27 FakePowerManagerClient::~FakePowerManagerClient() {
23 } 28 }
24 29
25 void FakePowerManagerClient::Init(dbus::Bus* bus) { 30 void FakePowerManagerClient::Init(dbus::Bus* bus) {
31 UpdatePowerProperties(
32 50, false, power_manager::PowerSupplyProperties_BatteryState_DISCHARGING,
33 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED);
26 } 34 }
27 35
28 void FakePowerManagerClient::AddObserver(Observer* observer) { 36 void FakePowerManagerClient::AddObserver(Observer* observer) {
29 observers_.AddObserver(observer); 37 observers_.AddObserver(observer);
30 } 38 }
31 39
32 void FakePowerManagerClient::RemoveObserver(Observer* observer) { 40 void FakePowerManagerClient::RemoveObserver(Observer* observer) {
33 observers_.RemoveObserver(observer); 41 observers_.RemoveObserver(observer);
34 } 42 }
35 43
36 bool FakePowerManagerClient::HasObserver(const Observer* observer) const { 44 bool FakePowerManagerClient::HasObserver(const Observer* observer) const {
37 return false; 45 return observers_.HasObserver(observer);
38 } 46 }
39 47
40 void FakePowerManagerClient::SetRenderProcessManagerDelegate( 48 void FakePowerManagerClient::SetRenderProcessManagerDelegate(
41 base::WeakPtr<RenderProcessManagerDelegate> delegate) { 49 base::WeakPtr<RenderProcessManagerDelegate> delegate) {
42 render_process_manager_delegate_ = delegate; 50 render_process_manager_delegate_ = delegate;
43 } 51 }
44 52
45 void FakePowerManagerClient::DecreaseScreenBrightness(bool allow_off) { 53 void FakePowerManagerClient::DecreaseScreenBrightness(bool allow_off) {
46 } 54 }
47 55
48 void FakePowerManagerClient::IncreaseScreenBrightness() { 56 void FakePowerManagerClient::IncreaseScreenBrightness() {
49 } 57 }
50 58
51 void FakePowerManagerClient::SetScreenBrightnessPercent(double percent, 59 void FakePowerManagerClient::SetScreenBrightnessPercent(double percent,
52 bool gradual) { 60 bool gradual) {
53 } 61 }
oshima 2015/07/06 18:47:57 Are these going to be implemented too (in separate
mozartalouis 2015/07/06 20:49:42 These will be implemented in a separate CL, Althou
54 62
55 void FakePowerManagerClient::GetScreenBrightnessPercent( 63 void FakePowerManagerClient::GetScreenBrightnessPercent(
56 const GetScreenBrightnessPercentCallback& callback) { 64 const GetScreenBrightnessPercentCallback& callback) {
57 } 65 }
58 66
59 void FakePowerManagerClient::DecreaseKeyboardBrightness() { 67 void FakePowerManagerClient::DecreaseKeyboardBrightness() {
60 } 68 }
61 69
62 void FakePowerManagerClient::IncreaseKeyboardBrightness() { 70 void FakePowerManagerClient::IncreaseKeyboardBrightness() {
63 } 71 }
64 72
65 void FakePowerManagerClient::RequestStatusUpdate() { 73 void FakePowerManagerClient::RequestStatusUpdate() {
74 NotifyObservers();
66 } 75 }
67 76
68 void FakePowerManagerClient::RequestSuspend() { 77 void FakePowerManagerClient::RequestSuspend() {
69 } 78 }
70 79
71 void FakePowerManagerClient::RequestRestart() { 80 void FakePowerManagerClient::RequestRestart() {
72 ++num_request_restart_calls_; 81 ++num_request_restart_calls_;
73 } 82 }
74 83
75 void FakePowerManagerClient::RequestShutdown() { 84 void FakePowerManagerClient::RequestShutdown() {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent()); 131 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent());
123 } 132 }
124 133
125 void FakePowerManagerClient::SendPowerButtonEvent( 134 void FakePowerManagerClient::SendPowerButtonEvent(
126 bool down, 135 bool down,
127 const base::TimeTicks& timestamp) { 136 const base::TimeTicks& timestamp) {
128 FOR_EACH_OBSERVER(Observer, observers_, 137 FOR_EACH_OBSERVER(Observer, observers_,
129 PowerButtonEventReceived(down, timestamp)); 138 PowerButtonEventReceived(down, timestamp));
130 } 139 }
131 140
141 void FakePowerManagerClient::UpdatePowerProperties(
142 int battery_percent,
143 bool is_calculating_battery_time,
144 power_manager::PowerSupplyProperties::BatteryState battery_state,
145 power_manager::PowerSupplyProperties::ExternalPower external_power) {
146 int remaining_battery_sec =
147 battery_percent * kDefaultBatteryLifeSpanSec / 100;
148
149 // Sets the charging state based on the battery percentage to mimic real
150 // implementation.
151 if (battery_percent == 100 &&
152 (battery_state ==
153 power_manager::PowerSupplyProperties_BatteryState_CHARGING ||
154 battery_state ==
155 power_manager::PowerSupplyProperties_BatteryState_FULL)) {
156 props_.set_battery_state(
157 power_manager::PowerSupplyProperties_BatteryState_FULL);
158 props_.set_battery_time_to_full_sec(0);
159 props_.set_battery_time_to_empty_sec(0);
160 } else if (battery_state ==
161 power_manager::PowerSupplyProperties_BatteryState_CHARGING) {
162 props_.set_battery_state(
163 power_manager::PowerSupplyProperties_BatteryState_CHARGING);
164 props_.set_battery_time_to_full_sec(kDefaultBatteryLifeSpanSec -
165 remaining_battery_sec);
166 props_.set_battery_time_to_empty_sec(0);
167 } else {
168 props_.set_battery_state(
169 power_manager::PowerSupplyProperties_BatteryState_DISCHARGING);
170 props_.set_battery_time_to_full_sec(0);
171 props_.set_battery_time_to_empty_sec(remaining_battery_sec);
172 }
oshima 2015/07/06 18:47:57 looks like it's possible to call with impossible a
Daniel Erat 2015/07/06 19:02:54 no, it isn't: - a defective battery can fail to c
oshima 2015/07/06 19:54:59 That's fine with me. It'd be nice to have utility
mozartalouis 2015/07/06 20:49:42 If we want those features, we can implement them i
oshima 2015/07/06 21:06:05 You can add these functions/methods when you integ
mozartalouis 2015/07/07 01:40:06 Acknowledged.
173
174 // Checks if the battery is in a discharging state first before setting a
175 // charger. It wouldn't make sense for the battery to be discharging on AC,
176 // but it is possible for it to be discharging on low power USB.
177 if (props_.battery_state() ==
178 power_manager::PowerSupplyProperties_BatteryState_DISCHARGING) {
179 props_.set_external_power(
180 external_power == power_manager::PowerSupplyProperties_ExternalPower_USB
181 ? power_manager::PowerSupplyProperties_ExternalPower_USB
182 : power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED);
183 } else {
184 props_.set_external_power(
185 external_power == power_manager::PowerSupplyProperties_ExternalPower_USB
186 ? power_manager::PowerSupplyProperties_ExternalPower_USB
187 : power_manager::PowerSupplyProperties_ExternalPower_AC);
188 }
189
190 props_.set_battery_percent(battery_percent);
191 props_.set_is_calculating_battery_time(is_calculating_battery_time);
192
193 NotifyObservers();
194 }
195
196 void FakePowerManagerClient::NotifyObservers() {
197 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(props_));
198 }
199
132 void FakePowerManagerClient::HandleSuspendReadiness() { 200 void FakePowerManagerClient::HandleSuspendReadiness() {
133 CHECK(num_pending_suspend_readiness_callbacks_ > 0); 201 CHECK(num_pending_suspend_readiness_callbacks_ > 0);
134 202
135 --num_pending_suspend_readiness_callbacks_; 203 --num_pending_suspend_readiness_callbacks_;
136 } 204 }
137 205
138 } // namespace chromeos 206 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698