| Index: content/browser/battery_status/battery_status_manager_linux.cc
|
| diff --git a/content/browser/battery_status/battery_status_manager_linux.cc b/content/browser/battery_status/battery_status_manager_linux.cc
|
| index e6abf88ed4eb11b4f53ee7b1e9d771e87caf98d5..eab83c383f9f06cd644900c181dc1e5e1ce622b4 100644
|
| --- a/content/browser/battery_status/battery_status_manager_linux.cc
|
| +++ b/content/browser/battery_status/battery_status_manager_linux.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/browser/battery_status/battery_status_manager_linux.h"
|
|
|
| #include "base/macros.h"
|
| +#include "base/metrics/histogram.h"
|
| #include "base/threading/thread.h"
|
| #include "base/values.h"
|
| #include "content/browser/battery_status/battery_status_manager.h"
|
| @@ -96,6 +97,11 @@ scoped_ptr<PathsVector> GetPowerSourcesPaths(dbus::ObjectProxy* proxy) {
|
| return paths.Pass();;
|
| }
|
|
|
| +void UpdateNumberBatteriesHistogram(int count) {
|
| + UMA_HISTOGRAM_CUSTOM_COUNTS(
|
| + "BatteryStatus.NumberBatteriesLinux", count, 1, 5, 6);
|
| +}
|
| +
|
| // Class that represents a dedicated thread which communicates with DBus to
|
| // obtain battery information and receives battery change notifications.
|
| class BatteryStatusNotificationThread : public base::Thread {
|
| @@ -131,6 +137,7 @@ class BatteryStatusNotificationThread : public base::Thread {
|
| system_bus_->GetObjectProxy(kUPowerServiceName,
|
| dbus::ObjectPath(kUPowerPath));
|
| scoped_ptr<PathsVector> device_paths = GetPowerSourcesPaths(power_proxy);
|
| + int num_batteries = 0;
|
|
|
| for (size_t i = 0; i < device_paths->size(); ++i) {
|
| const dbus::ObjectPath& device_path = device_paths->at(i);
|
| @@ -157,14 +164,16 @@ class BatteryStatusNotificationThread : public base::Thread {
|
| // TODO(timvolodine): add support for multiple batteries. Currently we
|
| // only collect information from the first battery we encounter
|
| // (crbug.com/400780).
|
| - // TODO(timvolodine): add UMA logging for this case.
|
| LOG(WARNING) << "multiple batteries found, "
|
| << "using status data of the first battery only.";
|
| } else {
|
| battery_proxy_ = device_proxy;
|
| }
|
| + num_batteries++;
|
| }
|
|
|
| + UpdateNumberBatteriesHistogram(num_batteries);
|
| +
|
| if (!battery_proxy_) {
|
| callback_.Run(blink::WebBatteryStatus());
|
| return;
|
|
|