1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
// Copyright 2013 The Chromium Authors
// 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 BUILDFLAG(IS_WIN)
IMPORTER_METRICS_IE = 1,
#endif
IMPORTER_METRICS_FIREFOX2 = 2, // obsolete
IMPORTER_METRICS_FIREFOX3 = 3,
#if BUILDFLAG(IS_MAC)
IMPORTER_METRICS_SAFARI = 4,
#endif
IMPORTER_METRICS_GOOGLE_TOOLBAR5 = 5, // obsolete
IMPORTER_METRICS_BOOKMARKS_FILE = 6,
#if BUILDFLAG(IS_WIN)
IMPORTER_METRICS_EDGE = 7,
#endif
// 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,
user_data_importer::ImporterType type) {
ImporterTypeMetrics metrics_type = IMPORTER_METRICS_UNKNOWN;
switch (type) {
case user_data_importer::TYPE_UNKNOWN:
metrics_type = IMPORTER_METRICS_UNKNOWN;
break;
#if BUILDFLAG(IS_WIN)
case user_data_importer::TYPE_IE:
metrics_type = IMPORTER_METRICS_IE;
break;
case user_data_importer::TYPE_EDGE:
metrics_type = IMPORTER_METRICS_EDGE;
break;
#endif
case user_data_importer::TYPE_FIREFOX:
metrics_type = IMPORTER_METRICS_FIREFOX3;
break;
#if BUILDFLAG(IS_MAC)
case user_data_importer::TYPE_SAFARI:
metrics_type = IMPORTER_METRICS_SAFARI;
break;
#endif
case user_data_importer::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
|