OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/chromeos/extensions/networking_private_api.h" | 5 #include "chrome/browser/chromeos/extensions/networking_private_api.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
11 #include "chrome/browser/browser_process.h" | 11 #include "chrome/browser/browser_process.h" |
12 #include "chrome/browser/browser_process_platform_part_chromeos.h" | 12 #include "chrome/browser/browser_process_platform_part_chromeos.h" |
13 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 13 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
14 #include "chrome/browser/extensions/extension_function_registry.h" | 14 #include "chrome/browser/extensions/extension_function_registry.h" |
15 #include "chrome/common/chrome_switches.h" | 15 #include "chrome/common/chrome_switches.h" |
16 #include "chrome/common/extensions/api/networking_private.h" | 16 #include "chrome/common/extensions/api/networking_private.h" |
17 #include "chromeos/dbus/dbus_thread_manager.h" | 17 #include "chromeos/dbus/dbus_thread_manager.h" |
18 #include "chromeos/dbus/shill_manager_client.h" | 18 #include "chromeos/dbus/shill_manager_client.h" |
19 #include "chromeos/network/managed_network_configuration_handler.h" | 19 #include "chromeos/network/managed_network_configuration_handler.h" |
20 #include "chromeos/network/network_state.h" | 20 #include "chromeos/network/network_state.h" |
21 #include "chromeos/network/network_state_handler.h" | 21 #include "chromeos/network/network_state_handler.h" |
22 #include "chromeos/network/onc/onc_constants.h" | 22 #include "chromeos/network/onc/onc_constants.h" |
23 #include "chromeos/network/onc/onc_signature.h" | 23 #include "chromeos/network/onc/onc_signature.h" |
24 #include "chromeos/network/onc/onc_translator.h" | 24 #include "chromeos/network/onc/onc_translator.h" |
25 | 25 |
26 namespace api = extensions::api::networking_private; | 26 namespace api = extensions::api::networking_private; |
27 namespace onc = chromeos::onc; | 27 namespace onc = chromeos::onc; |
28 using chromeos::DBusThreadManager; | 28 using chromeos::DBusThreadManager; |
29 using chromeos::ManagedNetworkConfigurationHandler; | 29 using chromeos::ManagedNetworkConfigurationHandler; |
| 30 using chromeos::NetworkHandler; |
30 using chromeos::NetworkState; | 31 using chromeos::NetworkState; |
31 using chromeos::NetworkStateHandler; | 32 using chromeos::NetworkStateHandler; |
32 using chromeos::ShillManagerClient; | 33 using chromeos::ShillManagerClient; |
33 | 34 |
34 namespace { | 35 namespace { |
35 | 36 |
36 // Helper function that converts between the two types of verification | 37 // Helper function that converts between the two types of verification |
37 // properties. They should always have the same fields, but we do this here to | 38 // properties. They should always have the same fields, but we do this here to |
38 // prevent ShillManagerClient from depending directly on the extension API. | 39 // prevent ShillManagerClient from depending directly on the extension API. |
39 ShillManagerClient::VerificationProperties ConvertVerificationProperties( | 40 ShillManagerClient::VerificationProperties ConvertVerificationProperties( |
(...skipping 20 matching lines...) Expand all Loading... |
60 | 61 |
61 NetworkingPrivateGetPropertiesFunction:: | 62 NetworkingPrivateGetPropertiesFunction:: |
62 ~NetworkingPrivateGetPropertiesFunction() { | 63 ~NetworkingPrivateGetPropertiesFunction() { |
63 } | 64 } |
64 | 65 |
65 bool NetworkingPrivateGetPropertiesFunction::RunImpl() { | 66 bool NetworkingPrivateGetPropertiesFunction::RunImpl() { |
66 scoped_ptr<api::GetProperties::Params> params = | 67 scoped_ptr<api::GetProperties::Params> params = |
67 api::GetProperties::Params::Create(*args_); | 68 api::GetProperties::Params::Create(*args_); |
68 EXTENSION_FUNCTION_VALIDATE(params); | 69 EXTENSION_FUNCTION_VALIDATE(params); |
69 | 70 |
70 ManagedNetworkConfigurationHandler::Get()->GetProperties( | 71 NetworkHandler::Get()->managed_network_configuration_handler()->GetProperties( |
71 params->network_guid, // service path | 72 params->network_guid, // service path |
72 base::Bind(&NetworkingPrivateGetPropertiesFunction::GetPropertiesSuccess, | 73 base::Bind(&NetworkingPrivateGetPropertiesFunction::GetPropertiesSuccess, |
73 this), | 74 this), |
74 base::Bind(&NetworkingPrivateGetPropertiesFunction::GetPropertiesFailed, | 75 base::Bind(&NetworkingPrivateGetPropertiesFunction::GetPropertiesFailed, |
75 this)); | 76 this)); |
76 return true; | 77 return true; |
77 } | 78 } |
78 | 79 |
79 void NetworkingPrivateGetPropertiesFunction::GetPropertiesSuccess( | 80 void NetworkingPrivateGetPropertiesFunction::GetPropertiesSuccess( |
80 const std::string& service_path, | 81 const std::string& service_path, |
(...skipping 27 matching lines...) Expand all Loading... |
108 // User ID hash presence is only enforced when multi-profiles are turned on. | 109 // User ID hash presence is only enforced when multi-profiles are turned on. |
109 std::string user_id_hash; | 110 std::string user_id_hash; |
110 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles)) { | 111 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles)) { |
111 user_id_hash = g_browser_process->platform_part()-> | 112 user_id_hash = g_browser_process->platform_part()-> |
112 profile_helper()->GetUserIdHashFromProfile(profile()); | 113 profile_helper()->GetUserIdHashFromProfile(profile()); |
113 } else { | 114 } else { |
114 user_id_hash = g_browser_process->platform_part()-> | 115 user_id_hash = g_browser_process->platform_part()-> |
115 profile_helper()->active_user_id_hash(); | 116 profile_helper()->active_user_id_hash(); |
116 } | 117 } |
117 | 118 |
118 ManagedNetworkConfigurationHandler::Get()->GetManagedProperties( | 119 NetworkHandler::Get()->managed_network_configuration_handler()-> |
119 user_id_hash, | 120 GetManagedProperties( |
120 params->network_guid, // service path | 121 user_id_hash, |
121 base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Success, | 122 params->network_guid, // service path |
122 this), | 123 base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Success, |
123 base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Failure, | 124 this), |
124 this)); | 125 base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Failure, |
| 126 this)); |
125 return true; | 127 return true; |
126 } | 128 } |
127 | 129 |
128 void NetworkingPrivateGetManagedPropertiesFunction::Success( | 130 void NetworkingPrivateGetManagedPropertiesFunction::Success( |
129 const std::string& service_path, | 131 const std::string& service_path, |
130 const base::DictionaryValue& dictionary) { | 132 const base::DictionaryValue& dictionary) { |
131 base::DictionaryValue* network_properties = dictionary.DeepCopy(); | 133 base::DictionaryValue* network_properties = dictionary.DeepCopy(); |
132 network_properties->SetStringWithoutPathExpansion(onc::network_config::kGUID, | 134 network_properties->SetStringWithoutPathExpansion(onc::network_config::kGUID, |
133 service_path); | 135 service_path); |
134 SetResult(network_properties); | 136 SetResult(network_properties); |
(...skipping 14 matching lines...) Expand all Loading... |
149 ~NetworkingPrivateGetStateFunction() { | 151 ~NetworkingPrivateGetStateFunction() { |
150 } | 152 } |
151 | 153 |
152 bool NetworkingPrivateGetStateFunction::RunImpl() { | 154 bool NetworkingPrivateGetStateFunction::RunImpl() { |
153 scoped_ptr<api::GetState::Params> params = | 155 scoped_ptr<api::GetState::Params> params = |
154 api::GetState::Params::Create(*args_); | 156 api::GetState::Params::Create(*args_); |
155 EXTENSION_FUNCTION_VALIDATE(params); | 157 EXTENSION_FUNCTION_VALIDATE(params); |
156 // The |network_guid| parameter is storing the service path. | 158 // The |network_guid| parameter is storing the service path. |
157 std::string service_path = params->network_guid; | 159 std::string service_path = params->network_guid; |
158 | 160 |
159 const NetworkState* state = | 161 const NetworkState* state = NetworkHandler::Get()->network_state_handler()-> |
160 NetworkStateHandler::Get()->GetNetworkState(service_path); | 162 GetNetworkState(service_path); |
161 if (!state) { | 163 if (!state) { |
162 error_ = "Error.InvalidParameter"; | 164 error_ = "Error.InvalidParameter"; |
163 SendResponse(false); | 165 SendResponse(false); |
164 } | 166 } |
165 | 167 |
166 scoped_ptr<base::DictionaryValue> result_dict(new base::DictionaryValue); | 168 scoped_ptr<base::DictionaryValue> result_dict(new base::DictionaryValue); |
167 state->GetProperties(result_dict.get()); | 169 state->GetProperties(result_dict.get()); |
168 scoped_ptr<base::DictionaryValue> onc_network_part = | 170 scoped_ptr<base::DictionaryValue> onc_network_part = |
169 onc::TranslateShillServiceToONCPart(*result_dict, | 171 onc::TranslateShillServiceToONCPart(*result_dict, |
170 &onc::kNetworkWithStateSignature); | 172 &onc::kNetworkWithStateSignature); |
(...skipping 11 matching lines...) Expand all Loading... |
182 } | 184 } |
183 | 185 |
184 bool NetworkingPrivateSetPropertiesFunction::RunImpl() { | 186 bool NetworkingPrivateSetPropertiesFunction::RunImpl() { |
185 scoped_ptr<api::SetProperties::Params> params = | 187 scoped_ptr<api::SetProperties::Params> params = |
186 api::SetProperties::Params::Create(*args_); | 188 api::SetProperties::Params::Create(*args_); |
187 EXTENSION_FUNCTION_VALIDATE(params); | 189 EXTENSION_FUNCTION_VALIDATE(params); |
188 | 190 |
189 scoped_ptr<base::DictionaryValue> properties_dict( | 191 scoped_ptr<base::DictionaryValue> properties_dict( |
190 params->properties.ToValue()); | 192 params->properties.ToValue()); |
191 | 193 |
192 ManagedNetworkConfigurationHandler::Get()->SetProperties( | 194 NetworkHandler::Get()->managed_network_configuration_handler()->SetProperties( |
193 params->network_guid, // service path | 195 params->network_guid, // service path |
194 *properties_dict, | 196 *properties_dict, |
195 base::Bind(&NetworkingPrivateSetPropertiesFunction::ResultCallback, | 197 base::Bind(&NetworkingPrivateSetPropertiesFunction::ResultCallback, |
196 this), | 198 this), |
197 base::Bind(&NetworkingPrivateSetPropertiesFunction::ErrorCallback, | 199 base::Bind(&NetworkingPrivateSetPropertiesFunction::ErrorCallback, |
198 this)); | 200 this)); |
199 return true; | 201 return true; |
200 } | 202 } |
201 | 203 |
202 void NetworkingPrivateSetPropertiesFunction::ErrorCallback( | 204 void NetworkingPrivateSetPropertiesFunction::ErrorCallback( |
(...skipping 15 matching lines...) Expand all Loading... |
218 } | 220 } |
219 | 221 |
220 bool NetworkingPrivateGetVisibleNetworksFunction::RunImpl() { | 222 bool NetworkingPrivateGetVisibleNetworksFunction::RunImpl() { |
221 scoped_ptr<api::GetVisibleNetworks::Params> params = | 223 scoped_ptr<api::GetVisibleNetworks::Params> params = |
222 api::GetVisibleNetworks::Params::Create(*args_); | 224 api::GetVisibleNetworks::Params::Create(*args_); |
223 EXTENSION_FUNCTION_VALIDATE(params); | 225 EXTENSION_FUNCTION_VALIDATE(params); |
224 std::string type_filter = | 226 std::string type_filter = |
225 api::GetVisibleNetworks::Params::ToString(params->type); | 227 api::GetVisibleNetworks::Params::ToString(params->type); |
226 | 228 |
227 NetworkStateHandler::NetworkStateList network_states; | 229 NetworkStateHandler::NetworkStateList network_states; |
228 NetworkStateHandler::Get()->GetNetworkList(&network_states); | 230 NetworkHandler::Get()->network_state_handler()->GetNetworkList( |
| 231 &network_states); |
229 | 232 |
230 base::ListValue* network_properties_list = new base::ListValue; | 233 base::ListValue* network_properties_list = new base::ListValue; |
231 for (NetworkStateHandler::NetworkStateList::iterator it = | 234 for (NetworkStateHandler::NetworkStateList::iterator it = |
232 network_states.begin(); | 235 network_states.begin(); |
233 it != network_states.end(); ++it) { | 236 it != network_states.end(); ++it) { |
234 const std::string& service_path = (*it)->path(); | 237 const std::string& service_path = (*it)->path(); |
235 base::DictionaryValue shill_dictionary; | 238 base::DictionaryValue shill_dictionary; |
236 (*it)->GetProperties(&shill_dictionary); | 239 (*it)->GetProperties(&shill_dictionary); |
237 | 240 |
238 scoped_ptr<base::DictionaryValue> onc_network_part = | 241 scoped_ptr<base::DictionaryValue> onc_network_part = |
(...skipping 17 matching lines...) Expand all Loading... |
256 } | 259 } |
257 | 260 |
258 //////////////////////////////////////////////////////////////////////////////// | 261 //////////////////////////////////////////////////////////////////////////////// |
259 // NetworkingPrivateRequestNetworkScanFunction | 262 // NetworkingPrivateRequestNetworkScanFunction |
260 | 263 |
261 NetworkingPrivateRequestNetworkScanFunction:: | 264 NetworkingPrivateRequestNetworkScanFunction:: |
262 ~NetworkingPrivateRequestNetworkScanFunction() { | 265 ~NetworkingPrivateRequestNetworkScanFunction() { |
263 } | 266 } |
264 | 267 |
265 bool NetworkingPrivateRequestNetworkScanFunction::RunImpl() { | 268 bool NetworkingPrivateRequestNetworkScanFunction::RunImpl() { |
266 NetworkStateHandler::Get()->RequestScan(); | 269 NetworkHandler::Get()->network_state_handler()->RequestScan(); |
267 return true; | 270 return true; |
268 } | 271 } |
269 | 272 |
270 //////////////////////////////////////////////////////////////////////////////// | 273 //////////////////////////////////////////////////////////////////////////////// |
271 // NetworkingPrivateStartConnectFunction | 274 // NetworkingPrivateStartConnectFunction |
272 | 275 |
273 NetworkingPrivateStartConnectFunction:: | 276 NetworkingPrivateStartConnectFunction:: |
274 ~NetworkingPrivateStartConnectFunction() { | 277 ~NetworkingPrivateStartConnectFunction() { |
275 } | 278 } |
276 | 279 |
277 void NetworkingPrivateStartConnectFunction::ConnectionStartSuccess() { | 280 void NetworkingPrivateStartConnectFunction::ConnectionStartSuccess() { |
278 SendResponse(true); | 281 SendResponse(true); |
279 } | 282 } |
280 | 283 |
281 void NetworkingPrivateStartConnectFunction::ConnectionStartFailed( | 284 void NetworkingPrivateStartConnectFunction::ConnectionStartFailed( |
282 const std::string& error_name, | 285 const std::string& error_name, |
283 const scoped_ptr<base::DictionaryValue> error_data) { | 286 const scoped_ptr<base::DictionaryValue> error_data) { |
284 error_ = error_name; | 287 error_ = error_name; |
285 SendResponse(false); | 288 SendResponse(false); |
286 } | 289 } |
287 | 290 |
288 bool NetworkingPrivateStartConnectFunction::RunImpl() { | 291 bool NetworkingPrivateStartConnectFunction::RunImpl() { |
289 scoped_ptr<api::StartConnect::Params> params = | 292 scoped_ptr<api::StartConnect::Params> params = |
290 api::StartConnect::Params::Create(*args_); | 293 api::StartConnect::Params::Create(*args_); |
291 EXTENSION_FUNCTION_VALIDATE(params); | 294 EXTENSION_FUNCTION_VALIDATE(params); |
292 | 295 |
293 ManagedNetworkConfigurationHandler::Get()->Connect( | 296 NetworkHandler::Get()->managed_network_configuration_handler()->Connect( |
294 params->network_guid, // service path | 297 params->network_guid, // service path |
295 base::Bind( | 298 base::Bind( |
296 &NetworkingPrivateStartConnectFunction::ConnectionStartSuccess, | 299 &NetworkingPrivateStartConnectFunction::ConnectionStartSuccess, |
297 this), | 300 this), |
298 base::Bind( | 301 base::Bind( |
299 &NetworkingPrivateStartConnectFunction::ConnectionStartFailed, | 302 &NetworkingPrivateStartConnectFunction::ConnectionStartFailed, |
300 this)); | 303 this)); |
301 return true; | 304 return true; |
302 } | 305 } |
303 | 306 |
(...skipping 13 matching lines...) Expand all Loading... |
317 const scoped_ptr<base::DictionaryValue> error_data) { | 320 const scoped_ptr<base::DictionaryValue> error_data) { |
318 error_ = error_name; | 321 error_ = error_name; |
319 SendResponse(false); | 322 SendResponse(false); |
320 } | 323 } |
321 | 324 |
322 bool NetworkingPrivateStartDisconnectFunction::RunImpl() { | 325 bool NetworkingPrivateStartDisconnectFunction::RunImpl() { |
323 scoped_ptr<api::StartDisconnect::Params> params = | 326 scoped_ptr<api::StartDisconnect::Params> params = |
324 api::StartDisconnect::Params::Create(*args_); | 327 api::StartDisconnect::Params::Create(*args_); |
325 EXTENSION_FUNCTION_VALIDATE(params); | 328 EXTENSION_FUNCTION_VALIDATE(params); |
326 | 329 |
327 ManagedNetworkConfigurationHandler::Get()->Disconnect( | 330 NetworkHandler::Get()->managed_network_configuration_handler()->Disconnect( |
328 params->network_guid, // service path | 331 params->network_guid, // service path |
329 base::Bind( | 332 base::Bind( |
330 &NetworkingPrivateStartDisconnectFunction::DisconnectionStartSuccess, | 333 &NetworkingPrivateStartDisconnectFunction::DisconnectionStartSuccess, |
331 this), | 334 this), |
332 base::Bind( | 335 base::Bind( |
333 &NetworkingPrivateStartDisconnectFunction::DisconnectionStartFailed, | 336 &NetworkingPrivateStartDisconnectFunction::DisconnectionStartFailed, |
334 this)); | 337 this)); |
335 return true; | 338 return true; |
336 } | 339 } |
337 | 340 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 const std::string& result) { | 448 const std::string& result) { |
446 results_ = api::VerifyAndEncryptData::Results::Create(result); | 449 results_ = api::VerifyAndEncryptData::Results::Create(result); |
447 SendResponse(true); | 450 SendResponse(true); |
448 } | 451 } |
449 | 452 |
450 void NetworkingPrivateVerifyAndEncryptDataFunction::ErrorCallback( | 453 void NetworkingPrivateVerifyAndEncryptDataFunction::ErrorCallback( |
451 const std::string& error_name, const std::string& error) { | 454 const std::string& error_name, const std::string& error) { |
452 error_ = error_name; | 455 error_ = error_name; |
453 SendResponse(false); | 456 SendResponse(false); |
454 } | 457 } |
OLD | NEW |