Index: Source/modules/battery/BatteryManager.cpp |
diff --git a/Source/modules/battery/BatteryManager.cpp b/Source/modules/battery/BatteryManager.cpp |
index 81114c592e416236594bcd520b4053f5049592a2..e5164672f9f285ca39711f3ee9c140fed4d9bc06 100644 |
--- a/Source/modules/battery/BatteryManager.cpp |
+++ b/Source/modules/battery/BatteryManager.cpp |
@@ -25,80 +25,69 @@ BatteryManager::~BatteryManager() |
BatteryManager::BatteryManager(ExecutionContext* context) |
: ActiveDOMObject(context) |
- , DeviceSensorEventController(toDocument(context)->page()) |
+ , DeviceEventControllerBase(toDocument(context)->page()) |
{ |
m_hasEventListener = true; |
+ m_batteryStatus = BatteryStatus::create(); |
Inactive
2014/06/03 13:49:33
This could be part of the initializer list to avoi
timvolodine
2014/06/03 18:45:54
Done.
|
startUpdating(); |
} |
bool BatteryManager::charging() |
{ |
- if (const BatteryStatus* lastData = BatteryDispatcher::instance().getLatestData()) |
- return lastData->charging(); |
- |
- return true; |
+ return m_batteryStatus->charging(); |
} |
double BatteryManager::chargingTime() |
{ |
- if (const BatteryStatus* lastData = BatteryDispatcher::instance().getLatestData()) |
- return lastData->chargingTime(); |
- |
- return 0; |
+ return m_batteryStatus->chargingTime(); |
} |
double BatteryManager::dischargingTime() |
{ |
- if (const BatteryStatus* lastData = BatteryDispatcher::instance().getLatestData()) |
- return lastData->dischargingTime(); |
- |
- return std::numeric_limits<double>::infinity(); |
+ return m_batteryStatus->dischargingTime(); |
} |
double BatteryManager::level() |
{ |
- if (const BatteryStatus* lastData = BatteryDispatcher::instance().getLatestData()) |
- return lastData->level(); |
- |
- return 1; |
+ return m_batteryStatus->level(); |
} |
-void BatteryManager::didChangeBatteryStatus(PassRefPtrWillBeRawPtr<Event> event) |
+void BatteryManager::didUpdateData() |
{ |
ASSERT(RuntimeEnabledFeatures::batteryStatusEnabled()); |
- dispatchEvent(event); |
-} |
+ RefPtr<BatteryStatus> oldStatus = m_batteryStatus; |
+ m_batteryStatus = BatteryDispatcher::instance().getLatestData(); |
Inactive
2014/06/03 13:49:33
It is OK to assign a raw ptr to a RefPtr so this s
timvolodine
2014/06/03 18:45:54
hmm, as I wrote previously the idea is to share th
Inactive
2014/06/03 19:04:23
I believe SVGPathSegList::getItem() is a bad examp
|
-void BatteryManager::registerWithDispatcher() |
-{ |
- BatteryDispatcher::instance().addClient(this); |
-} |
+ Document* document = toDocument(executionContext()); |
+ if (document->activeDOMObjectsAreSuspended() || document->activeDOMObjectsAreStopped()) |
+ return; |
-void BatteryManager::unregisterWithDispatcher() |
-{ |
- BatteryDispatcher::instance().removeClient(this); |
-} |
+ ASSERT(oldStatus); |
-bool BatteryManager::hasLastData() |
-{ |
- return false; |
+ if (m_batteryStatus->charging() != oldStatus->charging()) |
+ dispatchEvent(Event::create(EventTypeNames::chargingchange)); |
+ if (m_batteryStatus->chargingTime() != oldStatus->chargingTime()) |
+ dispatchEvent(Event::create(EventTypeNames::chargingtimechange)); |
+ if (m_batteryStatus->dischargingTime() != oldStatus->dischargingTime()) |
+ dispatchEvent(Event::create(EventTypeNames::dischargingtimechange)); |
+ if (m_batteryStatus->level() != oldStatus->level()) |
+ dispatchEvent(Event::create(EventTypeNames::levelchange)); |
} |
-PassRefPtrWillBeRawPtr<Event> BatteryManager::getLastEvent() |
+void BatteryManager::registerWithDispatcher() |
{ |
- // Events are dispached via BatteryManager::didChangeBatteryStatus() |
- return nullptr; |
+ BatteryDispatcher::instance().addController(this); |
} |
-bool BatteryManager::isNullEvent(Event*) |
+void BatteryManager::unregisterWithDispatcher() |
{ |
- return false; |
+ BatteryDispatcher::instance().removeController(this); |
} |
-Document* BatteryManager::document() |
+bool BatteryManager::isInvokeInitialUpdate() |
Inactive
2014/06/03 13:49:33
This naming seems a bit weird to me but I am not a
timvolodine
2014/06/03 18:45:54
what I meant is: if true this class should perform
Inactive
2014/06/03 19:04:23
What was wrong with the previous hasLastData() nam
|
{ |
- return toDocument(executionContext()); |
+ return BatteryDispatcher::instance().getLatestData(); |
} |
void BatteryManager::suspend() |