Index: chrome/browser/chromeos/battery_status_provider_chromeos.cc |
diff --git a/chrome/browser/chromeos/battery_status_provider_chromeos.cc b/chrome/browser/chromeos/battery_status_provider_chromeos.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..839abea3f22b570520adf4139b1f40bcef1493a9 |
--- /dev/null |
+++ b/chrome/browser/chromeos/battery_status_provider_chromeos.cc |
@@ -0,0 +1,38 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/battery_status_provider_chromeos.h" |
+ |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "content/public/browser/battery_status_provider.h" |
+#include "content/public/browser/power_supply_status.h" |
+ |
+using namespace chromeos; |
+ |
+BatteryStatusProviderChromeos* BatteryStatusProviderChromeos::GetInstance() { |
+ return Singleton<BatteryStatusProviderChromeos>::get(); |
+} |
+ |
+BatteryStatusProviderChromeos::BatteryStatusProviderChromeos() { |
+ DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
+} |
+ |
+BatteryStatusProviderChromeos::~BatteryStatusProviderChromeos() { |
+ // By the time this singleton gets destroyed, the DBusThreadManager has |
+ // already been destroyed. so do not remove the observer here. |
+} |
+ |
+void BatteryStatusProviderChromeos::PowerChanged( |
+ const PowerSupplyStatus& status) { |
+ content::PowerSupplyStatus content_status; |
+ content_status.line_power_on = status.line_power_on; |
+ content_status.battery_is_present = status.battery_is_present; |
+ content_status.battery_is_full = status.battery_is_full; |
+ content_status.battery_seconds_to_empty = status.battery_seconds_to_empty; |
+ content_status.battery_seconds_to_full = status.battery_seconds_to_full; |
+ content_status.battery_percentage = status.battery_percentage; |
+ content_status.is_calculating_battery_time = |
+ status.is_calculating_battery_time; |
+ content::BatteryStatusProvider::GetInstance()->SendUpdate(content_status); |
+} |