| Index: device/battery/battery_status_manager_win.cc
|
| diff --git a/content/browser/battery_status/battery_status_manager_win.cc b/device/battery/battery_status_manager_win.cc
|
| similarity index 76%
|
| rename from content/browser/battery_status/battery_status_manager_win.cc
|
| rename to device/battery/battery_status_manager_win.cc
|
| index cfd081f9b6bf79e8461ad209f4ab5a87f07ff671..adda9d0c1c63c09f930fa01979bfb054bc52887c 100644
|
| --- a/content/browser/battery_status/battery_status_manager_win.cc
|
| +++ b/device/battery/battery_status_manager_win.cc
|
| @@ -2,17 +2,17 @@
|
| // 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_manager_win.h"
|
| +#include "device/battery/battery_status_manager_win.h"
|
|
|
| -#include "base/memory/ref_counted.h"
|
| +#include "base/bind.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/string16.h"
|
| #include "base/win/message_window.h"
|
| #include "base/win/windows_version.h"
|
| -#include "content/browser/battery_status/battery_status_manager.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| +#include "device/battery/battery_status_manager.h"
|
|
|
| -namespace content {
|
| +namespace device {
|
|
|
| namespace {
|
|
|
| @@ -51,8 +51,7 @@ void UpdateNumberBatteriesHistogram() {
|
| }
|
|
|
| // Message-only window for handling battery changes on Windows.
|
| -class BatteryStatusObserver
|
| - : public base::RefCountedThreadSafe<BatteryStatusObserver> {
|
| +class BatteryStatusObserver {
|
| public:
|
| explicit BatteryStatusObserver(const BatteryCallback& callback)
|
| : power_handle_(NULL),
|
| @@ -60,29 +59,9 @@ class BatteryStatusObserver
|
| callback_(callback) {
|
| }
|
|
|
| - virtual ~BatteryStatusObserver() { DCHECK(!window_); }
|
| + ~BatteryStatusObserver() { DCHECK(!window_); }
|
|
|
| void Start() {
|
| - // Need to start on the UI thread to receive battery status notifications.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI,
|
| - FROM_HERE,
|
| - base::Bind(&BatteryStatusObserver::StartOnUI, this));
|
| - }
|
| -
|
| - void Stop() {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI,
|
| - FROM_HERE,
|
| - base::Bind(&BatteryStatusObserver::StopOnUI, this));
|
| - }
|
| -
|
| - private:
|
| - void StartOnUI() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - if (window_)
|
| - return;
|
| -
|
| if (CreateMessageWindow()) {
|
| BatteryChanged();
|
| // RegisterPowerSettingNotification function work from Windows Vista
|
| @@ -97,17 +76,13 @@ class BatteryStatusObserver
|
| } else {
|
| // Could not create a message window, execute callback with the default
|
| // values.
|
| - callback_.Run(blink::WebBatteryStatus());
|
| + callback_.Run(BatteryStatus());
|
| }
|
|
|
| UpdateNumberBatteriesHistogram();
|
| }
|
|
|
| - void StopOnUI() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - if (!window_)
|
| - return;
|
| -
|
| + void Stop() {
|
| if (power_handle_)
|
| UnregisterNotification(power_handle_);
|
| if (battery_change_handle_)
|
| @@ -115,12 +90,13 @@ class BatteryStatusObserver
|
| window_.reset();
|
| }
|
|
|
| + private:
|
| void BatteryChanged() {
|
| SYSTEM_POWER_STATUS win_status;
|
| if (GetSystemPowerStatus(&win_status))
|
| callback_.Run(ComputeWebBatteryStatus(win_status));
|
| else
|
| - callback_.Run(blink::WebBatteryStatus());
|
| + callback_.Run(BatteryStatus());
|
| }
|
|
|
| bool HandleMessage(UINT message,
|
| @@ -185,27 +161,24 @@ class BatteryStatusManagerWin : public BatteryStatusManager {
|
| public:
|
| // BatteryStatusManager:
|
| virtual bool StartListeningBatteryChange() override {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| battery_observer_->Start();
|
| return true;
|
| }
|
|
|
| virtual void StopListeningBatteryChange() override {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| battery_observer_->Stop();
|
| }
|
|
|
| private:
|
| - scoped_refptr<BatteryStatusObserver> battery_observer_;
|
| + scoped_ptr<BatteryStatusObserver> battery_observer_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerWin);
|
| };
|
|
|
| } // namespace
|
|
|
| -blink::WebBatteryStatus ComputeWebBatteryStatus(
|
| - const SYSTEM_POWER_STATUS& win_status) {
|
| - blink::WebBatteryStatus status;
|
| +BatteryStatus ComputeWebBatteryStatus(const SYSTEM_POWER_STATUS& win_status) {
|
| + BatteryStatus status;
|
| status.charging = win_status.ACLineStatus != WIN_AC_LINE_STATUS_OFFLINE;
|
|
|
| // Set level if available. Otherwise keep the default value which is 1.
|
| @@ -215,16 +188,16 @@ blink::WebBatteryStatus ComputeWebBatteryStatus(
|
| }
|
|
|
| if (!status.charging) {
|
| - // Set dischargingTime if available otherwise keep the default value,
|
| + // Set discharging_time if available otherwise keep the default value,
|
| // which is +Infinity.
|
| if (win_status.BatteryLifeTime != (DWORD)-1)
|
| - status.dischargingTime = win_status.BatteryLifeTime;
|
| - status.chargingTime = std::numeric_limits<double>::infinity();
|
| + status.discharging_time = win_status.BatteryLifeTime;
|
| + status.charging_time = std::numeric_limits<double>::infinity();
|
| } else {
|
| - // Set chargingTime to +Infinity if not fully charged, otherwise leave the
|
| + // Set charging_time to +Infinity if not fully charged, otherwise leave the
|
| // default value, which is 0.
|
| if (status.level < 1)
|
| - status.chargingTime = std::numeric_limits<double>::infinity();
|
| + status.charging_time = std::numeric_limits<double>::infinity();
|
| }
|
| return status;
|
| }
|
| @@ -236,4 +209,4 @@ scoped_ptr<BatteryStatusManager> BatteryStatusManager::Create(
|
| new BatteryStatusManagerWin(callback));
|
| }
|
|
|
| -} // namespace content
|
| +} // namespace device
|
|
|