Home | History | Annotate | Download | only in appcache
      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 #ifndef WEBKIT_BROWSER_APPCACHE_APPCACHE_HISTOGRAMS_H_
      6 #define WEBKIT_BROWSER_APPCACHE_APPCACHE_HISTOGRAMS_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "webkit/browser/appcache/appcache_update_job.h"
     10 
     11 namespace base {
     12 class TimeDelta;
     13 }
     14 
     15 namespace appcache {
     16 
     17 class AppCacheHistograms {
     18  public:
     19   enum InitResultType {
     20     INIT_OK, SQL_DATABASE_ERROR, DISK_CACHE_ERROR,
     21     NUM_INIT_RESULT_TYPES
     22   };
     23   static void CountInitResult(InitResultType init_result);
     24   static void CountReinitAttempt(bool repeated_attempt);
     25   static void CountCorruptionDetected();
     26   static void CountUpdateJobResult(AppCacheUpdateJob::ResultType result,
     27                                    const GURL& origin_url);
     28   enum CheckResponseResultType {
     29     RESPONSE_OK, MANIFEST_OUT_OF_DATE, RESPONSE_OUT_OF_DATE, ENTRY_NOT_FOUND,
     30     READ_HEADERS_ERROR, READ_DATA_ERROR, UNEXPECTED_DATA_SIZE, CHECK_CANCELED,
     31     NUM_CHECK_RESPONSE_RESULT_TYPES
     32   };
     33   static void CountCheckResponseResult(CheckResponseResultType result);
     34   static void CountResponseRetrieval(
     35       bool success, bool is_main_resource, const GURL& origin_url);
     36   static void LogUpdateFailureStats(
     37       const GURL& origin_url,
     38       int percent_complete,
     39       bool was_making_progress,
     40       bool off_origin_resource_failure);
     41   static void AddTaskQueueTimeSample(const base::TimeDelta& duration);
     42   static void AddTaskRunTimeSample(const base::TimeDelta& duration);
     43   static void AddCompletionQueueTimeSample(const base::TimeDelta& duration);
     44   static void AddCompletionRunTimeSample(const base::TimeDelta& duration);
     45   static void AddNetworkJobStartDelaySample(const base::TimeDelta& duration);
     46   static void AddErrorJobStartDelaySample(const base::TimeDelta& duration);
     47   static void AddAppCacheJobStartDelaySample(const base::TimeDelta& duration);
     48   static void AddMissingManifestEntrySample();
     49 
     50   enum MissingManifestCallsiteType {
     51     CALLSITE_0, CALLSITE_1, CALLSITE_2, CALLSITE_3,
     52     NUM_MISSING_MANIFEST_CALLSITE_TYPES
     53   };
     54   static void AddMissingManifestDetectedAtCallsite(
     55       MissingManifestCallsiteType type);
     56 
     57  private:
     58   DISALLOW_IMPLICIT_CONSTRUCTORS(AppCacheHistograms);
     59 };
     60 
     61 }  // namespace appcache
     62 
     63 #endif  // WEBKIT_BROWSER_APPCACHE_APPCACHE_HISTOGRAMS_H_
     64