// Copyright 2011 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_SPELLCHECK_BROWSER_SPELLCHECK_HOST_METRICS_H_ #define COMPONENTS_SPELLCHECK_BROWSER_SPELLCHECK_HOST_METRICS_H_ #include <stddef.h> #include <string> #include <unordered_set> #include "base/time/time.h" #include "base/timer/timer.h" #include "build/build_config.h" #if BUILDFLAG(IS_WIN) // Simple struct to keep track of how many languages are supported by which // spell checker. struct LocalesSupportInfo { size_t locales_supported_by_hunspell_and_native; size_t locales_supported_by_hunspell_only; size_t locales_supported_by_native_only; size_t unsupported_locales; }; #endif // BUILDFLAG(IS_WIN) // A helper object for recording spell-check related histograms. // This class encapsulates histogram names and metrics API. // This also carries a set of counters for collecting histograms // and a timer for making a periodical summary. // // We expect a user of SpellCheckHost class to instantiate this object, // and pass the metrics object to SpellCheckHost's factory method. // // metrics.reset(new SpellCheckHostMetrics()); // spell_check_host = SpellChecHost::Create(...., metrics.get()); // // The lifetime of the object should be managed by a caller, // and the lifetime should be longer than SpellCheckHost instance // because SpellCheckHost will use the object. class SpellCheckHostMetrics { … }; #endif // COMPONENTS_SPELLCHECK_BROWSER_SPELLCHECK_HOST_METRICS_H_