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

Unified Diff: chrome/browser/chromeos/policy/user_network_configuration_updater.cc

Issue 148183013: Use per-user nssdb in onc certificate importer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 10 months 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/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,

Powered by Google App Engine
This is Rietveld 408576698