Index: chrome/browser/chromeos/policy/network_configuration_updater_impl.cc |
diff --git a/chrome/browser/chromeos/policy/network_configuration_updater_impl.cc b/chrome/browser/chromeos/policy/network_configuration_updater_impl.cc |
index 54e403331dd4cc0e51049da1904d3ca8f47a9834..5fa896cd6a6607c51ee83bf2c2955cc8cdcfdad8 100644 |
--- a/chrome/browser/chromeos/policy/network_configuration_updater_impl.cc |
+++ b/chrome/browser/chromeos/policy/network_configuration_updater_impl.cc |
@@ -97,15 +97,24 @@ void NetworkConfigurationUpdaterImpl::ApplyNetworkConfiguration( |
ParseAndValidateOncForImport( |
onc_blob, onc_source, "", &network_configs, &certificates); |
+ chromeos::CertificateHandler::CertsByGUID imported_server_and_ca_certs; |
+ scoped_ptr<net::CertificateList> web_trust_certs(new net::CertificateList); |
+ certificate_handler_->ImportCertificates( |
+ certificates, onc_source, web_trust_certs.get(), |
+ &imported_server_and_ca_certs); |
+ |
+ if (!chromeos::onc::ResolveServerCertRefsInNetworks( |
+ imported_server_and_ca_certs, &network_configs)) { |
+ LOG(ERROR) << "Some certificate references in the ONC policy for source " |
+ << chromeos::onc::GetSourceAsString(onc_source) |
+ << " could not be resolved."; |
+ } |
+ |
std::string userhash = onc_source == chromeos::onc::ONC_SOURCE_USER_POLICY ? |
hashed_username_ : std::string(); |
chromeos::NetworkHandler::Get()->managed_network_configuration_handler()-> |
SetPolicy(onc_source, userhash, network_configs); |
- scoped_ptr<net::CertificateList> web_trust_certs(new net::CertificateList); |
- certificate_handler_->ImportCertificates( |
- certificates, onc_source, web_trust_certs.get()); |
- |
if (onc_source == chromeos::onc::ONC_SOURCE_USER_POLICY) |
SetTrustAnchors(web_trust_certs.Pass()); |
} |