| Index: chrome/browser/chromeos/policy/user_network_configuration_updater.cc
|
| diff --git a/chrome/browser/chromeos/policy/user_network_configuration_updater.cc b/chrome/browser/chromeos/policy/user_network_configuration_updater.cc
|
| index 1c7ac35da91e1e0daf2c53103eb33553fc96de91..e4ed2525379c540dd32ffd6b1cf8e21d91923487 100644
|
| --- a/chrome/browser/chromeos/policy/user_network_configuration_updater.cc
|
| +++ b/chrome/browser/chromeos/policy/user_network_configuration_updater.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| #include "base/logging.h"
|
| +#include "base/values.h"
|
| #include "chrome/browser/chromeos/login/user.h"
|
| #include "chrome/browser/chromeos/net/onc_utils.h"
|
| #include "chromeos/network/managed_network_configuration_handler.h"
|
| @@ -24,13 +25,11 @@ scoped_ptr<UserNetworkConfigurationUpdater>
|
| UserNetworkConfigurationUpdater::CreateForUserPolicy(
|
| bool allow_trusted_certs_from_policy,
|
| const chromeos::User& user,
|
| - scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer,
|
| PolicyService* policy_service,
|
| chromeos::ManagedNetworkConfigurationHandler* network_config_handler) {
|
| scoped_ptr<UserNetworkConfigurationUpdater> updater(
|
| new UserNetworkConfigurationUpdater(allow_trusted_certs_from_policy,
|
| user,
|
| - certificate_importer.Pass(),
|
| policy_service,
|
| network_config_handler));
|
| updater->Init();
|
| @@ -50,17 +49,24 @@ void UserNetworkConfigurationUpdater::RemoveTrustedCertsObserver(
|
| UserNetworkConfigurationUpdater::UserNetworkConfigurationUpdater(
|
| bool allow_trusted_certs_from_policy,
|
| const chromeos::User& user,
|
| - scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer,
|
| PolicyService* policy_service,
|
| chromeos::ManagedNetworkConfigurationHandler* network_config_handler)
|
| : NetworkConfigurationUpdater(onc::ONC_SOURCE_USER_POLICY,
|
| key::kOpenNetworkConfiguration,
|
| - certificate_importer.Pass(),
|
| policy_service,
|
| network_config_handler),
|
| allow_trusted_certificates_from_policy_(allow_trusted_certs_from_policy),
|
| user_(&user) {}
|
|
|
| +void UserNetworkConfigurationUpdater::SetCertificateImporter(
|
| + scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer) {
|
| + certificate_importer_ = certificate_importer.Pass();
|
| +
|
| + if (pending_certificates_onc_)
|
| + ImportCertificates(*pending_certificates_onc_);
|
| + pending_certificates_onc_.reset();
|
| +}
|
| +
|
| void UserNetworkConfigurationUpdater::GetWebTrustedCertificates(
|
| net::CertificateList* certs) const {
|
| *certs = web_trust_certs_;
|
| @@ -68,6 +74,13 @@ void UserNetworkConfigurationUpdater::GetWebTrustedCertificates(
|
|
|
| void UserNetworkConfigurationUpdater::ImportCertificates(
|
| const base::ListValue& certificates_onc) {
|
| + // If certificate importer is not yet set, cache the certificate onc. It will
|
| + // be imported when the certificate importer gets set.
|
| + if (!certificate_importer_) {
|
| + pending_certificates_onc_.reset(certificates_onc.DeepCopy());
|
| + return;
|
| + }
|
| +
|
| web_trust_certs_.clear();
|
| certificate_importer_->ImportCertificates(
|
| certificates_onc,
|
|
|