Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(782)

Unified Diff: chrome/browser/chromeos/cros/network_library_impl_base.cc

Issue 11578005: Rejecting networks/certificates independently on ONC import and policy loading. (Closed) Base URL: http://git.chromium.org/chromium/src.git@reject_network_independently
Patch Set: Addressed Steven's comment. Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « chrome/browser/chromeos/cros/network_library.h ('k') | chrome/browser/policy/network_configuration_updater.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698