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

Unified Diff: chrome/browser/policy/user_policy_connector.h

Issue 6979011: Move user cloud policy to BrowserProcess. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments by mnissler. Added unittest. Created 9 years, 7 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/policy/user_policy_connector.h
diff --git a/chrome/browser/policy/user_policy_connector.h b/chrome/browser/policy/user_policy_connector.h
new file mode 100644
index 0000000000000000000000000000000000000000..c696e1cbb4da198f4d8359fb6d8bb2f3575d982b
--- /dev/null
+++ b/chrome/browser/policy/user_policy_connector.h
@@ -0,0 +1,67 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_POLICY_USER_POLICY_CONNECTOR_H_
+#define CHROME_BROWSER_POLICY_USER_POLICY_CONNECTOR_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "base/file_util.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/observer_list.h"
+#include "chrome/browser/policy/configuration_policy_provider.h"
+#include "content/common/notification_observer.h"
+#include "content/common/notification_registrar.h"
+
+class TokenService;
+namespace policy {
+
+class CloudPolicySubsystem;
+class CloudPolicyProvider;
+class UserPolicyIdentityStrategy;
+
+// This class is a container for the user-specific policy infrastructure.
+// There is one instance per BrowserProcess and it is also present when
+// there is no user logged in. However, in such a case there is no
+// CloudPolicySubsystem backend present.
+class UserPolicyConnector : public NotificationObserver {
+ public:
+ static UserPolicyConnector* Create();
+ ~UserPolicyConnector();
+
+ // Initializes the CloudPolicySubsystem backend and throws away the old one.
+ // TODO(sfeuz): Listen to log-out or going-away messages of TokenService and
+ // reset the backend at that point.
+ void Initialize(std::string& user_name,
+ const FilePath& policy_dir,
+ TokenService* token_service);
+
+ CloudPolicyProvider* GetManagedCloudProvider() const;
+ CloudPolicyProvider* GetRecommendedCloudProvider() const;
+
+ private:
+ UserPolicyConnector();
+
+ // NotificationObserver method overrides:
+ virtual void Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+
+ // Registers the provider for notification of successful Gaia logins.
+ NotificationRegistrar registrar_;
+
+ TokenService* token_service_;
+
+ scoped_ptr<UserPolicyIdentityStrategy> identity_strategy_;
+ scoped_ptr<CloudPolicySubsystem> cloud_policy_subsystem_;
+
+ scoped_ptr<CloudPolicyProvider> managed_cloud_provider_;
+ scoped_ptr<CloudPolicyProvider> recommended_cloud_provider_;
+
+ DISALLOW_COPY_AND_ASSIGN(UserPolicyConnector);
+};
+
+} // namespace policy
+
+#endif // CHROME_BROWSER_POLICY_USER_POLICY_CONNECTOR_H_

Powered by Google App Engine
This is Rietveld 408576698