Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / policy / profile_policy_connector.h
index a20d1e2..cc29d09 100644 (file)
@@ -6,27 +6,12 @@
 #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;
 }
 
@@ -34,64 +19,45 @@ namespace policy {
 
 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
@@ -101,14 +67,11 @@ class ProfilePolicyConnector : public BrowserContextKeyedService {
   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_;