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

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

Issue 8741014: Added auto-enrollment request support to the device_management_backend. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added comment Created 9 years 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 #include "chrome/browser/policy/device_management_backend_impl.h" 5 #include "chrome/browser/policy/device_management_backend_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 19 matching lines...) Expand all
30 const char DeviceManagementBackendImpl::kParamDeviceType[] = "devicetype"; 30 const char DeviceManagementBackendImpl::kParamDeviceType[] = "devicetype";
31 const char DeviceManagementBackendImpl::kParamOAuthToken[] = "oauth_token"; 31 const char DeviceManagementBackendImpl::kParamOAuthToken[] = "oauth_token";
32 const char DeviceManagementBackendImpl::kParamPlatform[] = "platform"; 32 const char DeviceManagementBackendImpl::kParamPlatform[] = "platform";
33 const char DeviceManagementBackendImpl::kParamRequest[] = "request"; 33 const char DeviceManagementBackendImpl::kParamRequest[] = "request";
34 const char DeviceManagementBackendImpl::kParamUserAffiliation[] = 34 const char DeviceManagementBackendImpl::kParamUserAffiliation[] =
35 "user_affiliation"; 35 "user_affiliation";
36 36
37 // String constants for the device and app type we report to the server. 37 // String constants for the device and app type we report to the server.
38 const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome"; 38 const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome";
39 const char DeviceManagementBackendImpl::kValueDeviceType[] = "2"; 39 const char DeviceManagementBackendImpl::kValueDeviceType[] = "2";
40 const char DeviceManagementBackendImpl::kValueRequestAutoEnrollment[] =
41 "enterprise_check";
40 const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy"; 42 const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy";
41 const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register"; 43 const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register";
42 const char DeviceManagementBackendImpl::kValueRequestUnregister[] = 44 const char DeviceManagementBackendImpl::kValueRequestUnregister[] =
43 "unregister"; 45 "unregister";
44 const char DeviceManagementBackendImpl::kValueUserAffiliationManaged[] = 46 const char DeviceManagementBackendImpl::kValueUserAffiliationManaged[] =
45 "managed"; 47 "managed";
46 const char DeviceManagementBackendImpl::kValueUserAffiliationNone[] = "none"; 48 const char DeviceManagementBackendImpl::kValueUserAffiliationNone[] = "none";
47 49
48 namespace { 50 namespace {
49 51
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchResponseReceived, 452 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchResponseReceived,
451 kMetricPolicySize); 453 kMetricPolicySize);
452 delegate_->HandlePolicyResponse(response.policy_response()); 454 delegate_->HandlePolicyResponse(response.policy_response());
453 } 455 }
454 456
455 DeviceManagementBackend::DevicePolicyResponseDelegate* delegate_; 457 DeviceManagementBackend::DevicePolicyResponseDelegate* delegate_;
456 458
457 DISALLOW_COPY_AND_ASSIGN(DeviceManagementPolicyJob); 459 DISALLOW_COPY_AND_ASSIGN(DeviceManagementPolicyJob);
458 }; 460 };
459 461
462 // Handles auto enrollment request jobs. These are used to determine if a new
463 // ChromeOS device should automatically enter the enterprise enrollment screen
Mattias Nissler (ping if slow) 2011/12/05 09:44:15 nit: ChromiumOS
Joao da Silva 2011/12/05 10:00:15 Done.
464 // during the OOBE flow.
465 class DeviceManagementAutoEnrollmentJob : public DeviceManagementJobBase {
466 public:
467 DeviceManagementAutoEnrollmentJob(
468 DeviceManagementBackendImpl* backend_impl,
469 const std::string& device_id,
470 const em::DeviceAutoEnrollmentRequest& request,
471 DeviceManagementBackend::DeviceAutoEnrollmentResponseDelegate* delegate)
472 : DeviceManagementJobBase(
473 backend_impl,
474 DeviceManagementBackendImpl::kValueRequestAutoEnrollment,
475 device_id),
476 delegate_(delegate) {
477 em::DeviceManagementRequest request_wrapper;
478 request_wrapper.mutable_auto_enrollment_request()->CopyFrom(request);
479 SetPayload(request_wrapper);
480 }
481 virtual ~DeviceManagementAutoEnrollmentJob() {}
482
483 private:
484 // DeviceManagementJobBase overrides.
485 virtual void OnError(DeviceManagementBackend::ErrorCode error) OVERRIDE {
486 delegate_->OnError(error);
487 }
488 virtual void OnResponse(
489 const em::DeviceManagementResponse& response) OVERRIDE {
490 delegate_->HandleAutoEnrollmentResponse(
491 response.auto_enrollment_response());
492 }
493
494 DeviceManagementBackend::DeviceAutoEnrollmentResponseDelegate* delegate_;
495
496 DISALLOW_COPY_AND_ASSIGN(DeviceManagementAutoEnrollmentJob);
497 };
498
460 DeviceManagementBackendImpl::DeviceManagementBackendImpl( 499 DeviceManagementBackendImpl::DeviceManagementBackendImpl(
461 DeviceManagementService* service) 500 DeviceManagementService* service)
462 : service_(service) { 501 : service_(service) {
463 } 502 }
464 503
465 DeviceManagementBackendImpl::~DeviceManagementBackendImpl() { 504 DeviceManagementBackendImpl::~DeviceManagementBackendImpl() {
466 for (JobSet::iterator job(pending_jobs_.begin()); 505 for (JobSet::iterator job(pending_jobs_.begin());
467 job != pending_jobs_.end(); 506 job != pending_jobs_.end();
468 ++job) { 507 ++job) {
469 service_->RemoveJob(*job); 508 service_->RemoveJob(*job);
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 CloudPolicyDataStore::UserAffiliation affiliation, 603 CloudPolicyDataStore::UserAffiliation affiliation,
565 const em::DevicePolicyRequest& request, 604 const em::DevicePolicyRequest& request,
566 DevicePolicyResponseDelegate* delegate) { 605 DevicePolicyResponseDelegate* delegate) {
567 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested, 606 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested,
568 kMetricPolicySize); 607 kMetricPolicySize);
569 AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id, 608 AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id,
570 UserAffiliationToString(affiliation), 609 UserAffiliationToString(affiliation),
571 request, delegate)); 610 request, delegate));
572 } 611 }
573 612
613 void DeviceManagementBackendImpl::ProcessAutoEnrollmentRequest(
614 const std::string& device_id,
615 const em::DeviceAutoEnrollmentRequest& request,
616 DeviceAutoEnrollmentResponseDelegate* delegate) {
617 AddJob(new DeviceManagementAutoEnrollmentJob(this, device_id, request,
618 delegate));
619 }
620
574 // static 621 // static
575 const char* DeviceManagementBackendImpl::UserAffiliationToString( 622 const char* DeviceManagementBackendImpl::UserAffiliationToString(
576 CloudPolicyDataStore::UserAffiliation affiliation) { 623 CloudPolicyDataStore::UserAffiliation affiliation) {
577 switch (affiliation) { 624 switch (affiliation) {
578 case CloudPolicyDataStore::USER_AFFILIATION_MANAGED: 625 case CloudPolicyDataStore::USER_AFFILIATION_MANAGED:
579 return kValueUserAffiliationManaged; 626 return kValueUserAffiliationManaged;
580 case CloudPolicyDataStore::USER_AFFILIATION_NONE: 627 case CloudPolicyDataStore::USER_AFFILIATION_NONE:
581 return kValueUserAffiliationNone; 628 return kValueUserAffiliationNone;
582 } 629 }
583 NOTREACHED(); 630 NOTREACHED();
584 return kValueUserAffiliationNone; 631 return kValueUserAffiliationNone;
585 } 632 }
586 633
587 } // namespace policy 634 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698