#ifndef COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_RENDERER_METRICS_H_
#define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_RENDERER_METRICS_H_
#include "components/spellcheck/renderer/spellcheck_renderer_metrics.h"
#include "base/metrics/histogram_macros.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "components/spellcheck/spellcheck_buildflags.h"
#if BUILDFLAG(IS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)
namespace {
void RecordHunspellSpellcheckDuration(base::TimeDelta duration) {
UMA_HISTOGRAM_TIMES(
"Spellcheck.Windows.SpellcheckRequestDuration.HunspellOnly", duration);
}
void RecordHybridSpellcheckDuration(base::TimeDelta duration) {
UMA_HISTOGRAM_TIMES("Spellcheck.Windows.SpellcheckRequestDuration.Hybrid",
duration);
}
void RecordNativeSpellcheckDuration(base::TimeDelta duration) {
UMA_HISTOGRAM_TIMES("Spellcheck.Windows.SpellcheckRequestDuration.NativeOnly",
duration);
}
}
#endif
namespace spellcheck_renderer_metrics {
void RecordAsyncCheckedTextLength(int length) { … }
void RecordCheckedTextLengthNoSuggestions(int length) { … }
void RecordCheckedTextLengthWithSuggestions(int length) { … }
#if BUILDFLAG(IS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)
void RecordHunspellSuggestionDuration(base::TimeDelta duration) {
UMA_HISTOGRAM_TIMES(
"Spellcheck.Windows.SuggestionGatheringDuration.HunspellOnly", duration);
}
void RecordHybridSuggestionDuration(base::TimeDelta duration) {
UMA_HISTOGRAM_TIMES("Spellcheck.Windows.SuggestionGatheringDuration.Hybrid",
duration);
}
void RecordSpellcheckDuration(base::TimeDelta duration,
bool used_hunspell,
bool used_native) {
if (used_hunspell && !used_native) {
RecordHunspellSpellcheckDuration(duration);
} else if (used_hunspell && used_native) {
RecordHybridSpellcheckDuration(duration);
} else if (!used_hunspell && used_native) {
RecordNativeSpellcheckDuration(duration);
}
}
#endif
}
#endif