From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../passwordmgr/LoginManagerTelemetry.sys.mjs | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 toolkit/components/passwordmgr/LoginManagerTelemetry.sys.mjs (limited to 'toolkit/components/passwordmgr/LoginManagerTelemetry.sys.mjs') diff --git a/toolkit/components/passwordmgr/LoginManagerTelemetry.sys.mjs b/toolkit/components/passwordmgr/LoginManagerTelemetry.sys.mjs new file mode 100644 index 0000000000..ad2e7d80d3 --- /dev/null +++ b/toolkit/components/passwordmgr/LoginManagerTelemetry.sys.mjs @@ -0,0 +1,54 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Provides the logic for recording all password manager related telemetry data. + */ +export class LoginManagerTelemetry { + static recordAutofillResult(result) { + Glean.pwmgr.formAutofillResult[result].add(1); + LoginManagerLegacyTelemetry.recordAutofillResult(result); + } +} + +/** + * Until the password manager related measurements are fully migrated to Glean, + * we need to collect the data in both systems (Legacy Telemetry and Glean) for now. + * Not all new Glean metric can be mirrored automatically (using the property telemetry_mirror in metrics.yaml). + * Therefore, we need to manually call the Legacy Telemetry API calls in this class. + * Once we have collected enough data for all probes in the Glean system, we can remove this class and its references. + */ +class LoginManagerLegacyTelemetry { + static HISTOGRAM_AUTOFILL_RESULT = "PWMGR_FORM_AUTOFILL_RESULT"; + static AUTOFILL_RESULT = { + filled: 0, + no_password_field: 1, + password_disabled_readonly: 2, + no_logins_fit: 3, + no_saved_logins: 4, + existing_password: 5, + existing_username: 6, + multiple_logins: 7, + no_autofill_forms: 8, + autocomplete_off: 9, + insecure: 10, + password_autocomplete_new_password: 11, + type_no_longer_password: 12, + form_in_crossorigin_subframe: 13, + filled_username_only_form: 14, + }; + + static convertToAutofillResultNumber(result) { + return LoginManagerLegacyTelemetry.AUTOFILL_RESULT[result]; + } + + static recordAutofillResult(result) { + const autofillResultNumber = + LoginManagerLegacyTelemetry.convertToAutofillResultNumber(result); + Services.telemetry + .getHistogramById(LoginManagerLegacyTelemetry.HISTOGRAM_AUTOFILL_RESULT) + .add(autofillResultNumber); + } +} +export default LoginManagerTelemetry; -- cgit v1.2.3