| Index: chrome/browser/chromeos/cros/network_library_impl_base.cc
|
| diff --git a/chrome/browser/chromeos/cros/network_library_impl_base.cc b/chrome/browser/chromeos/cros/network_library_impl_base.cc
|
| index fdce28ca081fd30545ea04fb473cdcff7aa61ed7..a9ec8c2af91313c16f58f5e107269f719acd738f 100644
|
| --- a/chrome/browser/chromeos/cros/network_library_impl_base.cc
|
| +++ b/chrome/browser/chromeos/cros/network_library_impl_base.cc
|
| @@ -1071,7 +1071,6 @@ bool NetworkLibraryImplBase::LoadOncNetworks(const std::string& onc_blob,
|
| true, // Fail on missing fields.
|
| from_policy);
|
|
|
| - // Unknown fields are removed from the result.
|
| onc::Validator::Result validation_result;
|
| validator.ValidateAndRepairObject(&onc::kToplevelConfigurationSignature,
|
| *root_dict,
|
| @@ -1082,12 +1081,14 @@ bool NetworkLibraryImplBase::LoadOncNetworks(const std::string& onc_blob,
|
| validation_result == onc::Validator::VALID);
|
| }
|
|
|
| + bool success = true;
|
| if (validation_result == onc::Validator::VALID_WITH_WARNINGS) {
|
| LOG(WARNING) << "ONC from " << onc::GetSourceAsString(source)
|
| << " produced warnings.";
|
| } else if (validation_result == onc::Validator::INVALID) {
|
| LOG(ERROR) << "ONC from " << onc::GetSourceAsString(source)
|
| << " is invalid and couldn't be repaired.";
|
| + success = false;
|
| }
|
|
|
| const base::ListValue* certificates;
|
| @@ -1107,7 +1108,7 @@ bool NetworkLibraryImplBase::LoadOncNetworks(const std::string& onc_blob,
|
| onc::CertificateImporter::IMPORT_OK) {
|
| LOG(ERROR) << "Cannot parse some of the certificates in the ONC from "
|
| << onc::GetSourceAsString(source);
|
| - return false;
|
| + success = false;
|
| }
|
| }
|
|
|
| @@ -1128,7 +1129,8 @@ bool NetworkLibraryImplBase::LoadOncNetworks(const std::string& onc_blob,
|
| if (!network) {
|
| LOG(ERROR) << "Error during ONC parsing network at index " << i
|
| << " from " << onc::GetSourceAsString(source);
|
| - return false;
|
| + success = false;
|
| + continue;
|
| }
|
|
|
| // Disallow anything but WiFi and Ethernet for device-level policy (which
|
| @@ -1215,14 +1217,11 @@ bool NetworkLibraryImplBase::LoadOncNetworks(const std::string& onc_blob,
|
| // ONC blob. We first collect the networks and do the actual deletion later
|
| // because ForgetNetwork() changes the remembered network vectors.
|
| ForgetNetworksById(source, network_ids, false);
|
| - } else if (source == onc::ONC_SOURCE_USER_IMPORT) {
|
| - if (removal_ids.empty())
|
| - return true;
|
| -
|
| + } else if (source == onc::ONC_SOURCE_USER_IMPORT && !removal_ids.empty()) {
|
| ForgetNetworksById(source, removal_ids, true);
|
| }
|
|
|
| - return true;
|
| + return success;
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////
|
|
|