Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / webkit / browser / appcache / appcache_histograms.cc
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
3 // found in the LICENSE file.
4
5 #include "webkit/browser/appcache/appcache_histograms.h"
6
7 #include "base/metrics/histogram.h"
8
9 namespace appcache {
10
11 static std::string OriginToCustomHistogramSuffix(const GURL& origin_url) {
12   if (origin_url.host() == "docs.google.com")
13     return ".Docs";
14   return std::string();
15 }
16
17 void AppCacheHistograms::CountInitResult(InitResultType init_result) {
18   UMA_HISTOGRAM_ENUMERATION(
19        "appcache.InitResult",
20        init_result, NUM_INIT_RESULT_TYPES);
21 }
22
23 void AppCacheHistograms::CountReinitAttempt(bool repeated_attempt) {
24   UMA_HISTOGRAM_BOOLEAN("appcache.ReinitAttempt", repeated_attempt);
25 }
26
27 void AppCacheHistograms::CountCorruptionDetected() {
28   UMA_HISTOGRAM_BOOLEAN("appcache.CorruptionDetected", true);
29 }
30
31 void AppCacheHistograms::CountUpdateJobResult(
32     AppCacheUpdateJob::ResultType result,
33     const GURL& origin_url) {
34   UMA_HISTOGRAM_ENUMERATION(
35        "appcache.UpdateJobResult",
36        result, AppCacheUpdateJob::NUM_UPDATE_JOB_RESULT_TYPES);
37
38   const std::string suffix = OriginToCustomHistogramSuffix(origin_url);
39   if (!suffix.empty()) {
40     base::LinearHistogram::FactoryGet(
41         "appcache.UpdateJobResult" + suffix,
42         1,
43         AppCacheUpdateJob::NUM_UPDATE_JOB_RESULT_TYPES,
44         AppCacheUpdateJob::NUM_UPDATE_JOB_RESULT_TYPES + 1,
45         base::HistogramBase::kUmaTargetedHistogramFlag)->Add(result);
46   }
47 }
48
49 void AppCacheHistograms::CountCheckResponseResult(
50     CheckResponseResultType result) {
51   UMA_HISTOGRAM_ENUMERATION(
52        "appcache.CheckResponseResult",
53        result, NUM_CHECK_RESPONSE_RESULT_TYPES);
54 }
55
56 void AppCacheHistograms::AddTaskQueueTimeSample(
57     const base::TimeDelta& duration) {
58   UMA_HISTOGRAM_TIMES("appcache.TaskQueueTime", duration);
59 }
60
61 void AppCacheHistograms::AddTaskRunTimeSample(
62     const base::TimeDelta& duration) {
63   UMA_HISTOGRAM_TIMES("appcache.TaskRunTime", duration);
64 }
65
66 void AppCacheHistograms::AddCompletionQueueTimeSample(
67     const base::TimeDelta& duration) {
68   UMA_HISTOGRAM_TIMES("appcache.CompletionQueueTime", duration);
69 }
70
71 void AppCacheHistograms::AddCompletionRunTimeSample(
72     const base::TimeDelta& duration) {
73   UMA_HISTOGRAM_TIMES("appcache.CompletionRunTime", duration);
74 }
75
76 void AppCacheHistograms::AddNetworkJobStartDelaySample(
77     const base::TimeDelta& duration) {
78   UMA_HISTOGRAM_TIMES("appcache.JobStartDelay.Network", duration);
79 }
80
81 void AppCacheHistograms::AddErrorJobStartDelaySample(
82     const base::TimeDelta& duration) {
83   UMA_HISTOGRAM_TIMES("appcache.JobStartDelay.Error", duration);
84 }
85
86 void AppCacheHistograms::AddAppCacheJobStartDelaySample(
87     const base::TimeDelta& duration) {
88   UMA_HISTOGRAM_TIMES("appcache.JobStartDelay.AppCache", duration);
89 }
90
91 void AppCacheHistograms::AddMissingManifestEntrySample() {
92   UMA_HISTOGRAM_BOOLEAN("appcache.MissingManifestEntry", true);
93 }
94
95 void AppCacheHistograms::AddMissingManifestDetectedAtCallsite(
96     MissingManifestCallsiteType callsite) {
97   UMA_HISTOGRAM_ENUMERATION(
98        "appcache.MissingManifestDetectedAtCallsite",
99        callsite, NUM_MISSING_MANIFEST_CALLSITE_TYPES);
100 }
101
102 }  // namespace appcache