| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/chromeos/power_ui.h" | 5 #include "chrome/browser/ui/webui/chromeos/power_ui.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> |
| 10 |
| 9 #include "base/bind.h" | 11 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 12 #include "base/bind_helpers.h" |
| 11 #include "base/compiler_specific.h" | 13 #include "base/compiler_specific.h" |
| 12 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
| 13 #include "base/time/time.h" | 15 #include "base/time/time.h" |
| 14 #include "base/values.h" | 16 #include "base/values.h" |
| 15 #include "chrome/browser/chromeos/power/power_data_collector.h" | 17 #include "chrome/browser/chromeos/power/power_data_collector.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
| 17 #include "chrome/common/url_constants.h" | 19 #include "chrome/common/url_constants.h" |
| 18 #include "chrome/grit/browser_resources.h" | 20 #include "chrome/grit/browser_resources.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 PowerDataCollector::Get()->power_supply_data(); | 86 PowerDataCollector::Get()->power_supply_data(); |
| 85 base::ListValue js_power_supply_data; | 87 base::ListValue js_power_supply_data; |
| 86 for (size_t i = 0; i < power_supply.size(); ++i) { | 88 for (size_t i = 0; i < power_supply.size(); ++i) { |
| 87 const PowerDataCollector::PowerSupplySample& sample = power_supply[i]; | 89 const PowerDataCollector::PowerSupplySample& sample = power_supply[i]; |
| 88 std::unique_ptr<base::DictionaryValue> element(new base::DictionaryValue); | 90 std::unique_ptr<base::DictionaryValue> element(new base::DictionaryValue); |
| 89 element->SetDouble("batteryPercent", sample.battery_percent); | 91 element->SetDouble("batteryPercent", sample.battery_percent); |
| 90 element->SetDouble("batteryDischargeRate", sample.battery_discharge_rate); | 92 element->SetDouble("batteryDischargeRate", sample.battery_discharge_rate); |
| 91 element->SetBoolean("externalPower", sample.external_power); | 93 element->SetBoolean("externalPower", sample.external_power); |
| 92 element->SetDouble("time", sample.time.ToJsTime()); | 94 element->SetDouble("time", sample.time.ToJsTime()); |
| 93 | 95 |
| 94 js_power_supply_data.Append(element.release()); | 96 js_power_supply_data.Append(std::move(element)); |
| 95 } | 97 } |
| 96 | 98 |
| 97 base::ListValue js_system_resumed_data; | 99 base::ListValue js_system_resumed_data; |
| 98 GetJsSystemResumedData(&js_system_resumed_data); | 100 GetJsSystemResumedData(&js_system_resumed_data); |
| 99 | 101 |
| 100 web_ui()->CallJavascriptFunctionUnsafe(kOnRequestBatteryChargeDataFunction, | 102 web_ui()->CallJavascriptFunctionUnsafe(kOnRequestBatteryChargeDataFunction, |
| 101 js_power_supply_data, | 103 js_power_supply_data, |
| 102 js_system_resumed_data); | 104 js_system_resumed_data); |
| 103 } | 105 } |
| 104 | 106 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 | 145 |
| 144 const std::deque<PowerDataCollector::SystemResumedSample>& system_resumed = | 146 const std::deque<PowerDataCollector::SystemResumedSample>& system_resumed = |
| 145 PowerDataCollector::Get()->system_resumed_data(); | 147 PowerDataCollector::Get()->system_resumed_data(); |
| 146 for (size_t i = 0; i < system_resumed.size(); ++i) { | 148 for (size_t i = 0; i < system_resumed.size(); ++i) { |
| 147 const PowerDataCollector::SystemResumedSample& sample = system_resumed[i]; | 149 const PowerDataCollector::SystemResumedSample& sample = system_resumed[i]; |
| 148 std::unique_ptr<base::DictionaryValue> element(new base::DictionaryValue); | 150 std::unique_ptr<base::DictionaryValue> element(new base::DictionaryValue); |
| 149 element->SetDouble("sleepDuration", | 151 element->SetDouble("sleepDuration", |
| 150 sample.sleep_duration.InMillisecondsF()); | 152 sample.sleep_duration.InMillisecondsF()); |
| 151 element->SetDouble("time", sample.time.ToJsTime()); | 153 element->SetDouble("time", sample.time.ToJsTime()); |
| 152 | 154 |
| 153 data->Append(element.release()); | 155 data->Append(std::move(element)); |
| 154 } | 156 } |
| 155 } | 157 } |
| 156 | 158 |
| 157 void PowerMessageHandler::GetJsStateOccupancyData( | 159 void PowerMessageHandler::GetJsStateOccupancyData( |
| 158 const std::vector<CpuDataCollector::StateOccupancySampleDeque>& data, | 160 const std::vector<CpuDataCollector::StateOccupancySampleDeque>& data, |
| 159 const std::vector<std::string>& state_names, | 161 const std::vector<std::string>& state_names, |
| 160 base::ListValue *js_data) { | 162 base::ListValue *js_data) { |
| 161 for (unsigned int cpu = 0; cpu < data.size(); ++cpu) { | 163 for (unsigned int cpu = 0; cpu < data.size(); ++cpu) { |
| 162 const CpuDataCollector::StateOccupancySampleDeque& sample_deque = data[cpu]; | 164 const CpuDataCollector::StateOccupancySampleDeque& sample_deque = data[cpu]; |
| 163 std::unique_ptr<base::ListValue> js_sample_list(new base::ListValue); | 165 std::unique_ptr<base::ListValue> js_sample_list(new base::ListValue); |
| 164 for (unsigned int i = 0; i < sample_deque.size(); ++i) { | 166 for (unsigned int i = 0; i < sample_deque.size(); ++i) { |
| 165 const CpuDataCollector::StateOccupancySample& sample = sample_deque[i]; | 167 const CpuDataCollector::StateOccupancySample& sample = sample_deque[i]; |
| 166 std::unique_ptr<base::DictionaryValue> js_sample( | 168 std::unique_ptr<base::DictionaryValue> js_sample( |
| 167 new base::DictionaryValue); | 169 new base::DictionaryValue); |
| 168 js_sample->SetDouble("time", sample.time.ToJsTime()); | 170 js_sample->SetDouble("time", sample.time.ToJsTime()); |
| 169 js_sample->SetBoolean("cpuOnline", sample.cpu_online); | 171 js_sample->SetBoolean("cpuOnline", sample.cpu_online); |
| 170 | 172 |
| 171 std::unique_ptr<base::DictionaryValue> state_dict( | 173 std::unique_ptr<base::DictionaryValue> state_dict( |
| 172 new base::DictionaryValue); | 174 new base::DictionaryValue); |
| 173 for (size_t index = 0; index < sample.time_in_state.size(); ++index) { | 175 for (size_t index = 0; index < sample.time_in_state.size(); ++index) { |
| 174 state_dict->SetDouble(state_names[index], | 176 state_dict->SetDouble(state_names[index], |
| 175 static_cast<double>(sample.time_in_state[index])); | 177 static_cast<double>(sample.time_in_state[index])); |
| 176 } | 178 } |
| 177 js_sample->Set("timeInState", state_dict.release()); | 179 js_sample->Set("timeInState", state_dict.release()); |
| 178 | 180 |
| 179 js_sample_list->Append(js_sample.release()); | 181 js_sample_list->Append(std::move(js_sample)); |
| 180 } | 182 } |
| 181 js_data->Append(js_sample_list.release()); | 183 js_data->Append(std::move(js_sample_list)); |
| 182 } | 184 } |
| 183 } | 185 } |
| 184 | 186 |
| 185 } // namespace | 187 } // namespace |
| 186 | 188 |
| 187 PowerUI::PowerUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { | 189 PowerUI::PowerUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { |
| 188 web_ui->AddMessageHandler(new PowerMessageHandler()); | 190 web_ui->AddMessageHandler(new PowerMessageHandler()); |
| 189 | 191 |
| 190 content::WebUIDataSource* html = | 192 content::WebUIDataSource* html = |
| 191 content::WebUIDataSource::Create(chrome::kChromeUIPowerHost); | 193 content::WebUIDataSource::Create(chrome::kChromeUIPowerHost); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 html->SetDefaultResource(IDR_ABOUT_POWER_HTML); | 237 html->SetDefaultResource(IDR_ABOUT_POWER_HTML); |
| 236 | 238 |
| 237 Profile* profile = Profile::FromWebUI(web_ui); | 239 Profile* profile = Profile::FromWebUI(web_ui); |
| 238 content::WebUIDataSource::Add(profile, html); | 240 content::WebUIDataSource::Add(profile, html); |
| 239 } | 241 } |
| 240 | 242 |
| 241 PowerUI::~PowerUI() { | 243 PowerUI::~PowerUI() { |
| 242 } | 244 } |
| 243 | 245 |
| 244 } // namespace chromeos | 246 } // namespace chromeos |
| OLD | NEW |