OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "components/policy/core/common/cloud/cloud_policy_client.h" | 5 #include "components/policy/core/common/cloud/cloud_policy_client.h" |
6 | 6 |
| 7 #include <utility> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
9 #include "base/guid.h" | 11 #include "base/guid.h" |
10 #include "base/logging.h" | 12 #include "base/logging.h" |
11 #include "base/stl_util.h" | 13 #include "base/stl_util.h" |
12 #include "components/policy/core/common/cloud/device_management_service.h" | 14 #include "components/policy/core/common/cloud/device_management_service.h" |
13 #include "google_apis/gaia/gaia_constants.h" | 15 #include "google_apis/gaia/gaia_constants.h" |
14 #include "google_apis/gaia/gaia_urls.h" | 16 #include "google_apis/gaia/gaia_urls.h" |
15 #include "net/url_request/url_request_context_getter.h" | 17 #include "net/url_request/url_request_context_getter.h" |
16 | 18 |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 request_job->SetClientID(client_id_); | 257 request_job->SetClientID(client_id_); |
256 | 258 |
257 em::DeviceManagementRequest* request = request_job->GetRequest(); | 259 em::DeviceManagementRequest* request = request_job->GetRequest(); |
258 request->mutable_cert_upload_request()->set_device_certificate( | 260 request->mutable_cert_upload_request()->set_device_certificate( |
259 certificate_data); | 261 certificate_data); |
260 | 262 |
261 const DeviceManagementRequestJob::Callback job_callback = | 263 const DeviceManagementRequestJob::Callback job_callback = |
262 base::Bind(&CloudPolicyClient::OnCertificateUploadCompleted, | 264 base::Bind(&CloudPolicyClient::OnCertificateUploadCompleted, |
263 base::Unretained(this), request_job.get(), callback); | 265 base::Unretained(this), request_job.get(), callback); |
264 | 266 |
265 request_jobs_.push_back(request_job.Pass()); | 267 request_jobs_.push_back(std::move(request_job)); |
266 request_jobs_.back()->Start(job_callback); | 268 request_jobs_.back()->Start(job_callback); |
267 } | 269 } |
268 | 270 |
269 void CloudPolicyClient::UploadDeviceStatus( | 271 void CloudPolicyClient::UploadDeviceStatus( |
270 const em::DeviceStatusReportRequest* device_status, | 272 const em::DeviceStatusReportRequest* device_status, |
271 const em::SessionStatusReportRequest* session_status, | 273 const em::SessionStatusReportRequest* session_status, |
272 const CloudPolicyClient::StatusCallback& callback) { | 274 const CloudPolicyClient::StatusCallback& callback) { |
273 CHECK(is_registered()); | 275 CHECK(is_registered()); |
274 // Should pass in at least one type of status. | 276 // Should pass in at least one type of status. |
275 DCHECK(device_status || session_status); | 277 DCHECK(device_status || session_status); |
276 scoped_ptr<DeviceManagementRequestJob> request_job( | 278 scoped_ptr<DeviceManagementRequestJob> request_job( |
277 service_->CreateJob(DeviceManagementRequestJob::TYPE_UPLOAD_STATUS, | 279 service_->CreateJob(DeviceManagementRequestJob::TYPE_UPLOAD_STATUS, |
278 GetRequestContext())); | 280 GetRequestContext())); |
279 request_job->SetDMToken(dm_token_); | 281 request_job->SetDMToken(dm_token_); |
280 request_job->SetClientID(client_id_); | 282 request_job->SetClientID(client_id_); |
281 | 283 |
282 em::DeviceManagementRequest* request = request_job->GetRequest(); | 284 em::DeviceManagementRequest* request = request_job->GetRequest(); |
283 if (device_status) | 285 if (device_status) |
284 *request->mutable_device_status_report_request() = *device_status; | 286 *request->mutable_device_status_report_request() = *device_status; |
285 if (session_status) | 287 if (session_status) |
286 *request->mutable_session_status_report_request() = *session_status; | 288 *request->mutable_session_status_report_request() = *session_status; |
287 | 289 |
288 const DeviceManagementRequestJob::Callback job_callback = | 290 const DeviceManagementRequestJob::Callback job_callback = |
289 base::Bind(&CloudPolicyClient::OnStatusUploadCompleted, | 291 base::Bind(&CloudPolicyClient::OnStatusUploadCompleted, |
290 base::Unretained(this), request_job.get(), callback); | 292 base::Unretained(this), request_job.get(), callback); |
291 | 293 |
292 request_jobs_.push_back(request_job.Pass()); | 294 request_jobs_.push_back(std::move(request_job)); |
293 request_jobs_.back()->Start(job_callback); | 295 request_jobs_.back()->Start(job_callback); |
294 } | 296 } |
295 | 297 |
296 void CloudPolicyClient::FetchRemoteCommands( | 298 void CloudPolicyClient::FetchRemoteCommands( |
297 scoped_ptr<RemoteCommandJob::UniqueIDType> last_command_id, | 299 scoped_ptr<RemoteCommandJob::UniqueIDType> last_command_id, |
298 const std::vector<em::RemoteCommandResult>& command_results, | 300 const std::vector<em::RemoteCommandResult>& command_results, |
299 const RemoteCommandCallback& callback) { | 301 const RemoteCommandCallback& callback) { |
300 CHECK(is_registered()); | 302 CHECK(is_registered()); |
301 scoped_ptr<DeviceManagementRequestJob> request_job(service_->CreateJob( | 303 scoped_ptr<DeviceManagementRequestJob> request_job(service_->CreateJob( |
302 DeviceManagementRequestJob::TYPE_REMOTE_COMMANDS, GetRequestContext())); | 304 DeviceManagementRequestJob::TYPE_REMOTE_COMMANDS, GetRequestContext())); |
303 | 305 |
304 request_job->SetDMToken(dm_token_); | 306 request_job->SetDMToken(dm_token_); |
305 request_job->SetClientID(client_id_); | 307 request_job->SetClientID(client_id_); |
306 | 308 |
307 em::DeviceRemoteCommandRequest* const request = | 309 em::DeviceRemoteCommandRequest* const request = |
308 request_job->GetRequest()->mutable_remote_command_request(); | 310 request_job->GetRequest()->mutable_remote_command_request(); |
309 | 311 |
310 if (last_command_id) | 312 if (last_command_id) |
311 request->set_last_command_unique_id(*last_command_id); | 313 request->set_last_command_unique_id(*last_command_id); |
312 | 314 |
313 for (const auto& command_result : command_results) | 315 for (const auto& command_result : command_results) |
314 *request->add_command_results() = command_result; | 316 *request->add_command_results() = command_result; |
315 | 317 |
316 const DeviceManagementRequestJob::Callback job_callback = | 318 const DeviceManagementRequestJob::Callback job_callback = |
317 base::Bind(&CloudPolicyClient::OnRemoteCommandsFetched, | 319 base::Bind(&CloudPolicyClient::OnRemoteCommandsFetched, |
318 base::Unretained(this), request_job.get(), callback); | 320 base::Unretained(this), request_job.get(), callback); |
319 | 321 |
320 request_jobs_.push_back(request_job.Pass()); | 322 request_jobs_.push_back(std::move(request_job)); |
321 request_jobs_.back()->Start(job_callback); | 323 request_jobs_.back()->Start(job_callback); |
322 } | 324 } |
323 | 325 |
324 void CloudPolicyClient::GetDeviceAttributeUpdatePermission( | 326 void CloudPolicyClient::GetDeviceAttributeUpdatePermission( |
325 const std::string &auth_token, | 327 const std::string &auth_token, |
326 const CloudPolicyClient::StatusCallback& callback) { | 328 const CloudPolicyClient::StatusCallback& callback) { |
327 CHECK(is_registered()); | 329 CHECK(is_registered()); |
328 DCHECK(!auth_token.empty()); | 330 DCHECK(!auth_token.empty()); |
329 | 331 |
330 scoped_ptr<DeviceManagementRequestJob> request_job( | 332 scoped_ptr<DeviceManagementRequestJob> request_job( |
331 service_->CreateJob( | 333 service_->CreateJob( |
332 DeviceManagementRequestJob::TYPE_ATTRIBUTE_UPDATE_PERMISSION, | 334 DeviceManagementRequestJob::TYPE_ATTRIBUTE_UPDATE_PERMISSION, |
333 GetRequestContext())); | 335 GetRequestContext())); |
334 | 336 |
335 request_job->SetOAuthToken(auth_token); | 337 request_job->SetOAuthToken(auth_token); |
336 request_job->SetClientID(client_id_); | 338 request_job->SetClientID(client_id_); |
337 | 339 |
338 request_job->GetRequest()-> | 340 request_job->GetRequest()-> |
339 mutable_device_attribute_update_permission_request(); | 341 mutable_device_attribute_update_permission_request(); |
340 | 342 |
341 const DeviceManagementRequestJob::Callback job_callback = | 343 const DeviceManagementRequestJob::Callback job_callback = |
342 base::Bind(&CloudPolicyClient::OnDeviceAttributeUpdatePermissionCompleted, | 344 base::Bind(&CloudPolicyClient::OnDeviceAttributeUpdatePermissionCompleted, |
343 base::Unretained(this), request_job.get(), callback); | 345 base::Unretained(this), request_job.get(), callback); |
344 | 346 |
345 request_jobs_.push_back(request_job.Pass()); | 347 request_jobs_.push_back(std::move(request_job)); |
346 request_jobs_.back()->Start(job_callback); | 348 request_jobs_.back()->Start(job_callback); |
347 } | 349 } |
348 | 350 |
349 void CloudPolicyClient::UpdateDeviceAttributes( | 351 void CloudPolicyClient::UpdateDeviceAttributes( |
350 const std::string& auth_token, | 352 const std::string& auth_token, |
351 const std::string& asset_id, | 353 const std::string& asset_id, |
352 const std::string& location, | 354 const std::string& location, |
353 const CloudPolicyClient::StatusCallback& callback) { | 355 const CloudPolicyClient::StatusCallback& callback) { |
354 CHECK(is_registered()); | 356 CHECK(is_registered()); |
355 DCHECK(!auth_token.empty()); | 357 DCHECK(!auth_token.empty()); |
356 | 358 |
357 scoped_ptr<DeviceManagementRequestJob> request_job( | 359 scoped_ptr<DeviceManagementRequestJob> request_job( |
358 service_->CreateJob( | 360 service_->CreateJob( |
359 DeviceManagementRequestJob::TYPE_ATTRIBUTE_UPDATE, | 361 DeviceManagementRequestJob::TYPE_ATTRIBUTE_UPDATE, |
360 GetRequestContext())); | 362 GetRequestContext())); |
361 | 363 |
362 request_job->SetOAuthToken(auth_token); | 364 request_job->SetOAuthToken(auth_token); |
363 request_job->SetClientID(client_id_); | 365 request_job->SetClientID(client_id_); |
364 | 366 |
365 em::DeviceAttributeUpdateRequest* request = | 367 em::DeviceAttributeUpdateRequest* request = |
366 request_job->GetRequest()->mutable_device_attribute_update_request(); | 368 request_job->GetRequest()->mutable_device_attribute_update_request(); |
367 | 369 |
368 request->set_asset_id(asset_id); | 370 request->set_asset_id(asset_id); |
369 request->set_location(location); | 371 request->set_location(location); |
370 | 372 |
371 const DeviceManagementRequestJob::Callback job_callback = | 373 const DeviceManagementRequestJob::Callback job_callback = |
372 base::Bind(&CloudPolicyClient::OnDeviceAttributeUpdated, | 374 base::Bind(&CloudPolicyClient::OnDeviceAttributeUpdated, |
373 base::Unretained(this), request_job.get(), callback); | 375 base::Unretained(this), request_job.get(), callback); |
374 | 376 |
375 request_jobs_.push_back(request_job.Pass()); | 377 request_jobs_.push_back(std::move(request_job)); |
376 request_jobs_.back()->Start(job_callback); | 378 request_jobs_.back()->Start(job_callback); |
377 } | 379 } |
378 | 380 |
379 void CloudPolicyClient::UpdateGcmId( | 381 void CloudPolicyClient::UpdateGcmId( |
380 const std::string& gcm_id, | 382 const std::string& gcm_id, |
381 const CloudPolicyClient::StatusCallback& callback) { | 383 const CloudPolicyClient::StatusCallback& callback) { |
382 CHECK(is_registered()); | 384 CHECK(is_registered()); |
383 | 385 |
384 scoped_ptr<DeviceManagementRequestJob> request_job(service_->CreateJob( | 386 scoped_ptr<DeviceManagementRequestJob> request_job(service_->CreateJob( |
385 DeviceManagementRequestJob::TYPE_GCM_ID_UPDATE, GetRequestContext())); | 387 DeviceManagementRequestJob::TYPE_GCM_ID_UPDATE, GetRequestContext())); |
386 | 388 |
387 request_job->SetDMToken(dm_token_); | 389 request_job->SetDMToken(dm_token_); |
388 request_job->SetClientID(client_id_); | 390 request_job->SetClientID(client_id_); |
389 | 391 |
390 em::GcmIdUpdateRequest* const request = | 392 em::GcmIdUpdateRequest* const request = |
391 request_job->GetRequest()->mutable_gcm_id_update_request(); | 393 request_job->GetRequest()->mutable_gcm_id_update_request(); |
392 | 394 |
393 request->set_gcm_id(gcm_id); | 395 request->set_gcm_id(gcm_id); |
394 | 396 |
395 const DeviceManagementRequestJob::Callback job_callback = | 397 const DeviceManagementRequestJob::Callback job_callback = |
396 base::Bind(&CloudPolicyClient::OnGcmIdUpdated, base::Unretained(this), | 398 base::Bind(&CloudPolicyClient::OnGcmIdUpdated, base::Unretained(this), |
397 request_job.get(), callback); | 399 request_job.get(), callback); |
398 | 400 |
399 request_jobs_.push_back(request_job.Pass()); | 401 request_jobs_.push_back(std::move(request_job)); |
400 request_jobs_.back()->Start(job_callback); | 402 request_jobs_.back()->Start(job_callback); |
401 } | 403 } |
402 | 404 |
403 void CloudPolicyClient::AddObserver(Observer* observer) { | 405 void CloudPolicyClient::AddObserver(Observer* observer) { |
404 observers_.AddObserver(observer); | 406 observers_.AddObserver(observer); |
405 } | 407 } |
406 | 408 |
407 void CloudPolicyClient::RemoveObserver(Observer* observer) { | 409 void CloudPolicyClient::RemoveObserver(Observer* observer) { |
408 observers_.RemoveObserver(observer); | 410 observers_.RemoveObserver(observer); |
409 } | 411 } |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 | 714 |
713 void CloudPolicyClient::NotifyRobotAuthCodesFetched() { | 715 void CloudPolicyClient::NotifyRobotAuthCodesFetched() { |
714 FOR_EACH_OBSERVER(Observer, observers_, OnRobotAuthCodesFetched(this)); | 716 FOR_EACH_OBSERVER(Observer, observers_, OnRobotAuthCodesFetched(this)); |
715 } | 717 } |
716 | 718 |
717 void CloudPolicyClient::NotifyClientError() { | 719 void CloudPolicyClient::NotifyClientError() { |
718 FOR_EACH_OBSERVER(Observer, observers_, OnClientError(this)); | 720 FOR_EACH_OBSERVER(Observer, observers_, OnClientError(this)); |
719 } | 721 } |
720 | 722 |
721 } // namespace policy | 723 } // namespace policy |
OLD | NEW |