| Index: chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc | 
| diff --git a/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc b/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc | 
| index 83b0af469c120e9e1f88e6de44394d81965bded6..7a6b7c03af6b4579eaf2e11797d1a8bd2b58e846 100644 | 
| --- a/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc | 
| +++ b/chrome/browser/ui/webui/chromeos/emulator/device_emulator_message_handler.cc | 
| @@ -22,6 +22,7 @@ const char kRequestPowerInfo[] = "requestPowerInfo"; | 
| // Define update functions that will update the power properties to the | 
| // variables defined in the web UI. | 
| const char kUpdateBatteryPercent[] = "updateBatteryPercent"; | 
| +const char kUpdateBatteryState[] = "updateBatteryState"; | 
| const char kUpdateExternalPower[] = "updateExternalPower"; | 
| const char kUpdateTimeToEmpty[] = "updateTimeToEmpty"; | 
| const char kUpdateTimeToFull[] = "updateTimeToFull"; | 
| @@ -68,61 +69,77 @@ void DeviceEmulatorMessageHandler::HandleRequestBluetoothPair( | 
|  | 
| void DeviceEmulatorMessageHandler::UpdateBatteryPercent( | 
| const base::ListValue* args) { | 
| -  power_manager::PowerSupplyProperties props = | 
| -      fake_power_manager_client_->props(); | 
| - | 
| int new_percent; | 
| -  if (args->GetInteger(0, &new_percent)) | 
| +  if (args->GetInteger(0, &new_percent)) { | 
| +    power_manager::PowerSupplyProperties props = | 
| +        fake_power_manager_client_->props(); | 
| props.set_battery_percent(new_percent); | 
| +    fake_power_manager_client_->UpdatePowerProperties(props); | 
| +  } | 
| +} | 
|  | 
| -  fake_power_manager_client_->UpdatePowerProperties(props); | 
| +void DeviceEmulatorMessageHandler::UpdateBatteryState( | 
| +    const base::ListValue* args) { | 
| +  int battery_state; | 
| +  if (args->GetInteger(0, &battery_state)) { | 
| +    power_manager::PowerSupplyProperties props = | 
| +        fake_power_manager_client_->props(); | 
| +    props.set_battery_state( | 
| +        static_cast<power_manager::PowerSupplyProperties_BatteryState>( | 
| +            battery_state)); | 
| +    fake_power_manager_client_->UpdatePowerProperties(props); | 
| +  } | 
| } | 
|  | 
| void DeviceEmulatorMessageHandler::UpdateExternalPower( | 
| const base::ListValue* args) { | 
| int power_source; | 
| -  args->GetInteger(0, &power_source); | 
| - | 
| -  power_manager::PowerSupplyProperties props = | 
| -      fake_power_manager_client_->props(); | 
| -  props.set_external_power( | 
| -      static_cast<power_manager::PowerSupplyProperties_ExternalPower>( | 
| -          power_source)); | 
| -  fake_power_manager_client_->UpdatePowerProperties(props); | 
| +  if (args->GetInteger(0, &power_source)) { | 
| +    power_manager::PowerSupplyProperties props = | 
| +        fake_power_manager_client_->props(); | 
| +    props.set_external_power( | 
| +        static_cast<power_manager::PowerSupplyProperties_ExternalPower>( | 
| +            power_source)); | 
| +    fake_power_manager_client_->UpdatePowerProperties(props); | 
| +  } | 
| } | 
|  | 
| void DeviceEmulatorMessageHandler::UpdateTimeToEmpty( | 
| const base::ListValue* args) { | 
| -  power_manager::PowerSupplyProperties props = | 
| -      fake_power_manager_client_->props(); | 
| - | 
| int new_time; | 
| -  if (args->GetInteger(0, &new_time)) | 
| +  if (args->GetInteger(0, &new_time)) { | 
| +    power_manager::PowerSupplyProperties props = | 
| +        fake_power_manager_client_->props(); | 
| props.set_battery_time_to_empty_sec(new_time); | 
| - | 
| -  fake_power_manager_client_->UpdatePowerProperties(props); | 
| +    fake_power_manager_client_->UpdatePowerProperties(props); | 
| +  } | 
| } | 
|  | 
| void DeviceEmulatorMessageHandler::UpdateTimeToFull( | 
| const base::ListValue* args) { | 
| -  power_manager::PowerSupplyProperties props = | 
| -      fake_power_manager_client_->props(); | 
| int new_time; | 
| -  if (args->GetInteger(0, &new_time)) | 
| +  if (args->GetInteger(0, &new_time)) { | 
| +    power_manager::PowerSupplyProperties props = | 
| +        fake_power_manager_client_->props(); | 
| props.set_battery_time_to_full_sec(new_time); | 
| -  fake_power_manager_client_->UpdatePowerProperties(props); | 
| +    fake_power_manager_client_->UpdatePowerProperties(props); | 
| +  } | 
| } | 
|  | 
| void DeviceEmulatorMessageHandler::PowerChanged( | 
| const power_manager::PowerSupplyProperties& proto) { | 
| -  web_ui()->CallJavascriptFunction( | 
| -      kUpdatePowerPropertiesJSCallback, | 
| -      base::FundamentalValue(proto.battery_percent()), | 
| -      base::FundamentalValue(proto.external_power()), | 
| -      base::FundamentalValue( | 
| -          static_cast<int>(proto.battery_time_to_empty_sec())), | 
| -      base::FundamentalValue( | 
| -          static_cast<int>(proto.battery_time_to_full_sec()))); | 
| +  base::DictionaryValue power_properties; | 
| + | 
| +  power_properties.SetInteger("battery_percent", proto.battery_percent()); | 
| +  power_properties.SetInteger("battery_state", proto.battery_state()); | 
| +  power_properties.SetInteger("external_power", proto.external_power()); | 
| +  power_properties.SetInteger("battery_time_to_empty_sec", | 
| +                              proto.battery_time_to_empty_sec()); | 
| +  power_properties.SetInteger("battery_time_to_full_sec", | 
| +                              proto.battery_time_to_full_sec()); | 
| + | 
| +  web_ui()->CallJavascriptFunction(kUpdatePowerPropertiesJSCallback, | 
| +                                   power_properties); | 
| } | 
|  | 
| void DeviceEmulatorMessageHandler::RegisterMessages() { | 
| @@ -135,6 +152,10 @@ void DeviceEmulatorMessageHandler::RegisterMessages() { | 
| base::Bind(&DeviceEmulatorMessageHandler::UpdateBatteryPercent, | 
| base::Unretained(this))); | 
| web_ui()->RegisterMessageCallback( | 
| +      kUpdateBatteryState, | 
| +      base::Bind(&DeviceEmulatorMessageHandler::UpdateBatteryState, | 
| +                 base::Unretained(this))); | 
| +  web_ui()->RegisterMessageCallback( | 
| kUpdateExternalPower, | 
| base::Bind(&DeviceEmulatorMessageHandler::UpdateExternalPower, | 
| base::Unretained(this))); | 
|  |