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 "content/browser/download/download_stats.h" | 5 #include "content/browser/download/download_stats.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/metrics/histogram_macros.h" | 8 #include "base/metrics/histogram_macros.h" |
9 #include "base/metrics/sparse_histogram.h" | 9 #include "base/metrics/sparse_histogram.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 if (danger_type == DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE) { | 462 if (danger_type == DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE) { |
463 UMA_HISTOGRAM_SPARSE_SLOWLY("Download.DangerousFile.Discard", | 463 UMA_HISTOGRAM_SPARSE_SLOWLY("Download.DangerousFile.Discard", |
464 GetDangerousFileType(file_path)); | 464 GetDangerousFileType(file_path)); |
465 } | 465 } |
466 break; | 466 break; |
467 default: | 467 default: |
468 NOTREACHED(); | 468 NOTREACHED(); |
469 } | 469 } |
470 } | 470 } |
471 | 471 |
472 void RecordDownloadWriteSize(size_t data_len) { | |
473 int max = 1024 * 1024; // One Megabyte. | |
474 UMA_HISTOGRAM_CUSTOM_COUNTS("Download.WriteSize", data_len, 1, max, 256); | |
475 } | |
476 | |
477 void RecordDownloadWriteLoopCount(int count) { | |
478 UMA_HISTOGRAM_ENUMERATION("Download.WriteLoopCount", count, 20); | |
479 } | |
480 | |
481 void RecordAcceptsRanges(const std::string& accepts_ranges, | 472 void RecordAcceptsRanges(const std::string& accepts_ranges, |
482 int64_t download_len, | 473 int64_t download_len, |
483 bool has_strong_validator) { | 474 bool has_strong_validator) { |
484 int64_t max = 1024 * 1024 * 1024; // One Terabyte. | 475 int64_t max = 1024 * 1024 * 1024; // One Terabyte. |
485 download_len /= 1024; // In Kilobytes | 476 download_len /= 1024; // In Kilobytes |
486 static const int kBuckets = 50; | 477 static const int kBuckets = 50; |
487 | 478 |
488 if (base::LowerCaseEqualsASCII(accepts_ranges, "none")) { | 479 if (base::LowerCaseEqualsASCII(accepts_ranges, "none")) { |
489 UMA_HISTOGRAM_CUSTOM_COUNTS("Download.AcceptRangesNone.KBytes", | 480 UMA_HISTOGRAM_CUSTOM_COUNTS("Download.AcceptRangesNone.KBytes", |
490 download_len, | 481 download_len, |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 CONTENT_DISPOSITION_HAS_RFC2047_ENCODED_STRINGS, result, | 657 CONTENT_DISPOSITION_HAS_RFC2047_ENCODED_STRINGS, result, |
667 net::HttpContentDisposition::HAS_RFC2047_ENCODED_STRINGS); | 658 net::HttpContentDisposition::HAS_RFC2047_ENCODED_STRINGS); |
668 } | 659 } |
669 | 660 |
670 void RecordFileThreadReceiveBuffers(size_t num_buffers) { | 661 void RecordFileThreadReceiveBuffers(size_t num_buffers) { |
671 UMA_HISTOGRAM_CUSTOM_COUNTS( | 662 UMA_HISTOGRAM_CUSTOM_COUNTS( |
672 "Download.FileThreadReceiveBuffers", num_buffers, 1, | 663 "Download.FileThreadReceiveBuffers", num_buffers, 1, |
673 100, 100); | 664 100, 100); |
674 } | 665 } |
675 | 666 |
676 void RecordBandwidth(double actual_bandwidth, double potential_bandwidth) { | |
677 UMA_HISTOGRAM_CUSTOM_COUNTS( | |
678 "Download.ActualBandwidth", actual_bandwidth, 1, 1000000000, 50); | |
679 UMA_HISTOGRAM_CUSTOM_COUNTS( | |
680 "Download.PotentialBandwidth", potential_bandwidth, 1, 1000000000, 50); | |
681 UMA_HISTOGRAM_PERCENTAGE( | |
682 "Download.BandwidthUsed", | |
683 (int) ((actual_bandwidth * 100)/ potential_bandwidth)); | |
684 } | |
685 | |
686 void RecordOpen(const base::Time& end, bool first) { | 667 void RecordOpen(const base::Time& end, bool first) { |
687 if (!end.is_null()) { | 668 if (!end.is_null()) { |
688 UMA_HISTOGRAM_LONG_TIMES("Download.OpenTime", (base::Time::Now() - end)); | 669 UMA_HISTOGRAM_LONG_TIMES("Download.OpenTime", (base::Time::Now() - end)); |
689 if (first) { | 670 if (first) { |
690 UMA_HISTOGRAM_LONG_TIMES("Download.FirstOpenTime", | 671 UMA_HISTOGRAM_LONG_TIMES("Download.FirstOpenTime", |
691 (base::Time::Now() - end)); | 672 (base::Time::Now() - end)); |
692 } | 673 } |
693 } | 674 } |
694 } | 675 } |
695 | 676 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
736 size_t disk_write_time_ms = disk_write_time.InMilliseconds(); | 717 size_t disk_write_time_ms = disk_write_time.InMilliseconds(); |
737 if (0u == disk_write_time_ms) | 718 if (0u == disk_write_time_ms) |
738 disk_write_time_ms = 1; | 719 disk_write_time_ms = 1; |
739 | 720 |
740 UMA_HISTOGRAM_CUSTOM_COUNTS( | 721 UMA_HISTOGRAM_CUSTOM_COUNTS( |
741 "Download.BandwidthOverallBytesPerSecond", | 722 "Download.BandwidthOverallBytesPerSecond", |
742 (1000 * length / elapsed_time_ms), 1, 50000000, 50); | 723 (1000 * length / elapsed_time_ms), 1, 50000000, 50); |
743 UMA_HISTOGRAM_CUSTOM_COUNTS( | 724 UMA_HISTOGRAM_CUSTOM_COUNTS( |
744 "Download.BandwidthDiskBytesPerSecond", | 725 "Download.BandwidthDiskBytesPerSecond", |
745 (1000 * length / disk_write_time_ms), 1, 50000000, 50); | 726 (1000 * length / disk_write_time_ms), 1, 50000000, 50); |
746 UMA_HISTOGRAM_COUNTS_100("Download.DiskBandwidthUsedPercentage", | |
747 disk_write_time_ms * 100 / elapsed_time_ms); | |
748 } | 727 } |
749 | 728 |
750 void RecordDownloadFileRenameResultAfterRetry( | 729 void RecordDownloadFileRenameResultAfterRetry( |
751 base::TimeDelta time_since_first_failure, | 730 base::TimeDelta time_since_first_failure, |
752 DownloadInterruptReason interrupt_reason) { | 731 DownloadInterruptReason interrupt_reason) { |
753 if (interrupt_reason == DOWNLOAD_INTERRUPT_REASON_NONE) { | 732 if (interrupt_reason == DOWNLOAD_INTERRUPT_REASON_NONE) { |
754 UMA_HISTOGRAM_TIMES("Download.TimeToRenameSuccessAfterInitialFailure", | 733 UMA_HISTOGRAM_TIMES("Download.TimeToRenameSuccessAfterInitialFailure", |
755 time_since_first_failure); | 734 time_since_first_failure); |
756 } else { | 735 } else { |
757 UMA_HISTOGRAM_TIMES("Download.TimeToRenameFailureAfterInitialFailure", | 736 UMA_HISTOGRAM_TIMES("Download.TimeToRenameFailureAfterInitialFailure", |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 : DOWNLOAD_REDIRECT_INSECURE | 792 : DOWNLOAD_REDIRECT_INSECURE |
814 : is_redirect_chain_secure ? DOWNLOAD_TARGET_INSECURE | 793 : is_redirect_chain_secure ? DOWNLOAD_TARGET_INSECURE |
815 : DOWNLOAD_REDIRECT_TARGET_INSECURE; | 794 : DOWNLOAD_REDIRECT_TARGET_INSECURE; |
816 } | 795 } |
817 | 796 |
818 UMA_HISTOGRAM_ENUMERATION("Download.TargetConnectionSecurity", state, | 797 UMA_HISTOGRAM_ENUMERATION("Download.TargetConnectionSecurity", state, |
819 DOWNLOAD_CONNECTION_SECURITY_MAX); | 798 DOWNLOAD_CONNECTION_SECURITY_MAX); |
820 } | 799 } |
821 | 800 |
822 } // namespace content | 801 } // namespace content |
OLD | NEW |