OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/policy/device_management_backend_impl.h" | 5 #include "chrome/browser/policy/device_management_backend_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 10 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
11 #include <sys/utsname.h> | 11 #include <sys/utsname.h> |
12 #endif | 12 #endif |
13 | 13 |
| 14 #include "base/metrics/histogram.h" |
14 #include "base/stringprintf.h" | 15 #include "base/stringprintf.h" |
15 #include "base/sys_info.h" | 16 #include "base/sys_info.h" |
16 #include "chrome/browser/policy/device_management_service.h" | 17 #include "chrome/browser/policy/device_management_service.h" |
| 18 #include "chrome/browser/policy/enterprise_metrics.h" |
17 #include "chrome/common/chrome_version_info.h" | 19 #include "chrome/common/chrome_version_info.h" |
18 #include "net/base/escape.h" | 20 #include "net/base/escape.h" |
19 #include "net/url_request/url_request_status.h" | 21 #include "net/url_request/url_request_status.h" |
20 | 22 |
21 #if defined(OS_CHROMEOS) | 23 #if defined(OS_CHROMEOS) |
22 #include "chrome/browser/chromeos/system_access.h" | 24 #include "chrome/browser/chromeos/system_access.h" |
23 #endif | 25 #endif |
24 | 26 |
25 namespace policy { | 27 namespace policy { |
26 | 28 |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 SetAuthToken(auth_token); | 297 SetAuthToken(auth_token); |
296 em::DeviceManagementRequest request_wrapper; | 298 em::DeviceManagementRequest request_wrapper; |
297 request_wrapper.mutable_register_request()->CopyFrom(request); | 299 request_wrapper.mutable_register_request()->CopyFrom(request); |
298 SetPayload(request_wrapper); | 300 SetPayload(request_wrapper); |
299 } | 301 } |
300 virtual ~DeviceManagementRegisterJob() {} | 302 virtual ~DeviceManagementRegisterJob() {} |
301 | 303 |
302 private: | 304 private: |
303 // DeviceManagementJobBase overrides. | 305 // DeviceManagementJobBase overrides. |
304 virtual void OnError(DeviceManagementBackend::ErrorCode error) { | 306 virtual void OnError(DeviceManagementBackend::ErrorCode error) { |
| 307 MetricToken sample; |
| 308 switch (error) { |
| 309 case DeviceManagementBackend::kErrorRequestInvalid: |
| 310 case DeviceManagementBackend::kErrorRequestFailed: |
| 311 sample = kMetricTokenFetchRequestFailed; |
| 312 break; |
| 313 case DeviceManagementBackend::kErrorServiceDeviceNotFound: |
| 314 sample = kMetricTokenFetchDeviceNotFound; |
| 315 break; |
| 316 case DeviceManagementBackend::kErrorServiceManagementNotSupported: |
| 317 sample = kMetricTokenFetchManagementNotSupported; |
| 318 break; |
| 319 default: |
| 320 sample = kMetricTokenFetchServerFailed; |
| 321 break; |
| 322 } |
| 323 UMA_HISTOGRAM_ENUMERATION(kMetricToken, sample, kMetricTokenSize); |
305 delegate_->OnError(error); | 324 delegate_->OnError(error); |
306 } | 325 } |
307 virtual void OnResponse(const em::DeviceManagementResponse& response) { | 326 virtual void OnResponse(const em::DeviceManagementResponse& response) { |
| 327 UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenFetchResponseReceived, |
| 328 kMetricTokenSize); |
308 delegate_->HandleRegisterResponse(response.register_response()); | 329 delegate_->HandleRegisterResponse(response.register_response()); |
309 } | 330 } |
310 | 331 |
311 DeviceManagementBackend::DeviceRegisterResponseDelegate* delegate_; | 332 DeviceManagementBackend::DeviceRegisterResponseDelegate* delegate_; |
312 | 333 |
313 DISALLOW_COPY_AND_ASSIGN(DeviceManagementRegisterJob); | 334 DISALLOW_COPY_AND_ASSIGN(DeviceManagementRegisterJob); |
314 }; | 335 }; |
315 | 336 |
316 // Handles device unregistration jobs. | 337 // Handles device unregistration jobs. |
317 class DeviceManagementUnregisterJob : public DeviceManagementJobBase { | 338 class DeviceManagementUnregisterJob : public DeviceManagementJobBase { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 SetDeviceManagementToken(device_management_token); | 386 SetDeviceManagementToken(device_management_token); |
366 em::DeviceManagementRequest request_wrapper; | 387 em::DeviceManagementRequest request_wrapper; |
367 request_wrapper.mutable_policy_request()->CopyFrom(request); | 388 request_wrapper.mutable_policy_request()->CopyFrom(request); |
368 SetPayload(request_wrapper); | 389 SetPayload(request_wrapper); |
369 } | 390 } |
370 virtual ~DeviceManagementPolicyJob() {} | 391 virtual ~DeviceManagementPolicyJob() {} |
371 | 392 |
372 private: | 393 private: |
373 // DeviceManagementJobBase overrides. | 394 // DeviceManagementJobBase overrides. |
374 virtual void OnError(DeviceManagementBackend::ErrorCode error) { | 395 virtual void OnError(DeviceManagementBackend::ErrorCode error) { |
| 396 MetricPolicy sample; |
| 397 switch (error) { |
| 398 case DeviceManagementBackend::kErrorRequestInvalid: |
| 399 case DeviceManagementBackend::kErrorRequestFailed: |
| 400 sample = kMetricPolicyFetchRequestFailed; |
| 401 break; |
| 402 case DeviceManagementBackend::kErrorServicePolicyNotFound: |
| 403 sample = kMetricPolicyFetchNotFound; |
| 404 break; |
| 405 case DeviceManagementBackend::kErrorServiceManagementTokenInvalid: |
| 406 sample = kMetricPolicyFetchInvalidToken; |
| 407 break; |
| 408 default: |
| 409 sample = kMetricPolicyFetchServerFailed; |
| 410 break; |
| 411 } |
| 412 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, sample, kMetricPolicySize); |
375 delegate_->OnError(error); | 413 delegate_->OnError(error); |
376 } | 414 } |
377 virtual void OnResponse(const em::DeviceManagementResponse& response) { | 415 virtual void OnResponse(const em::DeviceManagementResponse& response) { |
| 416 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchResponseReceived, |
| 417 kMetricPolicySize); |
378 delegate_->HandlePolicyResponse(response.policy_response()); | 418 delegate_->HandlePolicyResponse(response.policy_response()); |
379 } | 419 } |
380 | 420 |
381 DeviceManagementBackend::DevicePolicyResponseDelegate* delegate_; | 421 DeviceManagementBackend::DevicePolicyResponseDelegate* delegate_; |
382 | 422 |
383 DISALLOW_COPY_AND_ASSIGN(DeviceManagementPolicyJob); | 423 DISALLOW_COPY_AND_ASSIGN(DeviceManagementPolicyJob); |
384 }; | 424 }; |
385 | 425 |
386 DeviceManagementBackendImpl::DeviceManagementBackendImpl( | 426 DeviceManagementBackendImpl::DeviceManagementBackendImpl( |
387 DeviceManagementService* service) | 427 DeviceManagementService* service) |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 void DeviceManagementBackendImpl::AddJob(DeviceManagementJobBase* job) { | 500 void DeviceManagementBackendImpl::AddJob(DeviceManagementJobBase* job) { |
461 pending_jobs_.insert(job); | 501 pending_jobs_.insert(job); |
462 service_->AddJob(job); | 502 service_->AddJob(job); |
463 } | 503 } |
464 | 504 |
465 void DeviceManagementBackendImpl::ProcessRegisterRequest( | 505 void DeviceManagementBackendImpl::ProcessRegisterRequest( |
466 const std::string& auth_token, | 506 const std::string& auth_token, |
467 const std::string& device_id, | 507 const std::string& device_id, |
468 const em::DeviceRegisterRequest& request, | 508 const em::DeviceRegisterRequest& request, |
469 DeviceRegisterResponseDelegate* delegate) { | 509 DeviceRegisterResponseDelegate* delegate) { |
| 510 UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenFetchRequested, |
| 511 kMetricTokenSize); |
470 AddJob(new DeviceManagementRegisterJob(this, auth_token, device_id, request, | 512 AddJob(new DeviceManagementRegisterJob(this, auth_token, device_id, request, |
471 delegate)); | 513 delegate)); |
472 } | 514 } |
473 | 515 |
474 void DeviceManagementBackendImpl::ProcessUnregisterRequest( | 516 void DeviceManagementBackendImpl::ProcessUnregisterRequest( |
475 const std::string& device_management_token, | 517 const std::string& device_management_token, |
476 const std::string& device_id, | 518 const std::string& device_id, |
477 const em::DeviceUnregisterRequest& request, | 519 const em::DeviceUnregisterRequest& request, |
478 DeviceUnregisterResponseDelegate* delegate) { | 520 DeviceUnregisterResponseDelegate* delegate) { |
479 AddJob(new DeviceManagementUnregisterJob(this, device_management_token, | 521 AddJob(new DeviceManagementUnregisterJob(this, device_management_token, |
480 device_id, request, delegate)); | 522 device_id, request, delegate)); |
481 } | 523 } |
482 | 524 |
483 void DeviceManagementBackendImpl::ProcessPolicyRequest( | 525 void DeviceManagementBackendImpl::ProcessPolicyRequest( |
484 const std::string& device_management_token, | 526 const std::string& device_management_token, |
485 const std::string& device_id, | 527 const std::string& device_id, |
486 const em::DevicePolicyRequest& request, | 528 const em::DevicePolicyRequest& request, |
487 DevicePolicyResponseDelegate* delegate) { | 529 DevicePolicyResponseDelegate* delegate) { |
| 530 UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested, |
| 531 kMetricPolicySize); |
488 AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id, | 532 AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id, |
489 request, delegate)); | 533 request, delegate)); |
490 } | 534 } |
491 | 535 |
492 } // namespace policy | 536 } // namespace policy |
OLD | NEW |