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

Side by Side Diff: chrome/browser/policy/browser_policy_connector.h

Issue 8586030: Added ConfigurationPolicyProvider::RefreshPolicies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 9 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ 5 #ifndef CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_
6 #define CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ 6 #define CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 22 matching lines...) Expand all
33 // TODO(gfeher,mnissler): Factor out device and user specific methods into their 33 // TODO(gfeher,mnissler): Factor out device and user specific methods into their
34 // respective classes. 34 // respective classes.
35 class BrowserPolicyConnector : public content::NotificationObserver { 35 class BrowserPolicyConnector : public content::NotificationObserver {
36 public: 36 public:
37 // Indicates the type of token passed to SetDeviceCredentials. 37 // Indicates the type of token passed to SetDeviceCredentials.
38 enum TokenType { 38 enum TokenType {
39 TOKEN_TYPE_GAIA, // A gaia service token. 39 TOKEN_TYPE_GAIA, // A gaia service token.
40 TOKEN_TYPE_OAUTH, // An OAuth v2 access token. 40 TOKEN_TYPE_OAUTH, // An OAuth v2 access token.
41 }; 41 };
42 42
43 static BrowserPolicyConnector* Create(); 43 // Builds an uninitialized BrowserPolicyConnector, suitable for testing.
44 // Init() should be called to create and start the policy machinery.
45 BrowserPolicyConnector();
44 virtual ~BrowserPolicyConnector(); 46 virtual ~BrowserPolicyConnector();
45 47
48 // Creates the policy providers and finalizes the initialization of the
49 // connector. This call can be skipped on tests that don't require the full
50 // policy system running.
51 void Init();
52
46 ConfigurationPolicyProvider* GetManagedPlatformProvider() const; 53 ConfigurationPolicyProvider* GetManagedPlatformProvider() const;
47 ConfigurationPolicyProvider* GetManagedCloudProvider() const; 54 ConfigurationPolicyProvider* GetManagedCloudProvider() const;
48 ConfigurationPolicyProvider* GetRecommendedPlatformProvider() const; 55 ConfigurationPolicyProvider* GetRecommendedPlatformProvider() const;
49 ConfigurationPolicyProvider* GetRecommendedCloudProvider() const; 56 ConfigurationPolicyProvider* GetRecommendedCloudProvider() const;
50 57
51 // Returns a weak pointer to the CloudPolicySubsystem corresponding to the 58 // Returns a weak pointer to the CloudPolicySubsystem corresponding to the
52 // device policy managed by this policy connector, or NULL if no such 59 // device policy managed by this policy connector, or NULL if no such
53 // subsystem exists (i.e. when running outside ChromeOS). 60 // subsystem exists (i.e. when running outside ChromeOS).
54 CloudPolicySubsystem* device_cloud_policy_subsystem() { 61 CloudPolicySubsystem* device_cloud_policy_subsystem() {
55 #if defined(OS_CHROMEOS) 62 #if defined(OS_CHROMEOS)
(...skipping 23 matching lines...) Expand all
79 // Locks the device to an enterprise domain. 86 // Locks the device to an enterprise domain.
80 EnterpriseInstallAttributes::LockResult LockDevice(const std::string& user); 87 EnterpriseInstallAttributes::LockResult LockDevice(const std::string& user);
81 88
82 // Returns the enterprise domain if device is managed. 89 // Returns the enterprise domain if device is managed.
83 std::string GetEnterpriseDomain(); 90 std::string GetEnterpriseDomain();
84 91
85 // Reset the device policy machinery. This stops any automatic retry behavior 92 // Reset the device policy machinery. This stops any automatic retry behavior
86 // and clears the error flags, so potential retries have a chance to succeed. 93 // and clears the error flags, so potential retries have a chance to succeed.
87 void ResetDevicePolicy(); 94 void ResetDevicePolicy();
88 95
89 // Initiates a policy fetch after a successful device registration. 96 // Initiates device and user policy fetches, if possible. Pending fetches
90 void FetchDevicePolicy(); 97 // will be cancelled.
98 void FetchCloudPolicy();
91 99
92 // Initiates a user policy fetch after a successful device registration. This 100 // Refreshes policies on each existing provider.
93 // is only safe to call when a user device token is available. 101 void RefreshPolicies();
94 void FetchUserPolicy();
95 102
96 // Schedules initialization of the cloud policy backend services, if the 103 // Schedules initialization of the cloud policy backend services, if the
97 // services are already constructed. 104 // services are already constructed.
98 void ScheduleServiceInitialization(int64 delay_milliseconds); 105 void ScheduleServiceInitialization(int64 delay_milliseconds);
99 106
100 // Initializes the user cloud policy infrastructure. 107 // Initializes the user cloud policy infrastructure.
101 // If |wait_for_policy_fetch| is true, the user policy will only become fully 108 // If |wait_for_policy_fetch| is true, the user policy will only become fully
102 // initialized after a policy fetch is attempted. Note that Profile creation 109 // initialized after a policy fetch is attempted. Note that Profile creation
103 // is blocked until this initialization is complete. 110 // is blocked until this initialization is complete.
104 void InitializeUserPolicy(const std::string& user_name, 111 void InitializeUserPolicy(const std::string& user_name,
(...skipping 12 matching lines...) Expand all
117 const CloudPolicyDataStore* GetUserCloudPolicyDataStore() const; 124 const CloudPolicyDataStore* GetUserCloudPolicyDataStore() const;
118 125
119 const ConfigurationPolicyHandlerList* GetHandlerList() const; 126 const ConfigurationPolicyHandlerList* GetHandlerList() const;
120 127
121 // Works out the user affiliation by checking the given |user_name| against 128 // Works out the user affiliation by checking the given |user_name| against
122 // the installation attributes. 129 // the installation attributes.
123 policy::CloudPolicyDataStore::UserAffiliation GetUserAffiliation( 130 policy::CloudPolicyDataStore::UserAffiliation GetUserAffiliation(
124 const std::string& user_name); 131 const std::string& user_name);
125 132
126 private: 133 private:
127 friend class ::TestingBrowserProcess;
128
129 BrowserPolicyConnector();
130
131 // Constructor for tests that allows tests to use fake platform and cloud
132 // policy providers instead of using the actual ones.
133 BrowserPolicyConnector(
134 ConfigurationPolicyProvider* managed_platform_provider,
135 ConfigurationPolicyProvider* recommended_platform_provider,
136 CloudPolicyProvider* managed_cloud_provider,
137 CloudPolicyProvider* recommended_cloud_provider);
138
139 // content::NotificationObserver method overrides: 134 // content::NotificationObserver method overrides:
140 virtual void Observe(int type, 135 virtual void Observe(int type,
141 const content::NotificationSource& source, 136 const content::NotificationSource& source,
142 const content::NotificationDetails& details) OVERRIDE; 137 const content::NotificationDetails& details) OVERRIDE;
143 138
144 // Initializes the device cloud policy infrasturcture. 139 // Initializes the device cloud policy infrasturcture.
145 void InitializeDevicePolicy(); 140 void InitializeDevicePolicy();
146 141
147 // Activates the device cloud policy subsystem. This will be posted as a task 142 // Activates the device cloud policy subsystem. This will be posted as a task
148 // from InitializeDevicePolicy since it needs to wait for the message loops to 143 // from InitializeDevicePolicy since it needs to wait for the message loops to
149 // be running. 144 // be running.
150 void InitializeDevicePolicySubsystem(); 145 void InitializeDevicePolicySubsystem();
151 146
152 static BrowserPolicyConnector* CreateForTests();
153 static ConfigurationPolicyProvider* CreateManagedPlatformProvider(); 147 static ConfigurationPolicyProvider* CreateManagedPlatformProvider();
154 static ConfigurationPolicyProvider* CreateRecommendedPlatformProvider(); 148 static ConfigurationPolicyProvider* CreateRecommendedPlatformProvider();
155 149
156 scoped_ptr<ConfigurationPolicyProvider> managed_platform_provider_; 150 scoped_ptr<ConfigurationPolicyProvider> managed_platform_provider_;
157 scoped_ptr<ConfigurationPolicyProvider> recommended_platform_provider_; 151 scoped_ptr<ConfigurationPolicyProvider> recommended_platform_provider_;
158 152
159 scoped_ptr<CloudPolicyProvider> managed_cloud_provider_; 153 scoped_ptr<CloudPolicyProvider> managed_cloud_provider_;
160 scoped_ptr<CloudPolicyProvider> recommended_cloud_provider_; 154 scoped_ptr<CloudPolicyProvider> recommended_cloud_provider_;
161 155
162 #if defined(OS_CHROMEOS) 156 #if defined(OS_CHROMEOS)
(...skipping 21 matching lines...) Expand all
184 178
185 // Used to convert policies to preferences. 179 // Used to convert policies to preferences.
186 ConfigurationPolicyHandlerList handler_list_; 180 ConfigurationPolicyHandlerList handler_list_;
187 181
188 DISALLOW_COPY_AND_ASSIGN(BrowserPolicyConnector); 182 DISALLOW_COPY_AND_ASSIGN(BrowserPolicyConnector);
189 }; 183 };
190 184
191 } // namespace policy 185 } // namespace policy
192 186
193 #endif // CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_ 187 #endif // CHROME_BROWSER_POLICY_BROWSER_POLICY_CONNECTOR_H_
OLDNEW
« no previous file with comments | « chrome/browser/policy/asynchronous_policy_provider_unittest.cc ('k') | chrome/browser/policy/browser_policy_connector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698