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

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

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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/policy/user_network_configuration_updater.h
diff --git a/chrome/browser/chromeos/policy/user_network_configuration_updater.h b/chrome/browser/chromeos/policy/user_network_configuration_updater.h
index e3f2618ea1e3579d88197acced26ece0fa4a4c27..90df5e72472c9e719af49460ee4ab266559f4a92 100644
--- a/chrome/browser/chromeos/policy/user_network_configuration_updater.h
+++ b/chrome/browser/chromeos/policy/user_network_configuration_updater.h
@@ -11,6 +11,7 @@
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
+#include "base/observer_list.h"
#include "chrome/browser/chromeos/policy/network_configuration_updater.h"
#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
@@ -25,16 +26,22 @@ typedef std::vector<scoped_refptr<X509Certificate> > CertificateList;
namespace policy {
-class PolicyCertVerifier;
class PolicyService;
// Implements additional special handling of ONC user policies. Namely string
// expansion with the user's name (or email address, etc.) and handling of "Web"
-// trust of certificates. Web trusted certificates are pushed to the
-// PolicyCertVerifier if set.
+// trust of certificates.
class UserNetworkConfigurationUpdater : public NetworkConfigurationUpdater,
public BrowserContextKeyedService {
public:
+ class WebTrustedCertsObserver {
+ public:
+ // Is called everytime the list of imported certificates with Web trust is
+ // changed.
+ virtual void OnTrustAnchorsChanged(
+ const net::CertificateList& trust_anchors) = 0;
+ };
+
virtual ~UserNetworkConfigurationUpdater();
// Creates an updater that applies the ONC user policy from |policy_service|
@@ -49,13 +56,8 @@ class UserNetworkConfigurationUpdater : public NetworkConfigurationUpdater,
PolicyService* policy_service,
chromeos::ManagedNetworkConfigurationHandler* network_config_handler);
- // Sets the CertVerifier on which the current list of Web trusted server and
- // CA certificates will be set. Policy updates will trigger further calls to
- // |cert_verifier| later. |cert_verifier| must be valid until
- // SetPolicyCertVerifier is called again (with another CertVerifier or NULL)
- // or until this Updater is destructed. |cert_verifier|'s methods are only
- // called on the IO thread. This function must be called on the UI thread.
- void SetPolicyCertVerifier(PolicyCertVerifier* cert_verifier);
+ void AddTrustedCertsObserver(WebTrustedCertsObserver* observer);
+ void RemoveTrustedCertsObserver(WebTrustedCertsObserver* observer);
// Sets |certs| to the list of Web trusted server and CA certificates from the
// last received policy.
@@ -78,8 +80,7 @@ class UserNetworkConfigurationUpdater : public NetworkConfigurationUpdater,
base::ListValue* network_configs_onc,
base::DictionaryValue* global_network_config) OVERRIDE;
- // Push |web_trust_certs_| to |cert_verifier_| if necessary.
- void SetTrustAnchors();
+ void NotifyTrustAnchorsChanged();
// Whether Web trust is allowed or not. Only relevant for user policies.
bool allow_trusted_certificates_from_policy_;
@@ -88,8 +89,7 @@ class UserNetworkConfigurationUpdater : public NetworkConfigurationUpdater,
// is used for device policy.
const chromeos::User* user_;
- // Calls to this object are only allowed on the IO Thread.
- PolicyCertVerifier* cert_verifier_;
+ ObserverList<WebTrustedCertsObserver, true> observer_list_;
// Contains the certificates of the last import that requested web trust. Must
// be empty if Web trust from policy is not allowed.

Powered by Google App Engine
This is Rietveld 408576698