| Index: content/browser/battery_status/battery_status_manager_win.cc
|
| diff --git a/content/browser/battery_status/battery_status_manager_win.cc b/content/browser/battery_status/battery_status_manager_win.cc
|
| index d998d5aca0e2ab6405e323d659aa894cf179ef34..5f239504f38021fe4b3ce6dc52eb6443fc4fc1d6 100644
|
| --- a/content/browser/battery_status/battery_status_manager_win.cc
|
| +++ b/content/browser/battery_status/battery_status_manager_win.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/browser/battery_status/battery_status_manager_win.h"
|
|
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/metrics/histogram.h"
|
| #include "base/strings/string16.h"
|
| #include "base/win/message_window.h"
|
| #include "base/win/windows_version.h"
|
| @@ -19,6 +20,36 @@ typedef BatteryStatusService::BatteryUpdateCallback BatteryCallback;
|
|
|
| const wchar_t kWindowClassName[] = L"BatteryStatusMessageWindow";
|
|
|
| +// This enum is used for histogram. Don't change the order of the existing
|
| +// values.
|
| +enum NumberBatteriesType {
|
| + NO_BATTERY = 0,
|
| + ONE_OR_MORE_BATTERIES = 1,
|
| + UNKNOWN_BATTERIES = 2,
|
| + BATTERY_TYPES_COUNT = 3,
|
| +};
|
| +
|
| +void UpdateNumberBatteriesHistogram(NumberBatteriesType count) {
|
| + UMA_HISTOGRAM_ENUMERATION("BatteryStatus.NumberBatteriesWin",
|
| + count,
|
| + BATTERY_TYPES_COUNT);
|
| +}
|
| +
|
| +void UpdateNumberBatteriesHistogram() {
|
| + SYSTEM_POWER_STATUS win_status;
|
| + if (!GetSystemPowerStatus(&win_status)) {
|
| + UpdateNumberBatteriesHistogram(UNKNOWN_BATTERIES);
|
| + return;
|
| + }
|
| +
|
| + if (win_status.BatteryFlag == 255)
|
| + UpdateNumberBatteriesHistogram(UNKNOWN_BATTERIES);
|
| + else if (win_status.BatteryFlag == 128)
|
| + UpdateNumberBatteriesHistogram(NO_BATTERY);
|
| + else
|
| + UpdateNumberBatteriesHistogram(ONE_OR_MORE_BATTERIES);
|
| +}
|
| +
|
| // Message-only window for handling battery changes on Windows.
|
| class BatteryStatusObserver
|
| : public base::RefCountedThreadSafe<BatteryStatusObserver> {
|
| @@ -68,6 +99,8 @@ class BatteryStatusObserver
|
| // values.
|
| callback_.Run(blink::WebBatteryStatus());
|
| }
|
| +
|
| + UpdateNumberBatteriesHistogram();
|
| }
|
|
|
| void StopOnUI() {
|
|
|