blob: f3860564d009f69ab7d3d647312fec5e732cb5aa [file] [log] [blame]
// Copyright 2020 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.
/**
* @fileoverview
* Handles metrics for ChromeOS's languages settings in the browser.
* TODO(crbug/1109431): Remove these metrics when languages settings migration
* is completed and data analysed.
*/
import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
/**
* Keeps in sync with SettingsLanguagesPageBrowserInteraction
* in tools/metrics/histograms/enums.xml.
* @enum {number}
*/
export const LanguagesPageInteraction = {
SWITCH_SYSTEM_LANGUAGE: 0,
RESTART: 1,
OPEN_CUSTOM_SPELL_CHECK: 2,
};
/** @interface */
export class LanguagesMetricsProxy {
/**
* Records the interaction to enumerated histogram.
* @param {!LanguagesPageInteraction} interaction
*/
recordInteraction(interaction) {}
/* Records when users select "Add languages". */
recordAddLanguages() {}
/**
* Records when users toggle "Spell check" option.
* @param {boolean} value
*/
recordToggleSpellCheck(value) {}
/**
* Records when users toggle "Offer to translate languages you don't read"
* option.
* @param {boolean} value
*/
recordToggleTranslate(value) {}
/**
* Records when users check/uncheck "Offer to translate pages in this
* language" checkbox.
* @param {boolean} value
*/
recordTranslateCheckboxChanged(value) {}
}
/** @implements {LanguagesMetricsProxy} */
export class LanguagesMetricsProxyImpl {
/** @override */
recordInteraction(interaction) {
chrome.metricsPrivate.recordEnumerationValue(
'ChromeOS.Settings.Languages.Browser.Interaction', interaction,
Object.keys(LanguagesPageInteraction).length);
}
/** @override */
recordAddLanguages() {
chrome.metricsPrivate.recordUserAction(
'ChromeOS.Settings.Languages.Browser.AddLanguages');
}
/** @override */
recordToggleSpellCheck(value) {
chrome.metricsPrivate.recordBoolean(
'ChromeOS.Settings.Languages.Browser.Toggle.SpellCheck', value);
}
/** @override */
recordToggleTranslate(value) {
chrome.metricsPrivate.recordBoolean(
'ChromeOS.Settings.Languages.Browser.Toggle.Translate', value);
}
/** @override */
recordTranslateCheckboxChanged(value) {
chrome.metricsPrivate.recordBoolean(
'ChromeOS.Settings.Languages.Browser.OfferToTranslateCheckbox', value);
}
}
addSingletonGetter(LanguagesMetricsProxyImpl);