// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_OFFLINE_PAGES_CORE_PREFETCH_OFFLINE_METRICS_COLLECTOR_H_
#define COMPONENTS_OFFLINE_PAGES_CORE_PREFETCH_OFFLINE_METRICS_COLLECTOR_H_

namespace offline_pages {

// Observes various events and collects the data in order to classify
// a day as 'offline', 'online' etc. Keeps the accumulated counters of each day
// type until it is a good moment to report it (most often on a connected day).
// The actual reporting is done by UMA.
class OfflineMetricsCollector {
 public:
  virtual ~OfflineMetricsCollector() = default;

  // OfflineUsage histogram support.

  // Chrome started up or was (as on Android) brought from background to
  // foreground. A day when this happened is a day the browser was used.
  virtual void OnAppStartupOrResume() = 0;

  // Successful online navigation committed. A day when this happens is counted
  // as 'connected' day.
  virtual void OnSuccessfulNavigationOnline() = 0;

  // Successful navigation to an offline page happened. A day when it happens is
  // at least a 'offline_content' day
  virtual void OnSuccessfulNavigationOffline() = 0;

  // PrefetchUsage histogram support.

  // Reports that combination of flags resulting in Prefetch activation is set.
  // A day when it happens is reported as 'prefetch enabled' day.
  virtual void OnPrefetchEnabled() = 0;

  // A page was successfully prefetched. A day when it happens is reported as
  // 'successful prefetch' day.
  virtual void OnSuccessfulPagePrefetch() = 0;

  // A prefetched page was opened. A day when it happened is reported as
  // 'prefetch page opened' day.
  virtual void OnPrefetchedPageOpened() = 0;

  // Uses UMA to report the accumulated classification for the days past.
  virtual void ReportAccumulatedStats() = 0;
};

}  // namespace offline_pages

#endif  // COMPONENTS_OFFLINE_PAGES_CORE_PREFETCH_OFFLINE_METRICS_COLLECTOR_H_
