Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chromeos/network/network_configuration_handler.h" | 5 #include "chromeos/network/network_configuration_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 249 } | 249 } |
| 250 NET_LOG_USER("ClearProperties", service_path); | 250 NET_LOG_USER("ClearProperties", service_path); |
| 251 for (std::vector<std::string>::const_iterator iter = names.begin(); | 251 for (std::vector<std::string>::const_iterator iter = names.begin(); |
| 252 iter != names.end(); ++iter) { | 252 iter != names.end(); ++iter) { |
| 253 NET_LOG_DEBUG("ClearProperty", service_path + "." + *iter); | 253 NET_LOG_DEBUG("ClearProperty", service_path + "." + *iter); |
| 254 } | 254 } |
| 255 DBusThreadManager::Get()->GetShillServiceClient()->ClearProperties( | 255 DBusThreadManager::Get()->GetShillServiceClient()->ClearProperties( |
| 256 dbus::ObjectPath(service_path), | 256 dbus::ObjectPath(service_path), |
| 257 names, | 257 names, |
| 258 base::Bind(&NetworkConfigurationHandler::ClearPropertiesSuccessCallback, | 258 base::Bind(&NetworkConfigurationHandler::ClearPropertiesSuccessCallback, |
| 259 AsWeakPtr(), service_path, names, callback, error_callback), | 259 AsWeakPtr(), service_path, names, callback), |
| 260 base::Bind(&NetworkConfigurationHandler::ClearPropertiesErrorCallback, | 260 base::Bind(&NetworkConfigurationHandler::ClearPropertiesErrorCallback, |
| 261 AsWeakPtr(), service_path, error_callback)); | 261 AsWeakPtr(), service_path, error_callback)); |
| 262 } | 262 } |
| 263 | 263 |
| 264 void NetworkConfigurationHandler::CreateConfiguration( | 264 void NetworkConfigurationHandler::CreateConfiguration( |
| 265 const base::DictionaryValue& properties, | 265 const base::DictionaryValue& properties, |
| 266 const network_handler::StringResultCallback& callback, | 266 const network_handler::StringResultCallback& callback, |
| 267 const network_handler::ErrorCallback& error_callback) { | 267 const network_handler::ErrorCallback& error_callback) { |
| 268 ShillManagerClient* manager = | 268 ShillManagerClient* manager = |
| 269 DBusThreadManager::Get()->GetShillManagerClient(); | 269 DBusThreadManager::Get()->GetShillManagerClient(); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 387 service_path, error_callback, | 387 service_path, error_callback, |
| 388 dbus_error_name, dbus_error_message); | 388 dbus_error_name, dbus_error_message); |
| 389 // Some properties may have changed so request an update regardless. | 389 // Some properties may have changed so request an update regardless. |
| 390 network_state_handler_->RequestUpdateForNetwork(service_path); | 390 network_state_handler_->RequestUpdateForNetwork(service_path); |
| 391 } | 391 } |
| 392 | 392 |
| 393 void NetworkConfigurationHandler::ClearPropertiesSuccessCallback( | 393 void NetworkConfigurationHandler::ClearPropertiesSuccessCallback( |
| 394 const std::string& service_path, | 394 const std::string& service_path, |
| 395 const std::vector<std::string>& names, | 395 const std::vector<std::string>& names, |
| 396 const base::Closure& callback, | 396 const base::Closure& callback, |
| 397 const network_handler::ErrorCallback& error_callback, | |
| 398 const base::ListValue& result) { | 397 const base::ListValue& result) { |
| 399 const std::string kClearPropertiesFailedError("Error.ClearPropertiesFailed"); | 398 const std::string kClearPropertiesFailedError("Error.ClearPropertiesFailed"); |
|
pneubeck (no reviews)
2014/04/22 20:16:59
unused. (didn't see it earlier)
| |
| 400 DCHECK(names.size() == result.GetSize()) | 399 DCHECK(names.size() == result.GetSize()) |
| 401 << "Incorrect result size from ClearProperties."; | 400 << "Incorrect result size from ClearProperties."; |
| 402 | 401 |
| 403 bool some_failed = false; | |
| 404 for (size_t i = 0; i < result.GetSize(); ++i) { | 402 for (size_t i = 0; i < result.GetSize(); ++i) { |
| 405 bool success = false; | 403 bool success = false; |
| 406 result.GetBoolean(i, &success); | 404 result.GetBoolean(i, &success); |
| 407 if (!success) { | 405 if (!success) { |
| 406 // If a property was cleared that has never been set, the clear will fail. | |
| 407 // We do not track which properties have been set, so just log the error. | |
| 408 NET_LOG_ERROR("ClearProperties Failed: " + names[i], service_path); | 408 NET_LOG_ERROR("ClearProperties Failed: " + names[i], service_path); |
| 409 some_failed = true; | |
| 410 } | 409 } |
| 411 } | 410 } |
| 412 | 411 |
| 413 if (some_failed) { | 412 if (!callback.is_null()) |
| 414 if (!error_callback.is_null()) { | |
| 415 scoped_ptr<base::DictionaryValue> error_data( | |
| 416 network_handler::CreateErrorData( | |
| 417 service_path, kClearPropertiesFailedError, | |
| 418 base::StringPrintf("Errors: %" PRIuS, result.GetSize()))); | |
| 419 error_data->Set("errors", result.DeepCopy()); | |
| 420 scoped_ptr<base::ListValue> name_list(new base::ListValue); | |
| 421 name_list->AppendStrings(names); | |
| 422 error_data->Set("names", name_list.release()); | |
| 423 error_callback.Run(kClearPropertiesFailedError, error_data.Pass()); | |
| 424 } | |
| 425 } else if (!callback.is_null()) { | |
| 426 callback.Run(); | 413 callback.Run(); |
| 427 } | |
| 428 network_state_handler_->RequestUpdateForNetwork(service_path); | 414 network_state_handler_->RequestUpdateForNetwork(service_path); |
| 429 } | 415 } |
| 430 | 416 |
| 431 void NetworkConfigurationHandler::ClearPropertiesErrorCallback( | 417 void NetworkConfigurationHandler::ClearPropertiesErrorCallback( |
| 432 const std::string& service_path, | 418 const std::string& service_path, |
| 433 const network_handler::ErrorCallback& error_callback, | 419 const network_handler::ErrorCallback& error_callback, |
| 434 const std::string& dbus_error_name, | 420 const std::string& dbus_error_name, |
| 435 const std::string& dbus_error_message) { | 421 const std::string& dbus_error_message) { |
| 436 network_handler::ShillErrorCallbackFunction( | 422 network_handler::ShillErrorCallbackFunction( |
| 437 "Config.ClearProperties Failed", | 423 "Config.ClearProperties Failed", |
| 438 service_path, error_callback, | 424 service_path, error_callback, |
| 439 dbus_error_name, dbus_error_message); | 425 dbus_error_name, dbus_error_message); |
| 440 // Some properties may have changed so request an update regardless. | 426 // Some properties may have changed so request an update regardless. |
| 441 network_state_handler_->RequestUpdateForNetwork(service_path); | 427 network_state_handler_->RequestUpdateForNetwork(service_path); |
| 442 } | 428 } |
| 443 | 429 |
| 444 // static | 430 // static |
| 445 NetworkConfigurationHandler* NetworkConfigurationHandler::InitializeForTest( | 431 NetworkConfigurationHandler* NetworkConfigurationHandler::InitializeForTest( |
| 446 NetworkStateHandler* network_state_handler) { | 432 NetworkStateHandler* network_state_handler) { |
| 447 NetworkConfigurationHandler* handler = new NetworkConfigurationHandler(); | 433 NetworkConfigurationHandler* handler = new NetworkConfigurationHandler(); |
| 448 handler->Init(network_state_handler); | 434 handler->Init(network_state_handler); |
| 449 return handler; | 435 return handler; |
| 450 } | 436 } |
| 451 | 437 |
| 452 } // namespace chromeos | 438 } // namespace chromeos |
| OLD | NEW |