OLD | NEW |
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 #include "chrome/browser/policy/cloud_policy_controller.h" | 5 #include "chrome/browser/policy/cloud_policy_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 } | 160 } |
161 | 161 |
162 void CloudPolicyController::OnDeviceTokenChanged() { | 162 void CloudPolicyController::OnDeviceTokenChanged() { |
163 if (identity_strategy_->GetDeviceToken().empty()) | 163 if (identity_strategy_->GetDeviceToken().empty()) |
164 SetState(STATE_TOKEN_UNAVAILABLE); | 164 SetState(STATE_TOKEN_UNAVAILABLE); |
165 else | 165 else |
166 SetState(STATE_TOKEN_VALID); | 166 SetState(STATE_TOKEN_VALID); |
167 } | 167 } |
168 | 168 |
169 void CloudPolicyController::OnCredentialsChanged() { | 169 void CloudPolicyController::OnCredentialsChanged() { |
| 170 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, |
| 171 CloudPolicySubsystem::NO_DETAILS, |
| 172 PolicyNotifier::POLICY_CONTROLLER); |
170 effective_policy_refresh_error_delay_ms_ = policy_refresh_error_delay_ms_; | 173 effective_policy_refresh_error_delay_ms_ = policy_refresh_error_delay_ms_; |
171 SetState(STATE_TOKEN_UNAVAILABLE); | 174 SetState(STATE_TOKEN_UNAVAILABLE); |
172 } | 175 } |
173 | 176 |
174 CloudPolicyController::CloudPolicyController( | 177 CloudPolicyController::CloudPolicyController( |
175 DeviceManagementService* service, | 178 DeviceManagementService* service, |
176 CloudPolicyCacheBase* cache, | 179 CloudPolicyCacheBase* cache, |
177 DeviceTokenFetcher* token_fetcher, | 180 DeviceTokenFetcher* token_fetcher, |
178 CloudPolicyIdentityStrategy* identity_strategy, | 181 CloudPolicyIdentityStrategy* identity_strategy, |
179 PolicyNotifier* notifier, | 182 PolicyNotifier* notifier, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 } | 231 } |
229 | 232 |
230 void CloudPolicyController::FetchToken() { | 233 void CloudPolicyController::FetchToken() { |
231 std::string username; | 234 std::string username; |
232 std::string auth_token; | 235 std::string auth_token; |
233 std::string device_id = identity_strategy_->GetDeviceID(); | 236 std::string device_id = identity_strategy_->GetDeviceID(); |
234 std::string machine_id = identity_strategy_->GetMachineID(); | 237 std::string machine_id = identity_strategy_->GetMachineID(); |
235 std::string machine_model = identity_strategy_->GetMachineModel(); | 238 std::string machine_model = identity_strategy_->GetMachineModel(); |
236 em::DeviceRegisterRequest_Type policy_type = | 239 em::DeviceRegisterRequest_Type policy_type = |
237 identity_strategy_->GetPolicyRegisterType(); | 240 identity_strategy_->GetPolicyRegisterType(); |
238 if (identity_strategy_->GetCredentials(&username, &auth_token) && | 241 if (identity_strategy_->GetCredentials(&username, &auth_token)) { |
239 CanBeInManagedDomain(username)) { | 242 if (CanBeInManagedDomain(username)) { |
240 token_fetcher_->FetchToken(auth_token, device_id, policy_type, | 243 token_fetcher_->FetchToken(auth_token, device_id, policy_type, |
241 machine_id, machine_model); | 244 machine_id, machine_model); |
| 245 } else { |
| 246 SetState(STATE_TOKEN_UNMANAGED); |
| 247 } |
242 } | 248 } |
243 } | 249 } |
244 | 250 |
245 void CloudPolicyController::SendPolicyRequest() { | 251 void CloudPolicyController::SendPolicyRequest() { |
246 backend_.reset(service_->CreateBackend()); | 252 backend_.reset(service_->CreateBackend()); |
247 DCHECK(!identity_strategy_->GetDeviceToken().empty()); | 253 DCHECK(!identity_strategy_->GetDeviceToken().empty()); |
248 em::DevicePolicyRequest policy_request; | 254 em::DevicePolicyRequest policy_request; |
249 em::PolicyFetchRequest* fetch_request = policy_request.add_request(); | 255 em::PolicyFetchRequest* fetch_request = policy_request.add_request(); |
250 fetch_request->set_signature_type(em::PolicyFetchRequest::SHA1_RSA); | 256 fetch_request->set_signature_type(em::PolicyFetchRequest::SHA1_RSA); |
251 fetch_request->set_policy_type(identity_strategy_->GetPolicyType()); | 257 fetch_request->set_policy_type(identity_strategy_->GetPolicyType()); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 } | 381 } |
376 | 382 |
377 int64 CloudPolicyController::GetRefreshDelay() { | 383 int64 CloudPolicyController::GetRefreshDelay() { |
378 int64 deviation = (policy_refresh_deviation_factor_percent_ * | 384 int64 deviation = (policy_refresh_deviation_factor_percent_ * |
379 policy_refresh_rate_ms_) / 100; | 385 policy_refresh_rate_ms_) / 100; |
380 deviation = std::min(deviation, policy_refresh_deviation_max_ms_); | 386 deviation = std::min(deviation, policy_refresh_deviation_max_ms_); |
381 return policy_refresh_rate_ms_ - base::RandGenerator(deviation + 1); | 387 return policy_refresh_rate_ms_ - base::RandGenerator(deviation + 1); |
382 } | 388 } |
383 | 389 |
384 } // namespace policy | 390 } // namespace policy |
OLD | NEW |