Chromium Code Reviews| Index: components/policy/core/common/cloud/cloud_policy_client.cc |
| diff --git a/components/policy/core/common/cloud/cloud_policy_client.cc b/components/policy/core/common/cloud/cloud_policy_client.cc |
| index e2060fa0a67871344d3d8b6c4753edb1dcbd7508..396402c5d7bf95b827ac5e621d960ef6ba823d9b 100644 |
| --- a/components/policy/core/common/cloud/cloud_policy_client.cc |
| +++ b/components/policy/core/common/cloud/cloud_policy_client.cc |
| @@ -377,6 +377,30 @@ void CloudPolicyClient::UpdateDeviceAttributes( |
| request_jobs_.back()->Start(job_callback); |
| } |
| +void CloudPolicyClient::UpdateGcmIdMapping( |
| + const std::string& gcm_id, |
| + const CloudPolicyClient::StatusCallback& callback) { |
| + CHECK(is_registered()); |
| + |
| + scoped_ptr<DeviceManagementRequestJob> request_job(service_->CreateJob( |
| + DeviceManagementRequestJob::TYPE_GCM_ID_MAPPING, GetRequestContext())); |
| + |
| + request_job->SetDMToken(dm_token_); |
| + request_job->SetClientID(client_id_); |
| + |
| + em::GcmIdMappingRequest* const request = |
| + request_job->GetRequest()->mutable_gcm_id_mapping_request(); |
| + |
| + request->set_gcm_id(gcm_id); |
| + |
| + const DeviceManagementRequestJob::Callback job_callback = |
| + base::Bind(&CloudPolicyClient::OnGcmIdMappingUpdated, |
| + base::Unretained(this), request_job.get(), callback); |
| + |
| + request_jobs_.push_back(request_job.Pass()); |
| + request_jobs_.back()->Start(job_callback); |
| +} |
| + |
| void CloudPolicyClient::AddObserver(Observer* observer) { |
| observers_.AddObserver(observer); |
| } |
| @@ -665,6 +689,16 @@ void CloudPolicyClient::OnRemoteCommandsFetched( |
| RemoveJob(job); |
| } |
| +void CloudPolicyClient::OnGcmIdMappingUpdated( |
| + const DeviceManagementRequestJob* job, |
| + const StatusCallback& callback, |
| + DeviceManagementStatus status, |
| + int net_error, |
| + const enterprise_management::DeviceManagementResponse& response) { |
| + callback.Run(status == DM_STATUS_SUCCESS); |
|
Andrew T Wilson (Slow)
2015/08/03 13:52:26
Should we call NotifyClientError() and update stat
binjin
2015/08/03 17:54:25
I thought it's not essential. Both onClientError()
|
| + RemoveJob(job); |
| +} |
| + |
| void CloudPolicyClient::NotifyPolicyFetched() { |
| FOR_EACH_OBSERVER(Observer, observers_, OnPolicyFetched(this)); |
| } |