diff options
Diffstat (limited to 'chrome/browser/importer/importer_uma.cc')
-rw-r--r-- | chrome/browser/importer/importer_uma.cc | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/chrome/browser/importer/importer_uma.cc b/chrome/browser/importer/importer_uma.cc new file mode 100644 index 0000000..4e62217 --- /dev/null +++ b/chrome/browser/importer/importer_uma.cc @@ -0,0 +1,70 @@ +// 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 "build/build_config.h" +#include "chrome/browser/importer/importer_uma.h" + +namespace importer { + +namespace { + +// The enum used to register importer use. +enum ImporterTypeMetrics { + IMPORTER_METRICS_UNKNOWN = 0, +#if defined(OS_WIN) + IMPORTER_METRICS_IE = 1, +#endif + IMPORTER_METRICS_FIREFOX2 = 2, // obsolete + IMPORTER_METRICS_FIREFOX3 = 3, +#if defined(OS_MACOSX) + IMPORTER_METRICS_SAFARI = 4, +#endif + IMPORTER_METRICS_GOOGLE_TOOLBAR5 = 5, // obsolete + IMPORTER_METRICS_BOOKMARKS_FILE = 6, + + // Insert new values here. Never remove any existing values, as this enum is + // used to bucket a UMA histogram, and removing values breaks that. + IMPORTER_METRICS_SIZE +}; + +} // namespace + +void LogImporterUseToMetrics(const std::string& metric_postfix, + ImporterType type) { + ImporterTypeMetrics metrics_type = IMPORTER_METRICS_UNKNOWN; + switch (type) { + case TYPE_UNKNOWN: + metrics_type = IMPORTER_METRICS_UNKNOWN; + break; +#if defined(OS_WIN) + case TYPE_IE: + metrics_type = IMPORTER_METRICS_IE; + break; +#endif + case TYPE_FIREFOX3: + metrics_type = IMPORTER_METRICS_FIREFOX3; + break; +#if defined(OS_MACOSX) + case TYPE_SAFARI: + metrics_type = IMPORTER_METRICS_SAFARI; + break; +#endif + case TYPE_BOOKMARKS_FILE: + metrics_type = IMPORTER_METRICS_BOOKMARKS_FILE; + break; + } + + // Note: This leaks memory, which is the expected behavior as the factory + // creates and owns the histogram. + base::HistogramBase* histogram = + base::LinearHistogram::FactoryGet( + "Import.ImporterType." + metric_postfix, + 1, + IMPORTER_METRICS_SIZE, + IMPORTER_METRICS_SIZE + 1, + base::HistogramBase::kUmaTargetedHistogramFlag); + histogram->Add(metrics_type); +} + +} // namespace importer |