| OLD | NEW |
| 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 #include "chrome/browser/policy/device_token_fetcher.h" | 5 #include "chrome/browser/policy/device_token_fetcher.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 break; | 53 break; |
| 54 case DM_STATUS_SERVICE_DEVICE_ID_CONFLICT: | 54 case DM_STATUS_SERVICE_DEVICE_ID_CONFLICT: |
| 55 sample = kMetricTokenFetchDeviceIdConflict; | 55 sample = kMetricTokenFetchDeviceIdConflict; |
| 56 break; | 56 break; |
| 57 case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER: | 57 case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER: |
| 58 sample = kMetricTokenFetchInvalidSerialNumber; | 58 sample = kMetricTokenFetchInvalidSerialNumber; |
| 59 break; | 59 break; |
| 60 case DM_STATUS_RESPONSE_DECODING_ERROR: | 60 case DM_STATUS_RESPONSE_DECODING_ERROR: |
| 61 sample = kMetricTokenFetchBadResponse; | 61 sample = kMetricTokenFetchBadResponse; |
| 62 break; | 62 break; |
| 63 case DM_STATUS_MISSING_LICENSES: |
| 64 sample = kMetricMissingLicenses; |
| 65 break; |
| 63 case DM_STATUS_TEMPORARY_UNAVAILABLE: | 66 case DM_STATUS_TEMPORARY_UNAVAILABLE: |
| 64 case DM_STATUS_SERVICE_ACTIVATION_PENDING: | 67 case DM_STATUS_SERVICE_ACTIVATION_PENDING: |
| 65 case DM_STATUS_SERVICE_POLICY_NOT_FOUND: | 68 case DM_STATUS_SERVICE_POLICY_NOT_FOUND: |
| 66 case DM_STATUS_HTTP_STATUS_ERROR: | 69 case DM_STATUS_HTTP_STATUS_ERROR: |
| 67 sample = kMetricTokenFetchServerFailed; | 70 sample = kMetricTokenFetchServerFailed; |
| 68 break; | 71 break; |
| 69 } | 72 } |
| 70 if (sample != -1) | 73 if (sample != -1) |
| 71 UMA_HISTOGRAM_ENUMERATION(kMetricToken, sample, kMetricTokenSize); | 74 UMA_HISTOGRAM_ENUMERATION(kMetricToken, sample, kMetricTokenSize); |
| 72 else | 75 else |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 // the timestamp that |SetState()| needs to determine the correct refresh | 131 // the timestamp that |SetState()| needs to determine the correct refresh |
| 129 // time. | 132 // time. |
| 130 cache_->SetUnmanaged(); | 133 cache_->SetUnmanaged(); |
| 131 SetState(STATE_UNMANAGED); | 134 SetState(STATE_UNMANAGED); |
| 132 } | 135 } |
| 133 | 136 |
| 134 void DeviceTokenFetcher::SetSerialNumberInvalidState() { | 137 void DeviceTokenFetcher::SetSerialNumberInvalidState() { |
| 135 SetState(STATE_BAD_SERIAL); | 138 SetState(STATE_BAD_SERIAL); |
| 136 } | 139 } |
| 137 | 140 |
| 141 void DeviceTokenFetcher::SetMissingLicensesState() { |
| 142 SetState(STATE_MISSING_LICENSES); |
| 143 } |
| 144 |
| 138 void DeviceTokenFetcher::Reset() { | 145 void DeviceTokenFetcher::Reset() { |
| 139 SetState(STATE_INACTIVE); | 146 SetState(STATE_INACTIVE); |
| 140 } | 147 } |
| 141 | 148 |
| 142 void DeviceTokenFetcher::Initialize(DeviceManagementService* service, | 149 void DeviceTokenFetcher::Initialize(DeviceManagementService* service, |
| 143 CloudPolicyCacheBase* cache, | 150 CloudPolicyCacheBase* cache, |
| 144 CloudPolicyDataStore* data_store, | 151 CloudPolicyDataStore* data_store, |
| 145 PolicyNotifier* notifier, | 152 PolicyNotifier* notifier, |
| 146 DelayedWorkScheduler* scheduler) { | 153 DelayedWorkScheduler* scheduler) { |
| 147 service_ = service; | 154 service_ = service; |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 SetState(STATE_TEMPORARY_ERROR); | 248 SetState(STATE_TEMPORARY_ERROR); |
| 242 return; | 249 return; |
| 243 case DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID: | 250 case DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID: |
| 244 // Most probably the GAIA auth cookie has expired. We can not do anything | 251 // Most probably the GAIA auth cookie has expired. We can not do anything |
| 245 // until the user logs-in again. | 252 // until the user logs-in again. |
| 246 SetState(STATE_BAD_AUTH); | 253 SetState(STATE_BAD_AUTH); |
| 247 return; | 254 return; |
| 248 case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER: | 255 case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER: |
| 249 SetSerialNumberInvalidState(); | 256 SetSerialNumberInvalidState(); |
| 250 return; | 257 return; |
| 258 case DM_STATUS_MISSING_LICENSES: |
| 259 SetMissingLicensesState(); |
| 260 return; |
| 251 case DM_STATUS_REQUEST_INVALID: | 261 case DM_STATUS_REQUEST_INVALID: |
| 252 case DM_STATUS_HTTP_STATUS_ERROR: | 262 case DM_STATUS_HTTP_STATUS_ERROR: |
| 253 case DM_STATUS_RESPONSE_DECODING_ERROR: | 263 case DM_STATUS_RESPONSE_DECODING_ERROR: |
| 254 case DM_STATUS_SERVICE_ACTIVATION_PENDING: | 264 case DM_STATUS_SERVICE_ACTIVATION_PENDING: |
| 255 case DM_STATUS_SERVICE_POLICY_NOT_FOUND: | 265 case DM_STATUS_SERVICE_POLICY_NOT_FOUND: |
| 256 SetState(STATE_ERROR); | 266 SetState(STATE_ERROR); |
| 257 return; | 267 return; |
| 258 } | 268 } |
| 259 NOTREACHED(); | 269 NOTREACHED(); |
| 260 SetState(STATE_ERROR); | 270 SetState(STATE_ERROR); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 282 case STATE_BAD_SERIAL: | 292 case STATE_BAD_SERIAL: |
| 283 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, | 293 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, |
| 284 CloudPolicySubsystem::BAD_SERIAL_NUMBER, | 294 CloudPolicySubsystem::BAD_SERIAL_NUMBER, |
| 285 PolicyNotifier::TOKEN_FETCHER); | 295 PolicyNotifier::TOKEN_FETCHER); |
| 286 break; | 296 break; |
| 287 case STATE_BAD_ENROLLMENT_MODE: | 297 case STATE_BAD_ENROLLMENT_MODE: |
| 288 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, | 298 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, |
| 289 CloudPolicySubsystem::BAD_ENROLLMENT_MODE, | 299 CloudPolicySubsystem::BAD_ENROLLMENT_MODE, |
| 290 PolicyNotifier::TOKEN_FETCHER); | 300 PolicyNotifier::TOKEN_FETCHER); |
| 291 break; | 301 break; |
| 302 case STATE_MISSING_LICENSES: |
| 303 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, |
| 304 CloudPolicySubsystem::MISSING_LICENSES, |
| 305 PolicyNotifier::TOKEN_FETCHER); |
| 306 break; |
| 292 case STATE_UNMANAGED: | 307 case STATE_UNMANAGED: |
| 293 delayed_work_at = cache_->last_policy_refresh_time() + | 308 delayed_work_at = cache_->last_policy_refresh_time() + |
| 294 base::TimeDelta::FromMilliseconds( | 309 base::TimeDelta::FromMilliseconds( |
| 295 kUnmanagedDeviceRefreshRateMilliseconds); | 310 kUnmanagedDeviceRefreshRateMilliseconds); |
| 296 notifier_->Inform(CloudPolicySubsystem::UNMANAGED, | 311 notifier_->Inform(CloudPolicySubsystem::UNMANAGED, |
| 297 CloudPolicySubsystem::NO_DETAILS, | 312 CloudPolicySubsystem::NO_DETAILS, |
| 298 PolicyNotifier::TOKEN_FETCHER); | 313 PolicyNotifier::TOKEN_FETCHER); |
| 299 break; | 314 break; |
| 300 case STATE_TEMPORARY_ERROR: | 315 case STATE_TEMPORARY_ERROR: |
| 301 delayed_work_at = base::Time::Now() + | 316 delayed_work_at = base::Time::Now() + |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 if (state_ != STATE_INACTIVE && state_ != STATE_TOKEN_AVAILABLE) | 353 if (state_ != STATE_INACTIVE && state_ != STATE_TOKEN_AVAILABLE) |
| 339 cache_->SetFetchingDone(); | 354 cache_->SetFetchingDone(); |
| 340 } | 355 } |
| 341 | 356 |
| 342 void DeviceTokenFetcher::DoWork() { | 357 void DeviceTokenFetcher::DoWork() { |
| 343 switch (state_) { | 358 switch (state_) { |
| 344 case STATE_INACTIVE: | 359 case STATE_INACTIVE: |
| 345 case STATE_TOKEN_AVAILABLE: | 360 case STATE_TOKEN_AVAILABLE: |
| 346 case STATE_BAD_SERIAL: | 361 case STATE_BAD_SERIAL: |
| 347 case STATE_BAD_ENROLLMENT_MODE: | 362 case STATE_BAD_ENROLLMENT_MODE: |
| 363 case STATE_MISSING_LICENSES: |
| 348 break; | 364 break; |
| 349 case STATE_UNMANAGED: | 365 case STATE_UNMANAGED: |
| 350 case STATE_ERROR: | 366 case STATE_ERROR: |
| 351 case STATE_TEMPORARY_ERROR: | 367 case STATE_TEMPORARY_ERROR: |
| 352 case STATE_BAD_AUTH: | 368 case STATE_BAD_AUTH: |
| 353 FetchTokenInternal(); | 369 FetchTokenInternal(); |
| 354 break; | 370 break; |
| 355 } | 371 } |
| 356 } | 372 } |
| 357 | 373 |
| 358 } // namespace policy | 374 } // namespace policy |
| OLD | NEW |