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

Side by Side Diff: chrome/browser/policy/device_token_fetcher.cc

Issue 10664017: Introduce a new error code from the DM server - 402 - missing licenses. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 6 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 | Annotate | Revision Log
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 #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
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
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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 SetState(STATE_TEMPORARY_ERROR); 250 SetState(STATE_TEMPORARY_ERROR);
244 return; 251 return;
245 case DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID: 252 case DM_STATUS_SERVICE_MANAGEMENT_TOKEN_INVALID:
246 // Most probably the GAIA auth cookie has expired. We can not do anything 253 // Most probably the GAIA auth cookie has expired. We can not do anything
247 // until the user logs-in again. 254 // until the user logs-in again.
248 SetState(STATE_BAD_AUTH); 255 SetState(STATE_BAD_AUTH);
249 return; 256 return;
250 case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER: 257 case DM_STATUS_SERVICE_INVALID_SERIAL_NUMBER:
251 SetSerialNumberInvalidState(); 258 SetSerialNumberInvalidState();
252 return; 259 return;
260 case DM_STATUS_MISSING_LICENSES:
261 SetMissingLicensesState();
262 return;
253 case DM_STATUS_REQUEST_INVALID: 263 case DM_STATUS_REQUEST_INVALID:
254 case DM_STATUS_HTTP_STATUS_ERROR: 264 case DM_STATUS_HTTP_STATUS_ERROR:
255 case DM_STATUS_RESPONSE_DECODING_ERROR: 265 case DM_STATUS_RESPONSE_DECODING_ERROR:
256 case DM_STATUS_SERVICE_ACTIVATION_PENDING: 266 case DM_STATUS_SERVICE_ACTIVATION_PENDING:
257 case DM_STATUS_SERVICE_POLICY_NOT_FOUND: 267 case DM_STATUS_SERVICE_POLICY_NOT_FOUND:
258 SetState(STATE_ERROR); 268 SetState(STATE_ERROR);
259 return; 269 return;
260 } 270 }
261 NOTREACHED(); 271 NOTREACHED();
262 SetState(STATE_ERROR); 272 SetState(STATE_ERROR);
(...skipping 21 matching lines...) Expand all
284 case STATE_BAD_SERIAL: 294 case STATE_BAD_SERIAL:
285 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, 295 notifier_->Inform(CloudPolicySubsystem::UNENROLLED,
286 CloudPolicySubsystem::BAD_SERIAL_NUMBER, 296 CloudPolicySubsystem::BAD_SERIAL_NUMBER,
287 PolicyNotifier::TOKEN_FETCHER); 297 PolicyNotifier::TOKEN_FETCHER);
288 break; 298 break;
289 case STATE_BAD_ENROLLMENT_MODE: 299 case STATE_BAD_ENROLLMENT_MODE:
290 notifier_->Inform(CloudPolicySubsystem::UNENROLLED, 300 notifier_->Inform(CloudPolicySubsystem::UNENROLLED,
291 CloudPolicySubsystem::BAD_ENROLLMENT_MODE, 301 CloudPolicySubsystem::BAD_ENROLLMENT_MODE,
292 PolicyNotifier::TOKEN_FETCHER); 302 PolicyNotifier::TOKEN_FETCHER);
293 break; 303 break;
304 case STATE_MISSING_LICENSES:
305 notifier_->Inform(CloudPolicySubsystem::UNENROLLED,
306 CloudPolicySubsystem::MISSING_LICENSES,
307 PolicyNotifier::TOKEN_FETCHER);
308 break;
294 case STATE_UNMANAGED: 309 case STATE_UNMANAGED:
295 delayed_work_at = cache_->last_policy_refresh_time() + 310 delayed_work_at = cache_->last_policy_refresh_time() +
296 base::TimeDelta::FromMilliseconds( 311 base::TimeDelta::FromMilliseconds(
297 kUnmanagedDeviceRefreshRateMilliseconds); 312 kUnmanagedDeviceRefreshRateMilliseconds);
298 notifier_->Inform(CloudPolicySubsystem::UNMANAGED, 313 notifier_->Inform(CloudPolicySubsystem::UNMANAGED,
299 CloudPolicySubsystem::NO_DETAILS, 314 CloudPolicySubsystem::NO_DETAILS,
300 PolicyNotifier::TOKEN_FETCHER); 315 PolicyNotifier::TOKEN_FETCHER);
301 break; 316 break;
302 case STATE_TEMPORARY_ERROR: 317 case STATE_TEMPORARY_ERROR:
303 delayed_work_at = base::Time::Now() + 318 delayed_work_at = base::Time::Now() +
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 if (state_ != STATE_INACTIVE && state_ != STATE_TOKEN_AVAILABLE) 355 if (state_ != STATE_INACTIVE && state_ != STATE_TOKEN_AVAILABLE)
341 cache_->SetFetchingDone(); 356 cache_->SetFetchingDone();
342 } 357 }
343 358
344 void DeviceTokenFetcher::DoWork() { 359 void DeviceTokenFetcher::DoWork() {
345 switch (state_) { 360 switch (state_) {
346 case STATE_INACTIVE: 361 case STATE_INACTIVE:
347 case STATE_TOKEN_AVAILABLE: 362 case STATE_TOKEN_AVAILABLE:
348 case STATE_BAD_SERIAL: 363 case STATE_BAD_SERIAL:
349 case STATE_BAD_ENROLLMENT_MODE: 364 case STATE_BAD_ENROLLMENT_MODE:
365 case STATE_MISSING_LICENSES:
350 break; 366 break;
351 case STATE_UNMANAGED: 367 case STATE_UNMANAGED:
352 case STATE_ERROR: 368 case STATE_ERROR:
353 case STATE_TEMPORARY_ERROR: 369 case STATE_TEMPORARY_ERROR:
354 case STATE_BAD_AUTH: 370 case STATE_BAD_AUTH:
355 FetchTokenInternal(); 371 FetchTokenInternal();
356 break; 372 break;
357 } 373 }
358 } 374 }
359 375
360 } // namespace policy 376 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698