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

Unified Diff: components/policy/core/common/cloud/cloud_policy_client.cc

Issue 1258313002: Send GCM id to DMServer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add tests Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
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));
}

Powered by Google App Engine
This is Rietveld 408576698