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

Side by Side Diff: chrome/browser/chromeos/policy/user_network_configuration_updater.cc

Issue 24153012: Fix cyclic dependency between ProfilePolicyConnector and PrefService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed. Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h" 5 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "chrome/browser/chromeos/login/user.h" 10 #include "chrome/browser/chromeos/login/user.h"
11 #include "chrome/browser/chromeos/net/onc_utils.h" 11 #include "chrome/browser/chromeos/net/onc_utils.h"
12 #include "chrome/browser/chromeos/policy/policy_cert_verifier.h"
13 #include "chromeos/network/managed_network_configuration_handler.h" 12 #include "chromeos/network/managed_network_configuration_handler.h"
14 #include "chromeos/network/onc/onc_certificate_importer.h" 13 #include "chromeos/network/onc/onc_certificate_importer.h"
15 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
16 #include "net/cert/x509_certificate.h" 15 #include "net/cert/x509_certificate.h"
17 #include "policy/policy_constants.h" 16 #include "policy/policy_constants.h"
18 17
19 namespace policy { 18 namespace policy {
20 19
21 UserNetworkConfigurationUpdater::~UserNetworkConfigurationUpdater() {} 20 UserNetworkConfigurationUpdater::~UserNetworkConfigurationUpdater() {}
22 21
23 // static 22 // static
24 scoped_ptr<UserNetworkConfigurationUpdater> 23 scoped_ptr<UserNetworkConfigurationUpdater>
25 UserNetworkConfigurationUpdater::CreateForUserPolicy( 24 UserNetworkConfigurationUpdater::CreateForUserPolicy(
26 bool allow_trusted_certs_from_policy, 25 bool allow_trusted_certs_from_policy,
27 const chromeos::User& user, 26 const chromeos::User& user,
28 scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer, 27 scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer,
29 PolicyService* policy_service, 28 PolicyService* policy_service,
30 chromeos::ManagedNetworkConfigurationHandler* network_config_handler) { 29 chromeos::ManagedNetworkConfigurationHandler* network_config_handler) {
31 scoped_ptr<UserNetworkConfigurationUpdater> updater( 30 scoped_ptr<UserNetworkConfigurationUpdater> updater(
32 new UserNetworkConfigurationUpdater(allow_trusted_certs_from_policy, 31 new UserNetworkConfigurationUpdater(allow_trusted_certs_from_policy,
33 user, 32 user,
34 certificate_importer.Pass(), 33 certificate_importer.Pass(),
35 policy_service, 34 policy_service,
36 network_config_handler)); 35 network_config_handler));
37 updater->Init(); 36 updater->Init();
38 return updater.Pass(); 37 return updater.Pass();
39 } 38 }
40 39
40 void UserNetworkConfigurationUpdater::AddTrustedCertsObserver(
41 WebTrustedCertsObserver* observer) {
42 observer_list_.AddObserver(observer);
43 }
44
45 void UserNetworkConfigurationUpdater::RemoveTrustedCertsObserver(
46 WebTrustedCertsObserver* observer) {
47 observer_list_.RemoveObserver(observer);
48 }
49
41 UserNetworkConfigurationUpdater::UserNetworkConfigurationUpdater( 50 UserNetworkConfigurationUpdater::UserNetworkConfigurationUpdater(
42 bool allow_trusted_certs_from_policy, 51 bool allow_trusted_certs_from_policy,
43 const chromeos::User& user, 52 const chromeos::User& user,
44 scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer, 53 scoped_ptr<chromeos::onc::CertificateImporter> certificate_importer,
45 PolicyService* policy_service, 54 PolicyService* policy_service,
46 chromeos::ManagedNetworkConfigurationHandler* network_config_handler) 55 chromeos::ManagedNetworkConfigurationHandler* network_config_handler)
47 : NetworkConfigurationUpdater(onc::ONC_SOURCE_USER_POLICY, 56 : NetworkConfigurationUpdater(onc::ONC_SOURCE_USER_POLICY,
48 key::kOpenNetworkConfiguration, 57 key::kOpenNetworkConfiguration,
49 certificate_importer.Pass(), 58 certificate_importer.Pass(),
50 policy_service, 59 policy_service,
51 network_config_handler), 60 network_config_handler),
52 allow_trusted_certificates_from_policy_(allow_trusted_certs_from_policy), 61 allow_trusted_certificates_from_policy_(allow_trusted_certs_from_policy),
53 user_(&user), 62 user_(&user) {}
54 cert_verifier_(NULL) {}
55
56 void UserNetworkConfigurationUpdater::SetPolicyCertVerifier(
57 PolicyCertVerifier* cert_verifier) {
58 cert_verifier_ = cert_verifier;
59 SetTrustAnchors();
60 }
61 63
62 void UserNetworkConfigurationUpdater::GetWebTrustedCertificates( 64 void UserNetworkConfigurationUpdater::GetWebTrustedCertificates(
63 net::CertificateList* certs) const { 65 net::CertificateList* certs) const {
64 *certs = web_trust_certs_; 66 *certs = web_trust_certs_;
65 } 67 }
66 68
67 void UserNetworkConfigurationUpdater::ImportCertificates( 69 void UserNetworkConfigurationUpdater::ImportCertificates(
68 const base::ListValue& certificates_onc) { 70 const base::ListValue& certificates_onc) {
69 web_trust_certs_.clear(); 71 web_trust_certs_.clear();
70 certificate_importer_->ImportCertificates( 72 certificate_importer_->ImportCertificates(
71 certificates_onc, 73 certificates_onc,
72 onc_source_, 74 onc_source_,
73 allow_trusted_certificates_from_policy_ ? &web_trust_certs_ : NULL); 75 allow_trusted_certificates_from_policy_ ? &web_trust_certs_ : NULL);
74 76
75 SetTrustAnchors(); 77 NotifyTrustAnchorsChanged();
76 } 78 }
77 79
78 void UserNetworkConfigurationUpdater::ApplyNetworkPolicy( 80 void UserNetworkConfigurationUpdater::ApplyNetworkPolicy(
79 base::ListValue* network_configs_onc, 81 base::ListValue* network_configs_onc,
80 base::DictionaryValue* global_network_config) { 82 base::DictionaryValue* global_network_config) {
81 DCHECK(user_); 83 DCHECK(user_);
82 chromeos::onc::ExpandStringPlaceholdersInNetworksForUser(user_, 84 chromeos::onc::ExpandStringPlaceholdersInNetworksForUser(user_,
83 network_configs_onc); 85 network_configs_onc);
84 network_config_handler_->SetPolicy(onc_source_, 86 network_config_handler_->SetPolicy(onc_source_,
85 user_->username_hash(), 87 user_->username_hash(),
86 *network_configs_onc, 88 *network_configs_onc,
87 *global_network_config); 89 *global_network_config);
88 } 90 }
89 91
90 void UserNetworkConfigurationUpdater::SetTrustAnchors() { 92 void UserNetworkConfigurationUpdater::NotifyTrustAnchorsChanged() {
91 if (!cert_verifier_) 93 FOR_EACH_OBSERVER(WebTrustedCertsObserver,
92 return; 94 observer_list_,
93 content::BrowserThread::PostTask( 95 OnTrustAnchorsChanged(web_trust_certs_));
94 content::BrowserThread::IO,
95 FROM_HERE,
96 base::Bind(&PolicyCertVerifier::SetTrustAnchors,
97 base::Unretained(cert_verifier_),
98 web_trust_certs_));
99 } 96 }
100 97
101 } // namespace policy 98 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/policy/user_network_configuration_updater.h ('k') | chrome/browser/policy/profile_policy_connector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698