| 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 2808c1905619cd8e34808fc317d504bcb0719ff0..11e5fea01e7e015714ae1abfaed0983d52883637 100644
|
| --- a/chrome/browser/policy/device_management_backend_impl.cc
|
| +++ b/chrome/browser/policy/device_management_backend_impl.cc
|
| @@ -15,21 +15,26 @@
|
|
|
| namespace policy {
|
|
|
| -namespace {
|
| -
|
| // Name constants for URL query parameters.
|
| -const char kServiceParamRequest[] = "request";
|
| -const char kServiceParamDeviceType[] = "devicetype";
|
| -const char kServiceParamAppType[] = "apptype";
|
| -const char kServiceParamDeviceID[] = "deviceid";
|
| -const char kServiceParamAgent[] = "agent";
|
| +const char DeviceManagementBackendImpl::kParamRequest[] = "request";
|
| +const char DeviceManagementBackendImpl::kParamDeviceType[] = "devicetype";
|
| +const char DeviceManagementBackendImpl::kParamAppType[] = "apptype";
|
| +const char DeviceManagementBackendImpl::kParamDeviceID[] = "deviceid";
|
| +const char DeviceManagementBackendImpl::kParamAgent[] = "agent";
|
|
|
| // String constants for the device and app type we report to the server.
|
| -const char kServiceValueDeviceType[] = "Chrome OS";
|
| -const char kServiceValueAppType[] = "Chrome";
|
| +const char DeviceManagementBackendImpl::kValueRequestRegister[] = "register";
|
| +const char DeviceManagementBackendImpl::kValueRequestUnregister[] =
|
| + "unregister";
|
| +const char DeviceManagementBackendImpl::kValueRequestPolicy[] = "policy";
|
| +const char DeviceManagementBackendImpl::kValueDeviceType[] = "Chrome OS";
|
| +const char DeviceManagementBackendImpl::kValueAppType[] = "Chrome";
|
| +
|
| +namespace {
|
|
|
| -const char kServiceValueAgent[] =
|
| - "%s enterprise management client version %s (%s)";
|
| +const char kValueAgent[] = "%s enterprise management client version %s (%s)";
|
| +
|
| +const char kPostContentType[] = "application/octet-stream";
|
|
|
| const char kServiceTokenAuthHeader[] = "Authorization: GoogleLogin auth=";
|
| const char kDMTokenAuthHeader[] = "Authorization: GoogleDMToken token=";
|
| @@ -95,17 +100,17 @@ class DeviceManagementJobBase
|
| protected:
|
| // Constructs a device management job running for the given backend.
|
| DeviceManagementJobBase(DeviceManagementBackendImpl* backend_impl,
|
| - const std::string& request_type)
|
| + const std::string& request_type,
|
| + const std::string& device_id)
|
| : backend_impl_(backend_impl) {
|
| - query_params_.Put(kServiceParamRequest, request_type);
|
| - query_params_.Put(kServiceParamDeviceType, kServiceValueDeviceType);
|
| - query_params_.Put(kServiceParamAppType, kServiceValueAppType);
|
| - chrome::VersionInfo version_info;
|
| - std::string agent = base::StringPrintf(kServiceValueAgent,
|
| - version_info.Name().c_str(),
|
| - version_info.Version().c_str(),
|
| - version_info.LastChange().c_str());
|
| - query_params_.Put(kServiceParamAgent, agent);
|
| + query_params_.Put(DeviceManagementBackendImpl::kParamRequest, request_type);
|
| + query_params_.Put(DeviceManagementBackendImpl::kParamDeviceType,
|
| + DeviceManagementBackendImpl::kValueDeviceType);
|
| + query_params_.Put(DeviceManagementBackendImpl::kParamAppType,
|
| + DeviceManagementBackendImpl::kValueAppType);
|
| + query_params_.Put(DeviceManagementBackendImpl::kParamDeviceID, device_id);
|
| + query_params_.Put(DeviceManagementBackendImpl::kParamAgent,
|
| + DeviceManagementBackendImpl::GetAgentString());
|
| }
|
|
|
| void SetQueryParam(const std::string& name, const std::string& value) {
|
| @@ -120,10 +125,6 @@ class DeviceManagementJobBase
|
| device_management_token_ = device_management_token;
|
| }
|
|
|
| - void SetDeviceID(const std::string& device_id) {
|
| - query_params_.Put(kServiceParamDeviceID, device_id);
|
| - }
|
| -
|
| void SetPayload(const em::DeviceManagementRequest& request) {
|
| if (!request.SerializeToString(&payload_)) {
|
| NOTREACHED();
|
| @@ -210,7 +211,7 @@ GURL DeviceManagementJobBase::GetURL(
|
| }
|
|
|
| void DeviceManagementJobBase::ConfigureRequest(URLFetcher* fetcher) {
|
| - fetcher->set_upload_data("application/octet-stream", payload_);
|
| + fetcher->set_upload_data(kPostContentType, payload_);
|
| std::string extra_headers;
|
| if (!auth_token_.empty())
|
| extra_headers += kServiceTokenAuthHeader + auth_token_ + "\n";
|
| @@ -250,9 +251,11 @@ DeviceManagementRegisterJob::DeviceManagementRegisterJob(
|
| const std::string& device_id,
|
| const em::DeviceRegisterRequest& request,
|
| DeviceManagementBackend::DeviceRegisterResponseDelegate* delegate)
|
| - : DeviceManagementJobBase(backend_impl, "register"),
|
| + : DeviceManagementJobBase(
|
| + backend_impl,
|
| + DeviceManagementBackendImpl::kValueRequestRegister,
|
| + device_id),
|
| delegate_(delegate) {
|
| - SetDeviceID(device_id);
|
| SetAuthToken(auth_token);
|
| em::DeviceManagementRequest request_wrapper;
|
| request_wrapper.mutable_register_request()->CopyFrom(request);
|
| @@ -264,6 +267,7 @@ class DeviceManagementUnregisterJob : public DeviceManagementJobBase {
|
| public:
|
| DeviceManagementUnregisterJob(
|
| DeviceManagementBackendImpl* backend_impl,
|
| + const std::string& device_id,
|
| const std::string& device_management_token,
|
| const em::DeviceUnregisterRequest& request,
|
| DeviceManagementBackend::DeviceUnregisterResponseDelegate* delegate);
|
| @@ -286,9 +290,13 @@ class DeviceManagementUnregisterJob : public DeviceManagementJobBase {
|
| 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, "unregister"),
|
| + : DeviceManagementJobBase(
|
| + backend_impl,
|
| + DeviceManagementBackendImpl::kValueRequestUnregister,
|
| + device_id),
|
| delegate_(delegate) {
|
| SetDeviceManagementToken(device_management_token);
|
| em::DeviceManagementRequest request_wrapper;
|
| @@ -302,6 +310,7 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase {
|
| DeviceManagementPolicyJob(
|
| DeviceManagementBackendImpl* backend_impl,
|
| const std::string& device_management_token,
|
| + const std::string& device_id,
|
| const em::DevicePolicyRequest& request,
|
| DeviceManagementBackend::DevicePolicyResponseDelegate* delegate);
|
| virtual ~DeviceManagementPolicyJob() {}
|
| @@ -323,9 +332,13 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase {
|
| DeviceManagementPolicyJob::DeviceManagementPolicyJob(
|
| DeviceManagementBackendImpl* backend_impl,
|
| const std::string& device_management_token,
|
| + const std::string& device_id,
|
| const em::DevicePolicyRequest& request,
|
| DeviceManagementBackend::DevicePolicyResponseDelegate* delegate)
|
| - : DeviceManagementJobBase(backend_impl, "policy"),
|
| + : DeviceManagementJobBase(
|
| + backend_impl,
|
| + DeviceManagementBackendImpl::kValueRequestPolicy,
|
| + device_id),
|
| delegate_(delegate) {
|
| SetDeviceManagementToken(device_management_token);
|
| em::DeviceManagementRequest request_wrapper;
|
| @@ -350,6 +363,14 @@ DeviceManagementBackendImpl::~DeviceManagementBackendImpl() {
|
| }
|
| }
|
|
|
| +std::string DeviceManagementBackendImpl::GetAgentString() {
|
| + chrome::VersionInfo version_info;
|
| + return base::StringPrintf(kValueAgent,
|
| + version_info.Name().c_str(),
|
| + version_info.Version().c_str(),
|
| + version_info.LastChange().c_str());
|
| +}
|
| +
|
| void DeviceManagementBackendImpl::JobDone(DeviceManagementJobBase* job) {
|
| pending_jobs_.erase(job);
|
| }
|
| @@ -370,18 +391,20 @@ void DeviceManagementBackendImpl::ProcessRegisterRequest(
|
|
|
| void DeviceManagementBackendImpl::ProcessUnregisterRequest(
|
| const std::string& device_management_token,
|
| + const std::string& device_id,
|
| const em::DeviceUnregisterRequest& request,
|
| DeviceUnregisterResponseDelegate* delegate) {
|
| AddJob(new DeviceManagementUnregisterJob(this, device_management_token,
|
| - request, delegate));
|
| + device_id, request, delegate));
|
| }
|
|
|
| void DeviceManagementBackendImpl::ProcessPolicyRequest(
|
| const std::string& device_management_token,
|
| + const std::string& device_id,
|
| const em::DevicePolicyRequest& request,
|
| DevicePolicyResponseDelegate* delegate) {
|
| - AddJob(new DeviceManagementPolicyJob(this, device_management_token, request,
|
| - delegate));
|
| + AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id,
|
| + request, delegate));
|
| }
|
|
|
| } // namespace policy
|
|
|