// Copyright 2013 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.

#include "chrome/browser/download/download_stats.h"

#include "base/metrics/histogram.h"

void RecordDownloadShelfClose(int size, int in_progress, bool autoclose) {
  static const int kMaxShelfSize = 16;
  if (autoclose) {
    UMA_HISTOGRAM_ENUMERATION(
        "Download.ShelfSizeOnAutoClose", size, kMaxShelfSize);
    UMA_HISTOGRAM_ENUMERATION(
        "Download.ShelfInProgressSizeOnAutoClose", in_progress, kMaxShelfSize);
  } else {
    UMA_HISTOGRAM_ENUMERATION(
        "Download.ShelfSizeOnUserClose", size, kMaxShelfSize);
    UMA_HISTOGRAM_ENUMERATION(
        "Download.ShelfInProgressSizeOnUserClose", in_progress, kMaxShelfSize);
  }
}

void RecordDownloadCount(ChromeDownloadCountTypes type) {
  UMA_HISTOGRAM_ENUMERATION(
      "Download.CountsChrome", type, CHROME_DOWNLOAD_COUNT_TYPES_LAST_ENTRY);
}

void RecordDownloadSource(ChromeDownloadSource source) {
  UMA_HISTOGRAM_ENUMERATION(
      "Download.SourcesChrome", source, CHROME_DOWNLOAD_SOURCE_LAST_ENTRY);
}

void RecordDangerousDownloadWarningShown(
    content::DownloadDangerType danger_type) {
  UMA_HISTOGRAM_ENUMERATION("Download.DownloadWarningShown",
                            danger_type,
                            content::DOWNLOAD_DANGER_TYPE_MAX);
}

void RecordOpenedDangerousConfirmDialog(
    content::DownloadDangerType danger_type) {
  UMA_HISTOGRAM_ENUMERATION("Download.ShowDangerousDownloadConfirmationPrompt",
                            danger_type,
                            content::DOWNLOAD_DANGER_TYPE_MAX);
}

void RecordDownloadOpenMethod(ChromeDownloadOpenMethod open_method) {
  UMA_HISTOGRAM_ENUMERATION("Download.OpenMethod",
                            open_method,
                            DOWNLOAD_OPEN_METHOD_LAST_ENTRY);
}