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

Unified Diff: Source/modules/battery/BatteryManager.cpp

Issue 212643010: Add Dispatcher class to the Battery Status API module. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/battery/BatteryManager.cpp
diff --git a/Source/modules/battery/BatteryManager.cpp b/Source/modules/battery/BatteryManager.cpp
index aae81bcf1448b25da6e871ea668cfcd90650432e..a3e3294a365b4e360c919d8fbde8fb75aed78b9c 100644
--- a/Source/modules/battery/BatteryManager.cpp
+++ b/Source/modules/battery/BatteryManager.cpp
@@ -7,6 +7,7 @@
#include "RuntimeEnabledFeatures.h"
#include "core/events/Event.h"
+#include "modules/battery/BatteryDispatcher.h"
#include "modules/battery/BatteryStatus.h"
#include <limits>
@@ -14,7 +15,9 @@ namespace WebCore {
PassRefPtrWillBeRawPtr<BatteryManager> BatteryManager::create(ExecutionContext* context)
{
- return adoptRefWillBeRefCountedGarbageCollected(new BatteryManager(context));
+ RefPtr<BatteryManager> batteryManager(adoptRefWillBeRefCountedGarbageCollected(new BatteryManager(context)));
sof 2014/04/07 12:52:44 Use RefPtrWillBeRawPtr<> instead of RefPtr<>.
+ batteryManager->suspendIfNeeded();
+ return batteryManager.release();
}
BatteryManager::~BatteryManager()
@@ -22,9 +25,13 @@ BatteryManager::~BatteryManager()
}
BatteryManager::BatteryManager(ExecutionContext* context)
- : ContextLifecycleObserver(context)
+ : ActiveDOMObject(context)
+ , DeviceSensorEventController(*toDocument(context))
, m_batteryStatus(nullptr)
{
+ // Need to figure out a way to startUpdating only afters EventListeners are added: didAddEventListener?
+ m_hasEventListener = true;
+ startUpdating();
timvolodine 2014/04/02 14:24:51 yeah this is a bit tricky. Think it's generally ok
Srini 2014/04/02 17:25:36 The spec mentions a default value when the battery
}
bool BatteryManager::charging()
@@ -53,7 +60,7 @@ double BatteryManager::level()
return m_batteryStatus ? m_batteryStatus->level() : 1;
timvolodine 2014/04/03 13:48:16 Also batteryStatus appears to be stored twice in b
}
-void BatteryManager::didChangeBatteryStatus(PassRefPtr<Event> event, PassOwnPtr<BatteryStatus> batteryStatus)
+void BatteryManager::didChangeBatteryStatus(PassRefPtr<Event> event, PassRefPtr<BatteryStatus> batteryStatus)
sof 2014/04/07 12:52:44 Change PassRefPtr<Event> to PassRefPtrWillBeRawPtr
{
ASSERT(RuntimeEnabledFeatures::batteryStatusEnabled());
@@ -61,4 +68,49 @@ void BatteryManager::didChangeBatteryStatus(PassRefPtr<Event> event, PassOwnPtr<
dispatchEvent(event);
}
+void BatteryManager::registerWithDispatcher()
+{
+ BatteryDispatcher::instance().addClient(this);
+}
+
+void BatteryManager::unregisterWithDispatcher()
+{
+ BatteryDispatcher::instance().removeClient(this);
+}
+
+bool BatteryManager::hasLastData()
+{
+ /* Battery Manager sends the event itself */
+ return false;
+}
+
+PassRefPtr<Event> BatteryManager::getLastEvent()
sof 2014/04/07 12:52:44 Change this to PassRefPtrWillBeRawPtr<Event>
+{
+ // This is called only when hasLastData() is true.
+ ASSERT_NOT_REACHED();
+ return nullptr;
+}
+
+bool BatteryManager::isNullEvent(Event*)
+{
+ // This is called only when hasLastData() is true.
+ ASSERT_NOT_REACHED();
+ return false;
+}
+
+void BatteryManager::suspend()
+{
+ stopUpdating();
+}
+
+void BatteryManager::resume()
+{
+ startUpdating();
+}
+
+void BatteryManager::stop()
+{
+ stopUpdating();
+}
+
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698