#include "chromeos/network/managed_network_configuration_handler.h"
#include "chromeos/network/onc/onc_certificate_importer_impl.h"
#include "components/user_manager/user.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_source.h"
#include "net/cert/x509_certificate.h"
#include "policy/policy_constants.h"
*certs = web_trust_certs_;
}
+void UserNetworkConfigurationUpdater::OnCertificatesImported(
+ bool /* unused success */,
+ const net::CertificateList& onc_trusted_certificates) {
+ web_trust_certs_.clear();
+ if (allow_trusted_certificates_from_policy_)
+ web_trust_certs_ = onc_trusted_certificates;
+ NotifyTrustAnchorsChanged();
+}
+
void UserNetworkConfigurationUpdater::ImportCertificates(
const base::ListValue& certificates_onc) {
// If certificate importer is not yet set, cache the certificate onc. It will
return;
}
- web_trust_certs_.clear();
certificate_importer_->ImportCertificates(
certificates_onc,
onc_source_,
- allow_trusted_certificates_from_policy_ ? &web_trust_certs_ : NULL);
-
- NotifyTrustAnchorsChanged();
+ base::Bind(&UserNetworkConfigurationUpdater::OnCertificatesImported,
+ base::Unretained(this)));
}
void UserNetworkConfigurationUpdater::ApplyNetworkPolicy(
net::NSSCertDatabase* database) {
DCHECK(database);
SetCertificateImporter(scoped_ptr<chromeos::onc::CertificateImporter>(
- new chromeos::onc::CertificateImporterImpl(database)));
+ new chromeos::onc::CertificateImporterImpl(
+ content::BrowserThread::GetMessageLoopProxyForThread(
+ content::BrowserThread::IO),
+ database)));
}
void UserNetworkConfigurationUpdater::SetCertificateImporter(