Index: device/battery/battery_status_service.cc |
diff --git a/content/browser/battery_status/battery_status_service.cc b/device/battery/battery_status_service.cc |
similarity index 58% |
rename from content/browser/battery_status/battery_status_service.cc |
rename to device/battery/battery_status_service.cc |
index 67bcb9f4a46d4012a2915df2226d36305242b3e3..e849ba181bf12aabb1ef3f866fe7de73aaa8ab78 100644 |
--- a/content/browser/battery_status/battery_status_service.cc |
+++ b/device/battery/battery_status_service.cc |
@@ -2,16 +2,16 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "content/browser/battery_status/battery_status_service.h" |
+#include "device/battery/battery_status_service.h" |
#include "base/bind.h" |
-#include "content/browser/battery_status/battery_status_manager.h" |
-#include "content/public/browser/browser_thread.h" |
+#include "device/battery/battery_monitor_impl.h" |
+#include "device/battery/battery_status_manager.h" |
-namespace content { |
+namespace device { |
BatteryStatusService::BatteryStatusService() |
- : update_callback_(base::Bind(&BatteryStatusService::UpdateBatteryStatus, |
+ : update_callback_(base::Bind(&BatteryStatusService::NotifyConsumers, |
base::Unretained(this))), |
status_updated_(false), |
is_shutdown_(false) { |
@@ -30,7 +30,6 @@ BatteryStatusService* BatteryStatusService::GetInstance() { |
scoped_ptr<BatteryStatusService::BatteryUpdateSubscription> |
BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
DCHECK(!is_shutdown_); |
if (!battery_fetcher_) |
@@ -38,10 +37,8 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) { |
if (callback_list_.empty()) { |
bool success = battery_fetcher_->StartListeningBatteryChange(); |
- if (!success) { |
- // Make sure the promise resolves with the default values in Blink. |
- callback.Run(blink::WebBatteryStatus()); |
- } |
+ if (!success) |
+ callback.Run(BatteryStatus()); |
} |
if (status_updated_) { |
@@ -53,34 +50,25 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) { |
} |
void BatteryStatusService::ConsumersChanged() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- DCHECK(!is_shutdown_); |
+ if (is_shutdown_) |
+ return; |
if (callback_list_.empty()) { |
- battery_fetcher_->StopListeningBatteryChange(); |
- status_updated_ = false; |
+ battery_fetcher_->StopListeningBatteryChange(); |
+ status_updated_ = false; |
} |
} |
-void BatteryStatusService::UpdateBatteryStatus( |
- const blink::WebBatteryStatus& status) { |
+void BatteryStatusService::NotifyConsumers(const BatteryStatus& status) { |
DCHECK(!is_shutdown_); |
- BrowserThread::PostTask(BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&BatteryStatusService::NotifyConsumers, |
- base::Unretained(this), status)); |
-} |
-void BatteryStatusService::NotifyConsumers( |
- const blink::WebBatteryStatus& status) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ status_ = status; |
+ status_updated_ = true; |
if (callback_list_.empty()) |
return; |
- status_ = status; |
- status_updated_ = true; |
- callback_list_.Notify(status); |
+ callback_list_.Notify(status_); |
} |
void BatteryStatusService::Shutdown() { |
@@ -96,11 +84,10 @@ BatteryStatusService::GetUpdateCallbackForTesting() const { |
} |
void BatteryStatusService::SetBatteryManagerForTesting( |
- BatteryStatusManager* test_battery_manager) { |
- battery_fetcher_.reset(test_battery_manager); |
- blink::WebBatteryStatus status; |
- status_ = status; |
+ scoped_ptr<BatteryStatusManager> test_battery_manager) { |
+ battery_fetcher_ = test_battery_manager.Pass(); |
+ status_ = BatteryStatus(); |
status_updated_ = false; |
} |
-} // namespace content |
+} // namespace device |