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 3e27c129439a54b8bfd651cb029ba8aaf641b263..e6ab56e2b5fb1312e39955edc96787f36edfbb5d 100644 |
--- a/content/renderer/battery_status/battery_status_dispatcher.cc |
+++ b/content/renderer/battery_status/battery_status_dispatcher.cc |
@@ -4,6 +4,7 @@ |
#include "battery_status_dispatcher.h" |
+#include "base/logging.h" |
#include "content/common/battery_status_messages.h" |
#include "content/renderer/render_thread_impl.h" |
#include "third_party/WebKit/public/platform/WebBatteryStatusListener.h" |
@@ -11,10 +12,20 @@ |
namespace content { |
BatteryStatusDispatcher::BatteryStatusDispatcher(RenderThread* thread) |
- : PlatformEventObserver<blink::WebBatteryStatusListener>(thread) { |
+ : listener_(0) { |
+ if (thread) |
+ thread->AddObserver(this); |
} |
BatteryStatusDispatcher::~BatteryStatusDispatcher() { |
+ if (listener_) |
+ Stop(); |
+} |
+ |
+bool BatteryStatusDispatcher::SetListener( |
+ blink::WebBatteryStatusListener* listener) { |
+ listener_ = listener; |
+ return listener ? Start() : Stop(); |
} |
bool BatteryStatusDispatcher::OnControlMessageReceived( |
@@ -27,22 +38,18 @@ bool BatteryStatusDispatcher::OnControlMessageReceived( |
return handled; |
} |
-void BatteryStatusDispatcher::SendStartMessage() { |
- RenderThread::Get()->Send(new BatteryStatusHostMsg_Start()); |
+bool BatteryStatusDispatcher::Start() { |
+ return RenderThread::Get()->Send(new BatteryStatusHostMsg_Start()); |
} |
-void BatteryStatusDispatcher::SendStopMessage() { |
- RenderThread::Get()->Send(new BatteryStatusHostMsg_Stop()); |
+bool BatteryStatusDispatcher::Stop() { |
+ return RenderThread::Get()->Send(new BatteryStatusHostMsg_Stop()); |
} |
void BatteryStatusDispatcher::OnDidChange( |
const blink::WebBatteryStatus& status) { |
- if (listener()) |
- listener()->updateBatteryStatus(status); |
-} |
- |
-void BatteryStatusDispatcher::SendFakeDataForTesting(void* fake_data) { |
- OnDidChange(*static_cast<blink::WebBatteryStatus*>(fake_data)); |
+ if (listener_) |
+ listener_->updateBatteryStatus(status); |
} |
} // namespace content |