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

Side by Side Diff: chrome/browser/chromeos/policy/enrollment_handler_chromeos.h

Issue 2977033002: Mixed Licenses Enrollment (Closed)
Patch Set: Fix last nit Created 3 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_CHROMEOS_POLICY_ENROLLMENT_HANDLER_CHROMEOS_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_HANDLER_CHROMEOS_H_
6 #define CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_HANDLER_CHROMEOS_H_ 6 #define CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_HANDLER_CHROMEOS_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 // state. 49 // state.
50 // 4. Download the OAuth2 authorization code for device-level API access. 50 // 4. Download the OAuth2 authorization code for device-level API access.
51 // 5. Download the OAuth2 refresh token for device-level API access and store 51 // 5. Download the OAuth2 refresh token for device-level API access and store
52 // it. 52 // it.
53 // 6. Establish the device lock in installation-time attributes. 53 // 6. Establish the device lock in installation-time attributes.
54 // 7. Store the policy blob and API refresh token. 54 // 7. Store the policy blob and API refresh token.
55 class EnrollmentHandlerChromeOS : public CloudPolicyClient::Observer, 55 class EnrollmentHandlerChromeOS : public CloudPolicyClient::Observer,
56 public CloudPolicyStore::Observer, 56 public CloudPolicyStore::Observer,
57 public gaia::GaiaOAuthClient::Delegate { 57 public gaia::GaiaOAuthClient::Delegate {
58 public: 58 public:
59 typedef DeviceCloudPolicyInitializer::EnrollmentCallback 59 using EnrollmentCallback = DeviceCloudPolicyInitializer::EnrollmentCallback;
60 EnrollmentCallback; 60 using AvailableLicensesCallback =
61 DeviceCloudPolicyInitializer::AvailableLicensesCallback;
61 62
62 // |store| and |install_attributes| must remain valid for the life time of the 63 // |store| and |install_attributes| must remain valid for the life time of the
63 // enrollment handler. 64 // enrollment handler.
64 EnrollmentHandlerChromeOS( 65 EnrollmentHandlerChromeOS(
65 DeviceCloudPolicyStoreChromeOS* store, 66 DeviceCloudPolicyStoreChromeOS* store,
66 chromeos::InstallAttributes* install_attributes, 67 chromeos::InstallAttributes* install_attributes,
67 ServerBackedStateKeysBroker* state_keys_broker, 68 ServerBackedStateKeysBroker* state_keys_broker,
68 chromeos::attestation::AttestationFlow* attestation_flow, 69 chromeos::attestation::AttestationFlow* attestation_flow,
69 std::unique_ptr<CloudPolicyClient> client, 70 std::unique_ptr<CloudPolicyClient> client,
70 scoped_refptr<base::SequencedTaskRunner> background_task_runner, 71 scoped_refptr<base::SequencedTaskRunner> background_task_runner,
71 chromeos::ActiveDirectoryJoinDelegate* ad_join_delegate, 72 chromeos::ActiveDirectoryJoinDelegate* ad_join_delegate,
72 const EnrollmentConfig& enrollment_config, 73 const EnrollmentConfig& enrollment_config,
73 const std::string& auth_token, 74 const std::string& auth_token,
74 const std::string& client_id, 75 const std::string& client_id,
75 const std::string& requisition, 76 const std::string& requisition,
76 const EnrollmentCallback& completion_callback); 77 const EnrollmentCallback& completion_callback);
77 ~EnrollmentHandlerChromeOS() override; 78 ~EnrollmentHandlerChromeOS() override;
78 79
80 // Checks license types available for enrollment and reports the result
81 // to |callback|.
82 void CheckAvailableLicenses(
83 const AvailableLicensesCallback& completion_callback);
84
79 // Starts the enrollment process and reports the result to 85 // Starts the enrollment process and reports the result to
80 // |completion_callback_|. 86 // |completion_callback_|.
81 void StartEnrollment(); 87 void StartEnrollment();
82 88
89 // Starts the enrollment process using user-selected |license_type|
90 // and reports the result to |completion_callback_|.
91 void StartEnrollmentWithLicense(LicenseType license_type);
92
83 // Releases the client. 93 // Releases the client.
84 std::unique_ptr<CloudPolicyClient> ReleaseClient(); 94 std::unique_ptr<CloudPolicyClient> ReleaseClient();
85 95
86 // CloudPolicyClient::Observer: 96 // CloudPolicyClient::Observer:
87 void OnPolicyFetched(CloudPolicyClient* client) override; 97 void OnPolicyFetched(CloudPolicyClient* client) override;
88 void OnRegistrationStateChanged(CloudPolicyClient* client) override; 98 void OnRegistrationStateChanged(CloudPolicyClient* client) override;
89 void OnRobotAuthCodesFetched(CloudPolicyClient* client) override; 99 void OnRobotAuthCodesFetched(CloudPolicyClient* client) override;
90 void OnClientError(CloudPolicyClient* client) override; 100 void OnClientError(CloudPolicyClient* client) override;
91 101
92 // CloudPolicyStore::Observer: 102 // CloudPolicyStore::Observer:
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 173
164 // Calls InstallAttributes::LockDevice() for enterprise enrollment and 174 // Calls InstallAttributes::LockDevice() for enterprise enrollment and
165 // DeviceSettingsService::SetManagementSettings() for consumer 175 // DeviceSettingsService::SetManagementSettings() for consumer
166 // enrollment. 176 // enrollment.
167 void StartLockDevice(); 177 void StartLockDevice();
168 178
169 // Handle callback from InstallAttributes::LockDevice() and retry on failure. 179 // Handle callback from InstallAttributes::LockDevice() and retry on failure.
170 void HandleLockDeviceResult( 180 void HandleLockDeviceResult(
171 chromeos::InstallAttributes::LockResult lock_result); 181 chromeos::InstallAttributes::LockResult lock_result);
172 182
183 // Handles the available licenses request.
184 void HandleAvailableLicensesResult(
185 bool success,
186 const CloudPolicyClient::LicenseMap& license_map);
187
173 // Initiates storing DM token. For Active Directory devices only. 188 // Initiates storing DM token. For Active Directory devices only.
174 void StartStoreDMToken(); 189 void StartStoreDMToken();
175 190
176 // Called after StartStoreDMtoken() is done. 191 // Called after StartStoreDMtoken() is done.
177 void HandleDMTokenStoreResult(bool success); 192 void HandleDMTokenStoreResult(bool success);
178 193
179 // Initiates storing of robot auth token. 194 // Initiates storing of robot auth token.
180 void StartStoreRobotAuth(); 195 void StartStoreRobotAuth();
181 196
182 // Handles completion of the robot token store operation. 197 // Handles completion of the robot token store operation.
(...skipping 19 matching lines...) Expand all
202 scoped_refptr<base::SequencedTaskRunner> background_task_runner_; 217 scoped_refptr<base::SequencedTaskRunner> background_task_runner_;
203 chromeos::ActiveDirectoryJoinDelegate* ad_join_delegate_ = nullptr; 218 chromeos::ActiveDirectoryJoinDelegate* ad_join_delegate_ = nullptr;
204 std::unique_ptr<gaia::GaiaOAuthClient> gaia_oauth_client_; 219 std::unique_ptr<gaia::GaiaOAuthClient> gaia_oauth_client_;
205 std::unique_ptr<policy::DMTokenStorage> dm_token_storage_; 220 std::unique_ptr<policy::DMTokenStorage> dm_token_storage_;
206 221
207 EnrollmentConfig enrollment_config_; 222 EnrollmentConfig enrollment_config_;
208 std::string auth_token_; 223 std::string auth_token_;
209 std::string client_id_; 224 std::string client_id_;
210 std::string requisition_; 225 std::string requisition_;
211 EnrollmentCallback completion_callback_; 226 EnrollmentCallback completion_callback_;
227 AvailableLicensesCallback available_licenses_callback_;
228 enterprise_management::LicenseType::LicenseTypeEnum license_type_ =
229 enterprise_management::LicenseType::UNDEFINED;
212 230
213 // The current state key provided by |state_keys_broker_|. 231 // The current state key provided by |state_keys_broker_|.
214 std::string current_state_key_; 232 std::string current_state_key_;
215 233
216 // The device mode as received in the registration request. 234 // The device mode as received in the registration request.
217 DeviceMode device_mode_ = DEVICE_MODE_NOT_SET; 235 DeviceMode device_mode_ = DEVICE_MODE_NOT_SET;
218 236
219 // Whether the server signaled to skip robot auth setup. 237 // Whether the server signaled to skip robot auth setup.
220 bool skip_robot_auth_ = false; 238 bool skip_robot_auth_ = false;
221 239
(...skipping 14 matching lines...) Expand all
236 int lockbox_init_duration_ = 0; 254 int lockbox_init_duration_ = 0;
237 255
238 base::WeakPtrFactory<EnrollmentHandlerChromeOS> weak_ptr_factory_; 256 base::WeakPtrFactory<EnrollmentHandlerChromeOS> weak_ptr_factory_;
239 257
240 DISALLOW_COPY_AND_ASSIGN(EnrollmentHandlerChromeOS); 258 DISALLOW_COPY_AND_ASSIGN(EnrollmentHandlerChromeOS);
241 }; 259 };
242 260
243 } // namespace policy 261 } // namespace policy
244 262
245 #endif // CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_HANDLER_CHROMEOS_H_ 263 #endif // CHROME_BROWSER_CHROMEOS_POLICY_ENROLLMENT_HANDLER_CHROMEOS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698