Chromium Code Reviews| 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() |