| 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/network_config_message_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/network_config_message_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 } | 145 } |
| 146 | 146 |
| 147 void NetworkConfigMessageHandler::GetPropertiesSuccess( | 147 void NetworkConfigMessageHandler::GetPropertiesSuccess( |
| 148 int callback_id, | 148 int callback_id, |
| 149 const std::string& service_path, | 149 const std::string& service_path, |
| 150 const base::DictionaryValue& dictionary) const { | 150 const base::DictionaryValue& dictionary) const { |
| 151 base::ListValue return_arg_list; | 151 base::ListValue return_arg_list; |
| 152 return_arg_list.AppendInteger(callback_id); | 152 return_arg_list.AppendInteger(callback_id); |
| 153 | 153 |
| 154 base::DictionaryValue* network_properties = dictionary.DeepCopy(); | 154 base::DictionaryValue* network_properties = dictionary.DeepCopy(); |
| 155 // Set the 'ServicePath' property for debugging. |
| 155 network_properties->SetStringWithoutPathExpansion( | 156 network_properties->SetStringWithoutPathExpansion( |
| 156 ::onc::network_config::kGUID, service_path); | 157 "ServicePath", service_path); |
| 158 |
| 157 return_arg_list.Append(network_properties); | 159 return_arg_list.Append(network_properties); |
| 158 InvokeCallback(return_arg_list); | 160 InvokeCallback(return_arg_list); |
| 159 } | 161 } |
| 160 | 162 |
| 161 void NetworkConfigMessageHandler::GetShillProperties( | 163 void NetworkConfigMessageHandler::GetShillProperties( |
| 162 const base::ListValue* arg_list) { | 164 const base::ListValue* arg_list) { |
| 163 int callback_id = 0; | 165 int callback_id = 0; |
| 164 std::string guid; | 166 std::string guid; |
| 165 if (!arg_list->GetInteger(0, &callback_id) || | 167 if (!arg_list->GetInteger(0, &callback_id) || |
| 166 !arg_list->GetString(1, &guid)) { | 168 !arg_list->GetString(1, &guid)) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 178 weak_ptr_factory_.GetWeakPtr(), callback_id), | 180 weak_ptr_factory_.GetWeakPtr(), callback_id), |
| 179 base::Bind(&NetworkConfigMessageHandler::ErrorCallback, | 181 base::Bind(&NetworkConfigMessageHandler::ErrorCallback, |
| 180 weak_ptr_factory_.GetWeakPtr(), callback_id)); | 182 weak_ptr_factory_.GetWeakPtr(), callback_id)); |
| 181 } | 183 } |
| 182 | 184 |
| 183 void NetworkConfigMessageHandler::GetShillPropertiesSuccess( | 185 void NetworkConfigMessageHandler::GetShillPropertiesSuccess( |
| 184 int callback_id, | 186 int callback_id, |
| 185 const std::string& service_path, | 187 const std::string& service_path, |
| 186 const base::DictionaryValue& dictionary) const { | 188 const base::DictionaryValue& dictionary) const { |
| 187 scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy()); | 189 scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy()); |
| 190 // Set the 'ServicePath' property for debugging. |
| 191 dictionary_copy->SetStringWithoutPathExpansion("ServicePath", service_path); |
| 188 | 192 |
| 189 // Get the device properties for debugging. | 193 // Get the device properties for debugging. |
| 190 std::string device; | 194 std::string device; |
| 191 dictionary_copy->GetStringWithoutPathExpansion( | 195 dictionary_copy->GetStringWithoutPathExpansion( |
| 192 shill::kDeviceProperty, &device); | 196 shill::kDeviceProperty, &device); |
| 193 const DeviceState* device_state = | 197 const DeviceState* device_state = |
| 194 NetworkHandler::Get()->network_state_handler()->GetDeviceState(device); | 198 NetworkHandler::Get()->network_state_handler()->GetDeviceState(device); |
| 195 if (device_state) { | 199 if (device_state) { |
| 196 base::DictionaryValue* device_dictionary = | 200 base::DictionaryValue* device_dictionary = |
| 197 device_state->properties().DeepCopy(); | 201 device_state->properties().DeepCopy(); |
| 198 dictionary_copy->Set(shill::kDeviceProperty, device_dictionary); | 202 dictionary_copy->Set(shill::kDeviceProperty, device_dictionary); |
| 203 |
| 204 // Convert IPConfig dictionary to a ListValue. |
| 205 base::ListValue* ip_configs = new base::ListValue; |
| 206 for (base::DictionaryValue::Iterator iter(device_state->ip_configs()); |
| 207 !iter.IsAtEnd(); iter.Advance()) { |
| 208 ip_configs->Append(iter.value().DeepCopy()); |
| 209 } |
| 210 device_dictionary->SetWithoutPathExpansion( |
| 211 shill::kIPConfigsProperty, ip_configs); |
| 199 } | 212 } |
| 200 GetPropertiesSuccess(callback_id, service_path, *dictionary_copy); | 213 |
| 214 base::ListValue return_arg_list; |
| 215 return_arg_list.AppendInteger(callback_id); |
| 216 return_arg_list.Append(dictionary_copy.release()); |
| 217 InvokeCallback(return_arg_list); |
| 201 } | 218 } |
| 202 | 219 |
| 203 void NetworkConfigMessageHandler::InvokeCallback( | 220 void NetworkConfigMessageHandler::InvokeCallback( |
| 204 const base::ListValue& arg_list) const { | 221 const base::ListValue& arg_list) const { |
| 205 web_ui()->CallJavascriptFunction( | 222 web_ui()->CallJavascriptFunction( |
| 206 "networkConfig.chromeCallbackSuccess", arg_list); | 223 "networkConfig.chromeCallbackSuccess", arg_list); |
| 207 } | 224 } |
| 208 | 225 |
| 209 void NetworkConfigMessageHandler::ErrorCallback( | 226 void NetworkConfigMessageHandler::ErrorCallback( |
| 210 int callback_id, | 227 int callback_id, |
| 211 const std::string& error_name, | 228 const std::string& error_name, |
| 212 scoped_ptr<base::DictionaryValue> error_data) const { | 229 scoped_ptr<base::DictionaryValue> error_data) const { |
| 213 LOG(ERROR) << "NetworkConfigMessageHandler Error: " << error_name; | 230 LOG(ERROR) << "NetworkConfigMessageHandler Error: " << error_name; |
| 214 base::ListValue arg_list; | 231 base::ListValue arg_list; |
| 215 arg_list.AppendInteger(callback_id); | 232 arg_list.AppendInteger(callback_id); |
| 216 arg_list.AppendString(error_name); | 233 arg_list.AppendString(error_name); |
| 217 web_ui()->CallJavascriptFunction( | 234 web_ui()->CallJavascriptFunction( |
| 218 "networkConfig.chromeCallbackError", arg_list); | 235 "networkConfig.chromeCallbackError", arg_list); |
| 219 } | 236 } |
| 220 | 237 |
| 221 } // namespace chromeos | 238 } // namespace chromeos |
| OLD | NEW |