#define CHROME_BROWSER_POLICY_PROFILE_POLICY_CONNECTOR_H_
#include <string>
-#include <vector>
#include "base/basictypes.h"
-#include "base/callback.h"
-#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "components/browser_context_keyed_service/browser_context_keyed_service.h"
+#include "components/keyed_service/core/keyed_service.h"
-class Profile;
-
-namespace net {
-class CertTrustAnchorProvider;
-}
-
-namespace net {
-class X509Certificate;
-typedef std::vector<scoped_refptr<X509Certificate> > CertificateList;
-}
-
-namespace chromeos {
+namespace user_manager {
class User;
}
class CloudPolicyManager;
class ConfigurationPolicyProvider;
-class UserNetworkConfigurationUpdater;
class PolicyService;
-class PolicyCertVerifier;
+class SchemaRegistry;
-// A BrowserContextKeyedService that creates and manages the per-Profile policy
+// A KeyedService that creates and manages the per-Profile policy
// components.
-class ProfilePolicyConnector : public BrowserContextKeyedService {
+class ProfilePolicyConnector : public KeyedService {
public:
- explicit ProfilePolicyConnector(Profile* profile);
+ ProfilePolicyConnector();
virtual ~ProfilePolicyConnector();
// If |force_immediate_load| then disk caches will be loaded synchronously.
void Init(bool force_immediate_load,
#if defined(OS_CHROMEOS)
- const chromeos::User* user,
+ const user_manager::User* user,
#endif
+ SchemaRegistry* schema_registry,
CloudPolicyManager* user_cloud_policy_manager);
void InitForTesting(scoped_ptr<PolicyService> service);
- // BrowserContextKeyedService:
+ // KeyedService:
virtual void Shutdown() OVERRIDE;
// This is never NULL.
PolicyService* policy_service() const { return policy_service_.get(); }
-#if defined(OS_CHROMEOS)
- // 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 Connector 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);
-
- // Returns a callback that should be called if a policy installed certificate
- // was trusted for the associated profile. The closure can be safely used (on
- // the UI thread) even after this Connector is destructed.
- base::Closure GetPolicyCertTrustedCallback();
-
- // Sets |certs| to the list of Web trusted server and CA certificates from the
- // last received ONC user policy.
- void GetWebTrustedCertificates(net::CertificateList* certs) const;
-#endif
+ // Returns true if this Profile is under cloud policy management.
+ bool IsManaged() const;
+
+ // Returns the cloud policy management domain, if this Profile is under
+ // cloud policy management. Otherwise returns an empty string.
+ std::string GetManagementDomain() const;
- // Returns true if |profile()| has used certificates installed via policy
- // to establish a secure connection before. This means that it may have
- // cached content from an untrusted source.
- bool UsedPolicyCertificates();
+ // Returns true if the |name| Chrome policy is currently set via the
+ // CloudPolicyManager and isn't being overridden by a higher-level provider.
+ bool IsPolicyFromCloudPolicy(const char* name) const;
private:
#if defined(ENABLE_CONFIGURATION_POLICY)
-
-#if defined(OS_CHROMEOS)
- void SetUsedPolicyCertificatesOnce();
- void InitializeDeviceLocalAccountPolicyProvider(const std::string& username);
-#endif
-
#if defined(OS_CHROMEOS)
// Some of the user policy configuration affects browser global state, and
// can only come from one Profile. |is_primary_user_| is true if this
bool is_primary_user_;
scoped_ptr<ConfigurationPolicyProvider> special_user_policy_provider_;
- scoped_ptr<UserNetworkConfigurationUpdater> network_configuration_updater_;
-
- base::WeakPtrFactory<ProfilePolicyConnector> weak_ptr_factory_;
-#endif
-
- Profile* profile_;
+#endif // defined(OS_CHROMEOS)
-#endif // ENABLE_CONFIGURATION_POLICY
+ scoped_ptr<ConfigurationPolicyProvider> forwarding_policy_provider_;
+ CloudPolicyManager* user_cloud_policy_manager_;
+#endif // defined(ENABLE_CONFIGURATION_POLICY)
scoped_ptr<PolicyService> policy_service_;