Index: chrome/browser/chromeos/status/power_menu_button.cc |
diff --git a/chrome/browser/chromeos/status/power_menu_button.cc b/chrome/browser/chromeos/status/power_menu_button.cc |
index 555f67d6962ad035c6585b7900fc1bed043f7e07..152eacb6e4e17add3d41a0bccab2e1116cdbdf3f 100644 |
--- a/chrome/browser/chromeos/status/power_menu_button.cc |
+++ b/chrome/browser/chromeos/status/power_menu_button.cc |
@@ -161,9 +161,7 @@ class PowerMenuButton::StatusView : public View { |
SkBitmap image; |
bool draw_percentage_text = false; |
- if (!CrosLibrary::Get()->EnsureLoaded()) { |
- image = GetUnknownImage(LARGE); |
- } else if (!menu_button_->battery_is_present_) { |
+ if (!menu_button_->battery_is_present_) { |
image = GetMissingImage(LARGE); |
} else { |
image = GetImage( |
@@ -316,6 +314,9 @@ void PowerMenuButton::OnLocaleChanged() { |
// PowerMenuButton, views::ViewMenuDelegate implementation: |
void PowerMenuButton::RunMenu(views::View* source, const gfx::Point& pt) { |
+ // Explicitly query the power status. |
+ CrosLibrary::Get()->GetPowerLibrary()->RequestStatusUpdate(); |
+ |
views::MenuItemView* menu = new views::MenuItemView(this); |
// MenuRunner takes ownership of |menu|. |
menu_runner_.reset(new views::MenuRunner(menu)); |
@@ -354,31 +355,23 @@ void PowerMenuButton::PowerChanged(PowerLibrary* obj) { |
void PowerMenuButton::UpdateIconAndLabelInfo() { |
PowerLibrary* cros = CrosLibrary::Get()->GetPowerLibrary(); |
- if (!cros) |
- return; |
- bool cros_loaded = CrosLibrary::Get()->EnsureLoaded(); |
- if (cros_loaded) { |
- battery_is_present_ = cros->battery_is_present(); |
- line_power_on_ = cros->line_power_on(); |
- |
- // If fully charged, always show 100% even if internal number is a bit less. |
- if (cros->battery_fully_charged()) { |
- // We always call cros->battery_percentage() for test predictability. |
- cros->battery_percentage(); |
- battery_percentage_ = 100.0; |
- } else { |
- battery_percentage_ = cros->battery_percentage(); |
- } |
+ battery_is_present_ = cros->battery_is_present(); |
+ line_power_on_ = cros->line_power_on(); |
- UpdateBatteryTime(&battery_time_to_full_, cros->battery_time_to_full()); |
- UpdateBatteryTime(&battery_time_to_empty_, cros->battery_time_to_empty()); |
+ // If fully charged, always show 100% even if internal number is a bit less. |
+ if (cros->battery_fully_charged()) { |
+ // We always call cros->battery_percentage() for test predictability. |
+ cros->battery_percentage(); |
+ battery_percentage_ = 100.0; |
+ } else { |
+ battery_percentage_ = cros->battery_percentage(); |
} |
- if (!cros_loaded) { |
- battery_index_ = -1; |
- SetIcon(GetUnknownImage(SMALL)); |
- } else if (!battery_is_present_) { |
+ UpdateBatteryTime(&battery_time_to_full_, cros->battery_time_to_full()); |
+ UpdateBatteryTime(&battery_time_to_empty_, cros->battery_time_to_empty()); |
+ |
+ if (!battery_is_present_) { |
battery_index_ = -1; |
SetIcon(GetMissingImage(SMALL)); |
} else { |