// 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_FIREFOX: 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