Index: content/renderer/battery_status/battery_status_dispatcher.cc |
diff --git a/content/renderer/battery_status/battery_status_dispatcher.cc b/content/renderer/battery_status/battery_status_dispatcher.cc |
index f6450694b8f24b0bd186fea11518a37b75f05321..66b8f91c125f2ffe8d43479c34204f1cc63172ec 100644 |
--- a/content/renderer/battery_status/battery_status_dispatcher.cc |
+++ b/content/renderer/battery_status/battery_status_dispatcher.cc |
@@ -18,16 +18,26 @@ BatteryStatusDispatcher::BatteryStatusDispatcher( |
if (ServiceRegistry* registry = RenderThread::Get()->GetServiceRegistry()) { |
// registry can be null during testing. |
registry->ConnectToRemoteService(&monitor_); |
- monitor_.set_client(this); |
+ QueryNextStatus(); |
} |
} |
BatteryStatusDispatcher::~BatteryStatusDispatcher() { |
} |
+void BatteryStatusDispatcher::QueryNextStatus() { |
+ monitor_->QueryNextStatus( |
+ base::Bind(&BatteryStatusDispatcher::DidChange, base::Unretained(this))); |
+} |
+ |
void BatteryStatusDispatcher::DidChange( |
device::BatteryStatusPtr battery_status) { |
+ // monitor_ can be null during testing. |
+ if (monitor_) |
+ QueryNextStatus(); |
+ |
DCHECK(battery_status); |
+ |
blink::WebBatteryStatus web_battery_status; |
web_battery_status.charging = battery_status->charging; |
web_battery_status.chargingTime = battery_status->charging_time; |