| Index: chrome/browser/policy/device_management_backend_impl.cc
|
| diff --git a/chrome/browser/policy/device_management_backend_impl.cc b/chrome/browser/policy/device_management_backend_impl.cc
|
| index ed75f3f8603e156905c6eddab155c70ea64a19ce..b01cbf8193d9ae03e87e48e5b4e55f35230ac676 100644
|
| --- a/chrome/browser/policy/device_management_backend_impl.cc
|
| +++ b/chrome/browser/policy/device_management_backend_impl.cc
|
| @@ -27,6 +27,8 @@ const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register";
|
| const char DeviceManagementBackendImpl::kValueRequestUnregister[] =
|
| "unregister";
|
| const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy";
|
| +const char DeviceManagementBackendImpl::kValueRequestCloudPolicy[] =
|
| + "cloud_policy";
|
| const char DeviceManagementBackendImpl::kValueDeviceType[] = "Chrome OS";
|
| const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome";
|
|
|
| @@ -170,7 +172,10 @@ void DeviceManagementJobBase::HandleResponse(
|
| }
|
|
|
| if (response_code != 200) {
|
| - OnError(DeviceManagementBackend::kErrorHttpStatus);
|
| + if (response_code == 400)
|
| + OnError(DeviceManagementBackend::kErrorRequestInvalid);
|
| + else
|
| + OnError(DeviceManagementBackend::kErrorHttpStatus);
|
| return;
|
| }
|
|
|
| @@ -230,7 +235,17 @@ class DeviceManagementRegisterJob : public DeviceManagementJobBase {
|
| const std::string& auth_token,
|
| const std::string& device_id,
|
| const em::DeviceRegisterRequest& request,
|
| - DeviceManagementBackend::DeviceRegisterResponseDelegate* delegate);
|
| + DeviceManagementBackend::DeviceRegisterResponseDelegate* delegate)
|
| + : DeviceManagementJobBase(
|
| + backend_impl,
|
| + DeviceManagementBackendImpl::kValueRequestRegister,
|
| + device_id),
|
| + delegate_(delegate) {
|
| + SetAuthToken(auth_token);
|
| + em::DeviceManagementRequest request_wrapper;
|
| + request_wrapper.mutable_register_request()->CopyFrom(request);
|
| + SetPayload(request_wrapper);
|
| + }
|
| virtual ~DeviceManagementRegisterJob() {}
|
|
|
| private:
|
| @@ -247,32 +262,25 @@ class DeviceManagementRegisterJob : public DeviceManagementJobBase {
|
| DISALLOW_COPY_AND_ASSIGN(DeviceManagementRegisterJob);
|
| };
|
|
|
| -DeviceManagementRegisterJob::DeviceManagementRegisterJob(
|
| - DeviceManagementBackendImpl* backend_impl,
|
| - const std::string& auth_token,
|
| - const std::string& device_id,
|
| - const em::DeviceRegisterRequest& request,
|
| - DeviceManagementBackend::DeviceRegisterResponseDelegate* delegate)
|
| - : DeviceManagementJobBase(
|
| - backend_impl,
|
| - DeviceManagementBackendImpl::kValueRequestRegister,
|
| - device_id),
|
| - delegate_(delegate) {
|
| - SetAuthToken(auth_token);
|
| - em::DeviceManagementRequest request_wrapper;
|
| - request_wrapper.mutable_register_request()->CopyFrom(request);
|
| - SetPayload(request_wrapper);
|
| -}
|
| -
|
| // Handles device unregistration jobs.
|
| class DeviceManagementUnregisterJob : public DeviceManagementJobBase {
|
| public:
|
| DeviceManagementUnregisterJob(
|
| DeviceManagementBackendImpl* backend_impl,
|
| - const std::string& device_id,
|
| const std::string& device_management_token,
|
| + const std::string& device_id,
|
| const em::DeviceUnregisterRequest& request,
|
| - DeviceManagementBackend::DeviceUnregisterResponseDelegate* delegate);
|
| + DeviceManagementBackend::DeviceUnregisterResponseDelegate* delegate)
|
| + : DeviceManagementJobBase(
|
| + backend_impl,
|
| + DeviceManagementBackendImpl::kValueRequestUnregister,
|
| + device_id),
|
| + delegate_(delegate) {
|
| + SetDeviceManagementToken(device_management_token);
|
| + em::DeviceManagementRequest request_wrapper;
|
| + request_wrapper.mutable_unregister_request()->CopyFrom(request);
|
| + SetPayload(request_wrapper);
|
| + }
|
| virtual ~DeviceManagementUnregisterJob() {}
|
|
|
| private:
|
| @@ -289,23 +297,6 @@ class DeviceManagementUnregisterJob : public DeviceManagementJobBase {
|
| DISALLOW_COPY_AND_ASSIGN(DeviceManagementUnregisterJob);
|
| };
|
|
|
| -DeviceManagementUnregisterJob::DeviceManagementUnregisterJob(
|
| - DeviceManagementBackendImpl* backend_impl,
|
| - const std::string& device_management_token,
|
| - const std::string& device_id,
|
| - const em::DeviceUnregisterRequest& request,
|
| - DeviceManagementBackend::DeviceUnregisterResponseDelegate* delegate)
|
| - : DeviceManagementJobBase(
|
| - backend_impl,
|
| - DeviceManagementBackendImpl::kValueRequestUnregister,
|
| - device_id),
|
| - delegate_(delegate) {
|
| - SetDeviceManagementToken(device_management_token);
|
| - em::DeviceManagementRequest request_wrapper;
|
| - request_wrapper.mutable_unregister_request()->CopyFrom(request);
|
| - SetPayload(request_wrapper);
|
| -}
|
| -
|
| // Handles policy request jobs.
|
| class DeviceManagementPolicyJob : public DeviceManagementJobBase {
|
| public:
|
| @@ -314,7 +305,17 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase {
|
| const std::string& device_management_token,
|
| const std::string& device_id,
|
| const em::DevicePolicyRequest& request,
|
| - DeviceManagementBackend::DevicePolicyResponseDelegate* delegate);
|
| + DeviceManagementBackend::DevicePolicyResponseDelegate* delegate)
|
| + : DeviceManagementJobBase(
|
| + backend_impl,
|
| + DeviceManagementBackendImpl::kValueRequestPolicy,
|
| + device_id),
|
| + delegate_(delegate) {
|
| + SetDeviceManagementToken(device_management_token);
|
| + em::DeviceManagementRequest request_wrapper;
|
| + request_wrapper.mutable_policy_request()->CopyFrom(request);
|
| + SetPayload(request_wrapper);
|
| + }
|
| virtual ~DeviceManagementPolicyJob() {}
|
|
|
| private:
|
| @@ -331,22 +332,40 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase {
|
| DISALLOW_COPY_AND_ASSIGN(DeviceManagementPolicyJob);
|
| };
|
|
|
| -DeviceManagementPolicyJob::DeviceManagementPolicyJob(
|
| - DeviceManagementBackendImpl* backend_impl,
|
| - const std::string& device_management_token,
|
| - const std::string& device_id,
|
| - const em::DevicePolicyRequest& request,
|
| - DeviceManagementBackend::DevicePolicyResponseDelegate* delegate)
|
| - : DeviceManagementJobBase(
|
| +// Handles cloud policy request jobs.
|
| +class CloudPolicyJob : public DeviceManagementJobBase {
|
| + public:
|
| + CloudPolicyJob(
|
| + DeviceManagementBackendImpl* backend_impl,
|
| + const std::string& device_management_token,
|
| + const std::string& device_id,
|
| + const em::CloudPolicyRequest& request,
|
| + DeviceManagementBackend::DevicePolicyResponseDelegate* delegate)
|
| + : DeviceManagementJobBase(
|
| backend_impl,
|
| - DeviceManagementBackendImpl::kValueRequestPolicy,
|
| + DeviceManagementBackendImpl::kValueRequestCloudPolicy,
|
| device_id),
|
| - delegate_(delegate) {
|
| - SetDeviceManagementToken(device_management_token);
|
| - em::DeviceManagementRequest request_wrapper;
|
| - request_wrapper.mutable_policy_request()->CopyFrom(request);
|
| - SetPayload(request_wrapper);
|
| -}
|
| + delegate_(delegate) {
|
| + SetDeviceManagementToken(device_management_token);
|
| + em::DeviceManagementRequest request_wrapper;
|
| + request_wrapper.mutable_cloud_policy_request()->CopyFrom(request);
|
| + SetPayload(request_wrapper);
|
| + }
|
| + virtual ~CloudPolicyJob() {}
|
| +
|
| + private:
|
| + // DeviceManagementJobBase overrides.
|
| + virtual void OnError(DeviceManagementBackend::ErrorCode error) {
|
| + delegate_->OnError(error);
|
| + }
|
| + virtual void OnResponse(const em::DeviceManagementResponse& response) {
|
| + delegate_->HandleCloudPolicyResponse(response.cloud_policy_response());
|
| + }
|
| +
|
| + DeviceManagementBackend::DevicePolicyResponseDelegate* delegate_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CloudPolicyJob);
|
| +};
|
|
|
| DeviceManagementBackendImpl::DeviceManagementBackendImpl(
|
| DeviceManagementService* service)
|
| @@ -409,4 +428,13 @@ void DeviceManagementBackendImpl::ProcessPolicyRequest(
|
| request, delegate));
|
| }
|
|
|
| +void DeviceManagementBackendImpl::ProcessCloudPolicyRequest(
|
| + const std::string& device_management_token,
|
| + const std::string& device_id,
|
| + const em::CloudPolicyRequest& request,
|
| + DevicePolicyResponseDelegate* delegate) {
|
| + AddJob(new CloudPolicyJob(this, device_management_token, device_id,
|
| + request, delegate));
|
| +}
|
| +
|
| } // namespace policy
|
|
|