chromium/components/spellcheck/renderer/spellcheck_renderer_metrics.h

// Copyright 2019 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_RENDERER_SPELLCHECK_RENDERER_METRICS_H_
#define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_RENDERER_METRICS_H_

#include "base/time/time.h"
#include "build/build_config.h"
#include "components/spellcheck/spellcheck_buildflags.h"

// A namespace for recording spell-check related histograms.
// This namespace encapsulates histogram names and metrics API for the renderer
// side of the spell checker.
namespace spellcheck_renderer_metrics {

// The length of text checked via async checking.
void RecordAsyncCheckedTextLength(int length);

// The length of text checked by spellCheck. No replacement suggestions were
// requested.
void RecordCheckedTextLengthNoSuggestions(int length);

// The length of text checked by spellCheck. Replacement suggestions were
// requested.
void RecordCheckedTextLengthWithSuggestions(int length);

#if BUILDFLAG(IS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)
// Records the duration of gathering spelling suggestions. This variation is for
// when spell check is performed only by Hunspell.
void RecordHunspellSuggestionDuration(base::TimeDelta duration);

// Records the duration of gathering spelling suggestions. This variation is for
// when spell check is performed by both Hunspell and the OS spell checker.
void RecordHybridSuggestionDuration(base::TimeDelta duration);

// Records the total time it took to complete an end-to-end spell check.
// If at least one locale was checked by Hunspell, |used_hunspell| should be set
// to |true|. If at least one locale was checked by the Windows native spell
// checker, |used_native| should be set to |true|.
void RecordSpellcheckDuration(base::TimeDelta duration,
                              bool used_hunspell,
                              bool used_native);
#endif  // BUILDFLAG(IS_WIN) && BUILDFLAG(USE_BROWSER_SPELLCHECKER)

}  // namespace spellcheck_renderer_metrics

#endif  // COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_RENDERER_METRICS_H_