From 5095328e2df75a63a02b2bc7fee0dcacc4f99253 Mon Sep 17 00:00:00 2001 From: Sandor Molnar Date: Wed, 25 Sep 2024 12:38:05 +0300 Subject: [PATCH] Backed out 5 changesets (bug 1918702) for causing bc failures @ browser_aaa_eventTelemetry_run_first.js CLOSED TREE Backed out changeset f55480885aeb (bug 1918702) Backed out changeset db1eaf09430d (bug 1918702) Backed out changeset a9179f6e684d (bug 1918702) Backed out changeset f9d3349e6fe3 (bug 1918702) Backed out changeset 10d2957bbfe8 (bug 1918702) --- browser/actors/AboutProtectionsParent.sys.mjs | 2 +- browser/base/content/nsContextMenu.sys.mjs | 2 +- browser/base/content/pageinfo/security.js | 2 +- .../aboutlogins/AboutLoginsChild.sys.mjs | 27 +- .../aboutlogins/AboutLoginsParent.sys.mjs | 19 +- .../aboutlogins/content/aboutLogins.mjs | 6 +- .../content/components/login-filter.mjs | 2 +- .../content/components/login-item.mjs | 34 +- .../content/components/login-list.mjs | 11 +- .../CustomizableWidgets.sys.mjs | 2 +- .../customizableui/content/panelUI.js | 2 +- browser/components/preferences/privacy.js | 2 +- toolkit/actors/AutoCompleteParent.sys.mjs | 14 +- .../passwordmgr/LoginAutoComplete.sys.mjs | 2 +- .../passwordmgr/LoginHelper.sys.mjs | 13 +- .../passwordmgr/LoginManager.sys.mjs | 10 +- .../LoginManagerAuthPrompter.sys.mjs | 4 +- .../passwordmgr/LoginManagerParent.sys.mjs | 20 +- .../passwordmgr/LoginManagerPrompter.sys.mjs | 40 +- toolkit/components/passwordmgr/metrics.yaml | 751 ------------------ .../datasources/LoginDataSource.sys.mjs | 13 +- 21 files changed, 142 insertions(+), 836 deletions(-) diff --git a/browser/actors/AboutProtectionsParent.sys.mjs b/browser/actors/AboutProtectionsParent.sys.mjs index d5ab09cf5cd5..1c647561ec8e 100644 --- a/browser/actors/AboutProtectionsParent.sys.mjs +++ b/browser/actors/AboutProtectionsParent.sys.mjs @@ -356,7 +356,7 @@ export class AboutProtectionsParent extends JSWindowActorParent { switch (aMessage.name) { case "OpenAboutLogins": lazy.LoginHelper.openPasswordManager(win, { - entryPoint: "Aboutprotections", + entryPoint: "aboutprotections", }); break; case "OpenContentBlockingPreferences": diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs index 7f3dc585937c..60459305e046 100644 --- a/browser/base/content/nsContextMenu.sys.mjs +++ b/browser/base/content/nsContextMenu.sys.mjs @@ -1399,7 +1399,7 @@ export class nsContextMenu { openPasswordManager() { lazy.LoginHelper.openPasswordManager(this.window, { - entryPoint: "Contextmenu", + entryPoint: "contextmenu", }); } diff --git a/browser/base/content/pageinfo/security.js b/browser/base/content/pageinfo/security.js index 080a390fcd1b..5adc73f13eb5 100644 --- a/browser/base/content/pageinfo/security.js +++ b/browser/base/content/pageinfo/security.js @@ -225,7 +225,7 @@ var security = { viewPasswords() { LoginHelper.openPasswordManager(window, { filterString: this.windowInfo.hostName, - entryPoint: "Pageinfo", + entryPoint: "pageinfo", }); }, }; diff --git a/browser/components/aboutlogins/AboutLoginsChild.sys.mjs b/browser/components/aboutlogins/AboutLoginsChild.sys.mjs index 5e395987e194..71b5927d860e 100644 --- a/browser/components/aboutlogins/AboutLoginsChild.sys.mjs +++ b/browser/components/aboutlogins/AboutLoginsChild.sys.mjs @@ -15,6 +15,7 @@ XPCOMUtils.defineLazyServiceGetter( "nsIClipboardHelper" ); +const TELEMETRY_EVENT_CATEGORY = "pwmgr"; const TELEMETRY_MIN_MS_BETWEEN_OPEN_MANAGEMENT = 5000; let gLastOpenManagementBrowserId = null; @@ -23,11 +24,14 @@ let gPrimaryPasswordPromise; function recordTelemetryEvent(event) { try { - let { name, extra = {}, value = null } = event; - if (value) { - extra.value = value; - } - Glean.pwmgr[name].record(extra); + let { method, object, extra = {}, value = null } = event; + Services.telemetry.recordEvent( + TELEMETRY_EVENT_CATEGORY, + method, + object, + value, + extra + ); } catch (ex) { console.error("AboutLoginsChild: error recording telemetry event:", ex); } @@ -182,26 +186,31 @@ export class AboutLoginsChild extends JSWindowActorChild { #aboutLoginsImportFromBrowser() { this.sendAsyncMessage("AboutLogins:ImportFromBrowser"); recordTelemetryEvent({ - name: "mgmtMenuItemUsedImportFromBrowser", + object: "import_from_browser", + method: "mgmt_menu_item_used", }); } #aboutLoginsImportFromFile() { this.sendAsyncMessage("AboutLogins:ImportFromFile"); recordTelemetryEvent({ - name: "mgmtMenuItemUsedImportFromCsv", + object: "import_from_csv", + method: "mgmt_menu_item_used", }); } #aboutLoginsOpenPreferences() { this.sendAsyncMessage("AboutLogins:OpenPreferences"); recordTelemetryEvent({ - name: "mgmtMenuItemUsedPreferences", + object: "preferences", + method: "mgmt_menu_item_used", }); } #aboutLoginsRecordTelemetryEvent(event) { - if (event.detail.name.startsWith("openManagement")) { + let { method } = event.detail; + + if (method == "open_management") { let { docShell } = this.browsingContext; // Compare to the last time open_management was recorded for the same // outerWindowID to not double-count them due to a redirect to remove diff --git a/browser/components/aboutlogins/AboutLoginsParent.sys.mjs b/browser/components/aboutlogins/AboutLoginsParent.sys.mjs index 91967e381ebb..4ef51bec3e35 100644 --- a/browser/components/aboutlogins/AboutLoginsParent.sys.mjs +++ b/browser/components/aboutlogins/AboutLoginsParent.sys.mjs @@ -402,11 +402,8 @@ export class AboutLoginsParent extends JSWindowActorParent { captionText.value ); - let { name, extra = {}, value = null } = telemetryEvent; - if (value) { - extra.value = value; - } - Glean.pwmgr[name].record(extra); + let { method, object, extra = {}, value = null } = telemetryEvent; + Services.telemetry.recordEvent("pwmgr", method, object, value, extra); if (!isAuthorized) { return; @@ -416,7 +413,11 @@ export class AboutLoginsParent extends JSWindowActorParent { function fpCallback(aResult) { if (aResult != Ci.nsIFilePicker.returnCancel) { lazy.LoginExport.exportAsCSV(fp.file.path); - Glean.pwmgr.mgmtMenuItemUsedExportComplete.record(); + Services.telemetry.recordEvent( + "pwmgr", + "mgmt_menu_item_used", + "export_complete" + ); } } let [title, defaultFilename, okButtonLabel, csvFilterTitle] = @@ -488,7 +489,11 @@ export class AboutLoginsParent extends JSWindowActorParent { } if (summary) { this.sendAsyncMessage("AboutLogins:ImportPasswordsDialog", summary); - Glean.pwmgr.mgmtMenuItemUsedImportCsvComplete.record(); + Services.telemetry.recordEvent( + "pwmgr", + "mgmt_menu_item_used", + "import_csv_complete" + ); } } } diff --git a/browser/components/aboutlogins/content/aboutLogins.mjs b/browser/components/aboutlogins/content/aboutLogins.mjs index 6287850ee25a..2764f36f4ee6 100644 --- a/browser/components/aboutlogins/content/aboutLogins.mjs +++ b/browser/components/aboutlogins/content/aboutLogins.mjs @@ -198,7 +198,8 @@ window.addEventListener("AboutLoginsRemoveAllLoginsDialog", () => { window.addEventListener("AboutLoginsExportPasswordsDialog", async () => { recordTelemetryEvent({ - name: "mgmtMenuItemUsedExport", + object: "export", + method: "mgmt_menu_item_used", }); let dialog = document.querySelector("confirmation-dialog"); let options = { @@ -244,7 +245,8 @@ let searchParamsChanged = false; let { protocol, pathname, searchParams } = new URL(document.location); recordTelemetryEvent({ - name: "openManagement" + (searchParams.get("entryPoint") || "Direct"), + method: "open_management", + object: searchParams.get("entryPoint") || "direct", }); if (searchParams.has("entryPoint")) { diff --git a/browser/components/aboutlogins/content/components/login-filter.mjs b/browser/components/aboutlogins/content/components/login-filter.mjs index 157dbe1d6506..e5b89327d6a3 100644 --- a/browser/components/aboutlogins/content/components/login-filter.mjs +++ b/browser/components/aboutlogins/content/components/login-filter.mjs @@ -93,7 +93,7 @@ export default class LoginFilter extends HTMLElement { }) ); - recordTelemetryEvent({ name: "filterList" }); + recordTelemetryEvent({ object: "list", method: "filter" }); } } customElements.define("login-filter", LoginFilter); diff --git a/browser/components/aboutlogins/content/components/login-item.mjs b/browser/components/aboutlogins/content/components/login-item.mjs index 0492d1525b45..1c5358c71433 100644 --- a/browser/components/aboutlogins/content/components/login-item.mjs +++ b/browser/components/aboutlogins/content/components/login-item.mjs @@ -434,7 +434,7 @@ export default class LoginItem extends HTMLElement { this._updatePasswordRevealState(); let method = this._revealCheckbox.checked ? "show" : "hide"; - this._recordTelemetryEvent({ name: method + "Password" }); + this._recordTelemetryEvent({ object: "password", method }); } async handleCancelEvent(_e) { @@ -450,7 +450,8 @@ export default class LoginItem extends HTMLElement { } else if (!this.hasPendingChanges()) { window.dispatchEvent(new CustomEvent("AboutLoginsClearSelection")); this._recordTelemetryEvent({ - name: "cancelNewLogin", + object: "new_login", + method: "cancel", }); this.setLogin(this._login, { skipFocusChange: true }); @@ -500,7 +501,8 @@ export default class LoginItem extends HTMLElement { }, LoginItem.COPY_BUTTON_RESET_TIMEOUT); this._copyPasswordTimeoutId = timeoutId; this._recordTelemetryEvent({ - name: "copyPassword", + object: "password", + method: "copy", }); } @@ -531,7 +533,8 @@ export default class LoginItem extends HTMLElement { }, LoginItem.COPY_BUTTON_RESET_TIMEOUT); this._copyUsernameTimeoutId = timeoutId; this._recordTelemetryEvent({ - name: "copyUsername", + object: "username", + method: "copy", }); } @@ -558,14 +561,16 @@ export default class LoginItem extends HTMLElement { this.render(); this._recordTelemetryEvent({ - name: "editExistingLogin", + object: "existing_login", + method: "edit", }); } async handleAlertLearnMoreClick({ currentTarget }) { if (currentTarget.closest(".vulnerable-alert")) { this._recordTelemetryEvent({ - name: "learnMoreVulnExistingLogin", + object: "existing_login", + method: "learn_more_vuln", }); } } @@ -608,7 +613,8 @@ export default class LoginItem extends HTMLElement { ); this._recordTelemetryEvent({ - name: "saveExistingLogin", + object: "existing_login", + method: "save", }); this._toggleEditing(false); this.render(); @@ -620,7 +626,7 @@ export default class LoginItem extends HTMLElement { }) ); - this._recordTelemetryEvent({ name: "saveNewLogin" }); + this._recordTelemetryEvent({ object: "new_login", method: "save" }); } } @@ -655,7 +661,7 @@ export default class LoginItem extends HTMLElement { } this._updatePasswordRevealState(); let method = this._revealCheckbox.checked ? "show" : "hide"; - this._recordTelemetryEvent({ name: method + "Password" }); + this._recordTelemetryEvent({ object: "password", method }); } /** @@ -719,7 +725,8 @@ export default class LoginItem extends HTMLElement { onConfirm(); } catch (ex) {} this._recordTelemetryEvent({ - name: method + (wasExistingLogin ? "ExistingLogin" : "NewLogin"), + object: wasExistingLogin ? "existing_login" : "new_login", + method, }); }, () => {} @@ -862,7 +869,8 @@ export default class LoginItem extends HTMLElement { _handleOriginClick() { this._recordTelemetryEvent({ - name: "openSiteExistingLogin", + object: "existing_login", + method: "open_site", }); } @@ -905,13 +913,13 @@ export default class LoginItem extends HTMLElement { // following conditionals must reflect this priority. const extra = eventObject.hasOwnProperty("extra") ? eventObject.extra : {}; if (this._breachesMap && this._breachesMap.has(this._login.guid)) { - Object.assign(extra, { breached: true }); + Object.assign(extra, { breached: "true" }); eventObject.extra = extra; } else if ( this._vulnerableLoginsMap && this._vulnerableLoginsMap.has(this._login.guid) ) { - Object.assign(extra, { vulnerable: true }); + Object.assign(extra, { vulnerable: "true" }); eventObject.extra = extra; } recordTelemetryEvent(eventObject); diff --git a/browser/components/aboutlogins/content/components/login-list.mjs b/browser/components/aboutlogins/content/components/login-list.mjs index 6cb5093bd19c..80afdbb58d0b 100644 --- a/browser/components/aboutlogins/content/components/login-list.mjs +++ b/browser/components/aboutlogins/content/components/login-list.mjs @@ -299,7 +299,7 @@ export default class LoginList extends HTMLElement { cancelable: true, }) ); - recordTelemetryEvent({ name: "newNewLogin" }); + recordTelemetryEvent({ object: "new_login", method: "new" }); } handleEvent(event) { @@ -329,12 +329,13 @@ export default class LoginList extends HTMLElement { let extra = {}; if (listItem.notificationIcon === "breached") { - extra = { breached: true }; + extra = { breached: "true" }; } else if (listItem.notificationIcon === "vulnerable") { - extra = { vulnerable: true }; + extra = { vulnerable: "true" }; } recordTelemetryEvent({ - name: "selectExistingLogin", + object: "existing_login", + method: "select", extra, }); break; @@ -343,7 +344,7 @@ export default class LoginList extends HTMLElement { this._applyHeaders(); this._applySortAndScrollToTop(); const extra = { sort_key: this._sortSelect.value }; - recordTelemetryEvent({ name: "sortList", extra }); + recordTelemetryEvent({ object: "list", method: "sort", extra }); document.dispatchEvent( new CustomEvent("AboutLoginsSortChanged", { bubbles: true, diff --git a/browser/components/customizableui/CustomizableWidgets.sys.mjs b/browser/components/customizableui/CustomizableWidgets.sys.mjs index a63f5bf52cca..5d4b0e930cd9 100644 --- a/browser/components/customizableui/CustomizableWidgets.sys.mjs +++ b/browser/components/customizableui/CustomizableWidgets.sys.mjs @@ -470,7 +470,7 @@ export const CustomizableWidgets = [ l10nId: "toolbar-button-logins", onCommand(aEvent) { let window = aEvent.view; - lazy.LoginHelper.openPasswordManager(window, { entryPoint: "Toolbar" }); + lazy.LoginHelper.openPasswordManager(window, { entryPoint: "toolbar" }); }, }, ]; diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js index 4ec858129dfc..e60545282550 100644 --- a/browser/components/customizableui/content/panelUI.js +++ b/browser/components/customizableui/content/panelUI.js @@ -338,7 +338,7 @@ const PanelUI = { this.showSubView("PanelUI-history", target); break; case "appMenu-passwords-button": - LoginHelper.openPasswordManager(window, { entryPoint: "Mainmenu" }); + LoginHelper.openPasswordManager(window, { entryPoint: "mainmenu" }); break; case "appMenu-fullscreen-button2": // Note that we're custom-handling the hiding of the panel to make diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js index bb821b7ad434..324aee3b7e43 100644 --- a/browser/components/preferences/privacy.js +++ b/browser/components/preferences/privacy.js @@ -3140,7 +3140,7 @@ var gPrivacyPane = { showPasswords() { let loginManager = window.windowGlobalChild.getActor("LoginManager"); loginManager.sendAsyncMessage("PasswordManager:OpenPreferences", { - entryPoint: "Preferences", + entryPoint: "preferences", }); }, diff --git a/toolkit/actors/AutoCompleteParent.sys.mjs b/toolkit/actors/AutoCompleteParent.sys.mjs index 43c437769662..bd52e0e07894 100644 --- a/toolkit/actors/AutoCompleteParent.sys.mjs +++ b/toolkit/actors/AutoCompleteParent.sys.mjs @@ -331,9 +331,7 @@ export class AutoCompleteParent extends JSWindowActorParent { return accumulated; }, rawExtraData); - // Even though Glean events do not require converting extra values to - // strings, keep doing it so booleans keep being encoded as they were for - // Telemetry recordEvent. + // Convert extra values to strings since recordEvent requires that. let extraStrings = Object.fromEntries( Object.entries(rawExtraData).map(([key, val]) => { let stringVal = ""; @@ -346,8 +344,14 @@ export class AutoCompleteParent extends JSWindowActorParent { }) ); - extraStrings.value = duration; - Glean.formAutocomplete.showLogins.record(extraStrings); + Services.telemetry.recordEvent( + "form_autocomplete", + "show", + "logins", + // Convert to a string + duration + "", + extraStrings + ); } invalidate(results) { diff --git a/toolkit/components/passwordmgr/LoginAutoComplete.sys.mjs b/toolkit/components/passwordmgr/LoginAutoComplete.sys.mjs index 7c2c307585ac..4ca96d11fae9 100644 --- a/toolkit/components/passwordmgr/LoginAutoComplete.sys.mjs +++ b/toolkit/components/passwordmgr/LoginAutoComplete.sys.mjs @@ -238,7 +238,7 @@ class LoginsFooterAutocompleteItem extends AutocompleteItem { formHostname, fillMessageName: "PasswordManager:OpenPreferences", fillMessageData: { - entryPoint: "Autocomplete", + entryPoint: "autocomplete", }, }); } diff --git a/toolkit/components/passwordmgr/LoginHelper.sys.mjs b/toolkit/components/passwordmgr/LoginHelper.sys.mjs index 43e89100a4f7..579417079591 100644 --- a/toolkit/components/passwordmgr/LoginHelper.sys.mjs +++ b/toolkit/components/passwordmgr/LoginHelper.sys.mjs @@ -1622,8 +1622,8 @@ export const LoginHelper = { if (expirationTime && Date.now() < expirationTime) { isAuthorized = true; telemetryEvent = { - name: - "reauthenticate" + (token.hasPassword ? "MasterPassword" : "OsAuth"), + object: token.hasPassword ? "master_password" : "os_auth", + method: "reauthenticate", value: "success_no_prompt", }; return { @@ -1636,7 +1636,8 @@ export const LoginHelper = { if (!token.hasPassword && !OSReauthEnabled) { isAuthorized = true; telemetryEvent = { - name: "reauthenticateOsAuth", + object: "os_auth", + method: "reauthenticate", value: "success_disabled", }; return { @@ -1658,7 +1659,8 @@ export const LoginHelper = { : "success_unsupported_platform"; telemetryEvent = { - name: "reauthenticateOsAuth", + object: "os_auth", + method: "reauthenticate", value: isAuthorized ? value : "fail", }; return { @@ -1690,7 +1692,8 @@ export const LoginHelper = { } isAuthorized = token.isLoggedIn(); telemetryEvent = { - name: "reauthenticateMasterPassword", + object: "master_password", + method: "reauthenticate", value: isAuthorized ? "success" : "fail", }; return { diff --git a/toolkit/components/passwordmgr/LoginManager.sys.mjs b/toolkit/components/passwordmgr/LoginManager.sys.mjs index 47038793ac75..538d7c63e141 100644 --- a/toolkit/components/passwordmgr/LoginManager.sys.mjs +++ b/toolkit/components/passwordmgr/LoginManager.sys.mjs @@ -375,7 +375,15 @@ LoginManager.prototype = { this._storage.recordPasswordUse(login); } - Glean.pwmgr["savedLoginUsed" + loginType].record({ filled }); + Services.telemetry.recordEvent( + "pwmgr", + "saved_login_used", + loginType, + null, + { + filled: "" + filled, + } + ); }, /** diff --git a/toolkit/components/passwordmgr/LoginManagerAuthPrompter.sys.mjs b/toolkit/components/passwordmgr/LoginManagerAuthPrompter.sys.mjs index b4a04f1328ea..82896f01d835 100644 --- a/toolkit/components/passwordmgr/LoginManagerAuthPrompter.sys.mjs +++ b/toolkit/components/passwordmgr/LoginManagerAuthPrompter.sys.mjs @@ -495,7 +495,7 @@ LoginManagerAuthPrompter.prototype = { Services.logins.recordPasswordUse( selectedLogin, this._inPrivateBrowsing, - "PromptLogin", + "prompt_login", autofilled ); } @@ -768,7 +768,7 @@ LoginManagerAuthPrompter.prototype = { Services.logins.recordPasswordUse( selectedLogin, this._inPrivateBrowsing, - "AuthLogin", + "auth_login", autofilled ); } diff --git a/toolkit/components/passwordmgr/LoginManagerParent.sys.mjs b/toolkit/components/passwordmgr/LoginManagerParent.sys.mjs index e0ae6c27b267..b1819e7cd00c 100644 --- a/toolkit/components/passwordmgr/LoginManagerParent.sys.mjs +++ b/toolkit/components/passwordmgr/LoginManagerParent.sys.mjs @@ -927,7 +927,11 @@ export class LoginManagerParent extends JSWindowActorParent { generatedPW.autocompleteShown = true; - Glean.pwmgr.autocompleteShownGeneratedpassword.record(); + Services.telemetry.recordEvent( + "pwmgr", + "autocomplete_shown", + "generatedpassword" + ); } /** @@ -989,7 +993,7 @@ export class LoginManagerParent extends JSWindowActorParent { Services.logins.recordPasswordUse( login, browser && lazy.PrivateBrowsingUtils.isBrowserPrivate(browser), - login.username ? "FormLogin" : "FormPassword", + login.username ? "form_login" : "form_password", !!autoFilledLoginGuid ); } @@ -1279,7 +1283,11 @@ export class LoginManagerParent extends JSWindowActorParent { // Record telemetry for the first edit if (!generatedPW.edited) { - Glean.pwmgr.filledFieldEditedGeneratedpassword.record(); + Services.telemetry.recordEvent( + "pwmgr", + "filled_field_edited", + "generatedpassword" + ); lazy.log("filled_field_edited telemetry event recorded."); generatedPW.edited = true; } @@ -1293,7 +1301,11 @@ export class LoginManagerParent extends JSWindowActorParent { ); } // record first use of this generated password - Glean.pwmgr.autocompleteFieldGeneratedpassword.record(); + Services.telemetry.recordEvent( + "pwmgr", + "autocomplete_field", + "generatedpassword" + ); lazy.log("autocomplete_field telemetry event recorded."); generatedPW.filled = true; } diff --git a/toolkit/components/passwordmgr/LoginManagerPrompter.sys.mjs b/toolkit/components/passwordmgr/LoginManagerPrompter.sys.mjs index b3404656617d..f39d5d451c49 100644 --- a/toolkit/components/passwordmgr/LoginManagerPrompter.sys.mjs +++ b/toolkit/components/passwordmgr/LoginManagerPrompter.sys.mjs @@ -227,10 +227,10 @@ export class LoginManagerPrompter { const wasModifiedEvent = { // Values are mutated - did_edit_un: false, - did_select_un: false, - did_edit_pw: false, - did_select_pw: false, + did_edit_un: "false", + did_select_un: "false", + did_edit_pw: "false", + did_select_pw: "false", }; const updateButtonStatus = element => { @@ -323,25 +323,25 @@ export class LoginManagerPrompter { }; const onUsernameInput = () => { - wasModifiedEvent.did_edit_un = true; - wasModifiedEvent.did_select_un = false; + wasModifiedEvent.did_edit_un = "true"; + wasModifiedEvent.did_select_un = "false"; onInput(); }; const onUsernameSelect = () => { - wasModifiedEvent.did_edit_un = false; - wasModifiedEvent.did_select_un = true; + wasModifiedEvent.did_edit_un = "false"; + wasModifiedEvent.did_select_un = "true"; }; const onPasswordInput = () => { - wasModifiedEvent.did_edit_pw = true; - wasModifiedEvent.did_select_pw = false; + wasModifiedEvent.did_edit_pw = "true"; + wasModifiedEvent.did_select_pw = "false"; onInput(); }; const onPasswordSelect = () => { - wasModifiedEvent.did_edit_pw = false; - wasModifiedEvent.did_select_pw = true; + wasModifiedEvent.did_edit_pw = "false"; + wasModifiedEvent.did_select_pw = "true"; }; const onKeyUp = e => { @@ -444,7 +444,7 @@ export class LoginManagerPrompter { Services.logins.recordPasswordUse( loginToUpdate, PrivateBrowsingUtils.isBrowserPrivate(browser), - loginToUpdate.username ? "FormPassword" : "FormLogin", + loginToUpdate.username ? "form_password" : "form_login", !!autoFilledLoginGuid ); } else { @@ -479,11 +479,11 @@ export class LoginManagerPrompter { callback: async () => { const eventTypeMapping = { "password-save": { - eventObject: "Save", + eventObject: "save", confirmationHintFtlId: "confirmation-hint-password-created", }, "password-change": { - eventObject: "Update", + eventObject: "update", confirmationHintFtlId: "confirmation-hint-password-updated", }, }; @@ -520,9 +520,13 @@ export class LoginManagerPrompter { browser.focus(); await persistData(); - Glean.pwmgr[ - "doorhangerSubmitted" + eventTypeMapping[type].eventObject - ].record(wasModifiedEvent); + Services.telemetry.recordEvent( + "pwmgr", + "doorhanger_submitted", + eventTypeMapping[type].eventObject, + null, + wasModifiedEvent + ); if (histogramName == "PWMGR_PROMPT_REMEMBER_ACTION") { Services.obs.notifyObservers(browser, "LoginStats:NewSavedPassword"); diff --git a/toolkit/components/passwordmgr/metrics.yaml b/toolkit/components/passwordmgr/metrics.yaml index cbe3c61c3c17..a524d10d9b8b 100644 --- a/toolkit/components/passwordmgr/metrics.yaml +++ b/toolkit/components/passwordmgr/metrics.yaml @@ -39,754 +39,3 @@ pwmgr: notification_emails: - passwords-dev@mozilla.org expires: never - - autocomplete_field_generatedpassword: - type: event - description: > - "autocomplete_field": The first time each unique generated password - is used to fill a login field - i.e. the user selects it from from - the autocomplete dropdown on a password input "autocomplete_shown": - The first time the password generation option is shown in the - autocomplete dropdown on a password input for a site per session - This event was generated to correspond to the Legacy Telemetry event - pwmgr.autocomplete_field#generatedpassword. - bugs: &pwmgr_autocomplete_field_bugs - - https://bugzil.la/1548878 - - https://bugzil.la/1616356 - data_reviews: &pwmgr_autocomplete_field_data_reviews - - https://bugzil.la/1548878 - - https://bugzil.la/1616356 - notification_emails: &pwmgr_autocomplete_field_emails - - loines@mozilla.com - - passwords-dev@mozilla.org - - sfoster@mozilla.com - expires: never - telemetry_mirror: Pwmgr_AutocompleteField_Generatedpassword - - autocomplete_shown_generatedpassword: - type: event - description: > - "autocomplete_field": The first time each unique generated password - is used to fill a login field - i.e. the user selects it from from - the autocomplete dropdown on a password input "autocomplete_shown": - The first time the password generation option is shown in the - autocomplete dropdown on a password input for a site per session - This event was generated to correspond to the Legacy Telemetry event - pwmgr.autocomplete_shown#generatedpassword. - bugs: *pwmgr_autocomplete_field_bugs - data_reviews: *pwmgr_autocomplete_field_data_reviews - notification_emails: *pwmgr_autocomplete_field_emails - expires: never - telemetry_mirror: Pwmgr_AutocompleteShown_Generatedpassword - - filled_field_edited_generatedpassword: - type: event - description: > - The first time each generated password filled in a website form - field is edited by the user in a field it was filled in - This event was generated to correspond to the Legacy Telemetry event - pwmgr.filled_field_edited#generatedpassword. - bugs: - - https://bugzil.la/1548880 - data_reviews: - - https://bugzil.la/1548880 - notification_emails: - - loines@mozilla.com - - passwords-dev@mozilla.org - expires: never - telemetry_mirror: Pwmgr_FilledFieldEdited_Generatedpassword - - doorhanger_submitted_save: - type: event - description: > - A login is saved or updated via the capture doorhanger. Carries - information about whether the username and password _that were - saved/updated by the user_ were modified in the doorhanger, selected - from the suggestion autocomplete, or neither. `did_edit_X` and - `did_select_X` will never both be true in the same event. The - `object` describes the type of doorhanger when it was originally - created. Note that user updates to the doorhanger may change whether - a login is actually saved or updated, but will not impact the sent - object. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.doorhanger_submitted#save. - bugs: &pwmgr_doorhanger_submitted_bugs - - https://bugzil.la/1650929 - - https://bugzil.la/1650941 - - https://bugzil.la/1678200 - - https://bugzil.la/1714252 - - https://bugzil.la/1754637 - - https://bugzil.la/1850872 - data_reviews: &pwmgr_doorhanger_submitted_data_reviews - - https://bugzil.la/1650929 - - https://bugzil.la/1650941 - - https://bugzil.la/1678200 - - https://bugzil.la/1714252 - - https://bugzil.la/1754637 - - https://bugzil.la/1850872 - notification_emails: &pwmgr_doorhanger_submitted_emails - - passwords-dev@mozilla.org - expires: 142 - extra_keys: &pwmgr_doorhanger_submitted_extra - did_edit_un: - description: > - Whether or not the saved/updated username was modified by the user typing into the username field. - - type: boolean - did_select_un: - description: > - Whether or not the saved/updated username was selected by the user choosing a suggested value from the autocomplete popup. - - type: boolean - did_edit_pw: - description: > - Whether or not the saved/updated password was modified by the user typing into the password field. - - type: boolean - did_select_pw: - description: > - Whether or not the saved/updated password was selected by the user choosing a suggested value from the autocomplete popup. - - type: boolean - telemetry_mirror: Pwmgr_DoorhangerSubmitted_Save - - doorhanger_submitted_update: - type: event - description: > - A login is saved or updated via the capture doorhanger. Carries - information about whether the username and password _that were - saved/updated by the user_ were modified in the doorhanger, selected - from the suggestion autocomplete, or neither. `did_edit_X` and - `did_select_X` will never both be true in the same event. The - `object` describes the type of doorhanger when it was originally - created. Note that user updates to the doorhanger may change whether - a login is actually saved or updated, but will not impact the sent - object. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.doorhanger_submitted#update. - bugs: *pwmgr_doorhanger_submitted_bugs - data_reviews: *pwmgr_doorhanger_submitted_data_reviews - notification_emails: *pwmgr_doorhanger_submitted_emails - expires: 142 - extra_keys: *pwmgr_doorhanger_submitted_extra - telemetry_mirror: Pwmgr_DoorhangerSubmitted_Update - - saved_login_used_form_login: - type: event - description: > - Each time a saved login is used in a form or authentication dialog. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.saved_login_used#form_login. - bugs: &pwmgr_saved_login_used_bugs - - https://bugzil.la/1631130 - data_reviews: &pwmgr_saved_login_used_data_reviews - - https://bugzil.la/1631130 - notification_emails: &pwmgr_saved_login_used_emails - - loines@mozilla.com - - passwords-dev@mozilla.org - expires: never - extra_keys: &pwmgr_saved_login_used_extra - filled: - description: > - Whether the browser filled the login details for the user vs. typing saved values. - type: boolean - telemetry_mirror: Pwmgr_SavedLoginUsed_FormLogin - - saved_login_used_form_password: - type: event - description: > - Each time a saved login is used in a form or authentication dialog. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.saved_login_used#form_password. - bugs: *pwmgr_saved_login_used_bugs - data_reviews: *pwmgr_saved_login_used_data_reviews - notification_emails: *pwmgr_saved_login_used_emails - expires: never - extra_keys: *pwmgr_saved_login_used_extra - telemetry_mirror: Pwmgr_SavedLoginUsed_FormPassword - - saved_login_used_auth_login: - type: event - description: > - Each time a saved login is used in a form or authentication dialog. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.saved_login_used#auth_login. - bugs: *pwmgr_saved_login_used_bugs - data_reviews: *pwmgr_saved_login_used_data_reviews - notification_emails: *pwmgr_saved_login_used_emails - expires: never - extra_keys: *pwmgr_saved_login_used_extra - telemetry_mirror: Pwmgr_SavedLoginUsed_AuthLogin - - saved_login_used_prompt_login: - type: event - description: > - Each time a saved login is used in a form or authentication dialog. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.saved_login_used#prompt_login. - bugs: *pwmgr_saved_login_used_bugs - data_reviews: *pwmgr_saved_login_used_data_reviews - notification_emails: *pwmgr_saved_login_used_emails - expires: never - extra_keys: *pwmgr_saved_login_used_extra - telemetry_mirror: Pwmgr_SavedLoginUsed_PromptLogin - - mgmt_menu_item_used_import_from_browser: - type: event - description: > - Record interactions with the about:logins menu. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.mgmt_menu_item_used#import_from_browser. - bugs: &pwmgr_mgmt_menu_item_used_bugs - - https://bugzil.la/1641396 - - https://bugzil.la/1641777 - - https://bugzil.la/1641393 - data_reviews: &pwmgr_mgmt_menu_item_used_data_reviews - - https://bugzil.la/1641396 - - https://bugzil.la/1641777 - - https://bugzil.la/1641393 - notification_emails: &pwmgr_mgmt_menu_item_used_emails - - loines@mozilla.com - - passwords-dev@mozilla.org - expires: never - telemetry_mirror: Pwmgr_MgmtMenuItemUsed_ImportFromBrowser - - mgmt_menu_item_used_import_from_csv: - type: event - description: > - Record interactions with the about:logins menu. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.mgmt_menu_item_used#import_from_csv. - bugs: *pwmgr_mgmt_menu_item_used_bugs - data_reviews: *pwmgr_mgmt_menu_item_used_data_reviews - notification_emails: *pwmgr_mgmt_menu_item_used_emails - expires: never - telemetry_mirror: Pwmgr_MgmtMenuItemUsed_ImportFromCsv - - mgmt_menu_item_used_import_csv_complete: - type: event - description: > - Record interactions with the about:logins menu. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.mgmt_menu_item_used#import_csv_complete. - bugs: *pwmgr_mgmt_menu_item_used_bugs - data_reviews: *pwmgr_mgmt_menu_item_used_data_reviews - notification_emails: *pwmgr_mgmt_menu_item_used_emails - expires: never - telemetry_mirror: Pwmgr_MgmtMenuItemUsed_ImportCsvComplete - - mgmt_menu_item_used_export: - type: event - description: > - Record interactions with the about:logins menu. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.mgmt_menu_item_used#export. - bugs: *pwmgr_mgmt_menu_item_used_bugs - data_reviews: *pwmgr_mgmt_menu_item_used_data_reviews - notification_emails: *pwmgr_mgmt_menu_item_used_emails - expires: never - telemetry_mirror: Pwmgr_MgmtMenuItemUsed_Export - - mgmt_menu_item_used_export_complete: - type: event - description: > - Record interactions with the about:logins menu. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.mgmt_menu_item_used#export_complete. - bugs: *pwmgr_mgmt_menu_item_used_bugs - data_reviews: *pwmgr_mgmt_menu_item_used_data_reviews - notification_emails: *pwmgr_mgmt_menu_item_used_emails - expires: never - telemetry_mirror: Pwmgr_MgmtMenuItemUsed_ExportComplete - - mgmt_menu_item_used_preferences: - type: event - description: > - Record interactions with the about:logins menu. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.mgmt_menu_item_used#preferences. - bugs: *pwmgr_mgmt_menu_item_used_bugs - data_reviews: *pwmgr_mgmt_menu_item_used_data_reviews - notification_emails: *pwmgr_mgmt_menu_item_used_emails - expires: never - telemetry_mirror: Pwmgr_MgmtMenuItemUsed_Preferences - - reauthenticate_master_password: - type: event - description: > - Measure how often users are asked to authenticate with their Operating System or Master Password to gain access to stored passwords. - Possible values are as follows, - "success" should be used when the user authenticates and provides a password or other authentication factor. - "success_no_prompt" should be used when the feature is enabled but no prompt is given to the user because they have recently authenticated. - "success_disabled" is used when the feature is disabled. - "success_unsupported_platform" should be set when the user attempts to authenticate on an unsupported platform. - "success_no_password" should be used when the user doesn't have an OS password set. - "fail" should be used when the user cancels the authentication prompt or an unexpected exception is encountered. The user may or may not have provided an incorrect password before cancelling. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.reauthenticate#master_password. - bugs: &pwmgr_reauthenticate_bugs - - https://bugzil.la/1628029 - - https://bugzil.la/1623745 - - https://bugzil.la/1636729 - - https://bugzil.la/1642267 - data_reviews: &pwmgr_reauthenticate_data_reviews - - https://bugzil.la/1628029 - - https://bugzil.la/1623745 - - https://bugzil.la/1636729 - - https://bugzil.la/1642267 - notification_emails: &pwmgr_reauthenticate_emails - - loines@mozilla.com - - passwords-dev@mozilla.org - - jaws@mozilla.com - expires: never - extra_keys: &pwmgr_reauthenticate_extra - value: - description: > - The `value` of the event. Mirrors to the Legacy Telemetry - event's `value` parameter. - type: string - auto_admin: - description: > - If the AutoAdminLogon Windows feature is enabled. This feature disables password prompt when logging in to Windows. - - type: string - require_signon: - description: > - If the Power Settings on Windows are configured to not prompt for password upon resuming from sleep. - - type: string - telemetry_mirror: Pwmgr_Reauthenticate_MasterPassword - - reauthenticate_os_auth: - type: event - description: > - Measure how often users are asked to authenticate with their Operating System or Master Password to gain access to stored passwords. - Possible values are as follows, - "success" should be used when the user authenticates and provides a password or other authentication factor. - "success_no_prompt" should be used when the feature is enabled but no prompt is given to the user because they have recently authenticated. - "success_disabled" is used when the feature is disabled. - "success_unsupported_platform" should be set when the user attempts to authenticate on an unsupported platform. - "success_no_password" should be used when the user doesn't have an OS password set. - "fail" should be used when the user cancels the authentication prompt or an unexpected exception is encountered. The user may or may not have provided an incorrect password before cancelling. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.reauthenticate#os_auth. - bugs: *pwmgr_reauthenticate_bugs - data_reviews: *pwmgr_reauthenticate_data_reviews - notification_emails: *pwmgr_reauthenticate_emails - expires: never - extra_keys: *pwmgr_reauthenticate_extra - telemetry_mirror: Pwmgr_Reauthenticate_OsAuth - - open_management_aboutprotections: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#aboutprotections. - bugs: &pwmgr_open_management_bugs - - https://bugzil.la/1543499 - - https://bugzil.la/1454733 - - https://bugzil.la/1545172 - - https://bugzil.la/1550631 - - https://bugzil.la/1622971 - data_reviews: &pwmgr_open_management_data_reviews - - https://bugzil.la/1543499 - - https://bugzil.la/1454733 - - https://bugzil.la/1545172 - - https://bugzil.la/1550631 - - https://bugzil.la/1622971 - notification_emails: &pwmgr_open_management_emails - - loines@mozilla.com - - passwords-dev@mozilla.org - - sfoster@mozilla.com - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Aboutprotections - - open_management_autocomplete: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#autocomplete. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Autocomplete - - open_management_contextmenu: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#contextmenu. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Contextmenu - - open_management_direct: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#direct. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Direct - - open_management_mainmenu: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#mainmenu. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Mainmenu - - open_management_pageinfo: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#pageinfo. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Pageinfo - - open_management_preferences: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#preferences. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Preferences - - open_management_snippet: - type: event - description: > - Sent when opening the password management UI. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_management#snippet. - bugs: *pwmgr_open_management_bugs - data_reviews: *pwmgr_open_management_data_reviews - notification_emails: *pwmgr_open_management_emails - expires: never - telemetry_mirror: Pwmgr_OpenManagement_Snippet - - cancel_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.cancel#existing_login. - bugs: &pwmgr_cancel_bugs - - https://bugzil.la/1548463 - - https://bugzil.la/1600958 - - https://bugzil.la/1549115 - - https://bugzil.la/1628165 - data_reviews: &pwmgr_cancel_data_reviews - - https://bugzil.la/1548463 - - https://bugzil.la/1600958 - - https://bugzil.la/1549115 - - https://bugzil.la/1628165 - notification_emails: &pwmgr_cancel_emails - - loines@mozilla.com - - passwords-dev@mozilla.org - - jaws@mozilla.com - expires: never - extra_keys: &pwmgr_cancel_extra - breached: - description: > - Whether the login is marked as breached or not. If a login is both breached and vulnerable, it will only be reported as breached. - type: boolean - vulnerable: - description: > - Whether the login is marked as vulnerable or not. If a login is both breached and vulnerable, it will only be reported as breached. - type: boolean - telemetry_mirror: Pwmgr_Cancel_ExistingLogin - - cancel_new_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.cancel#new_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Cancel_NewLogin - - copy_password: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.copy#password. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Copy_Password - - copy_username: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.copy#username. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Copy_Username - - delete_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.delete#existing_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - telemetry_mirror: Pwmgr_Delete_ExistingLogin - - delete_new_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.delete#new_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Delete_NewLogin - - edit_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.edit#existing_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Edit_ExistingLogin - - filter_list: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.filter#list. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - telemetry_mirror: Pwmgr_Filter_List - - hide_password: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.hide#password. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Hide_Password - - learn_more_vuln_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.learn_more_vuln#existing_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_LearnMoreVuln_ExistingLogin - - new_new_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.new#new_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - telemetry_mirror: Pwmgr_New_NewLogin - - open_site_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.open_site#existing_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_OpenSite_ExistingLogin - - save_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.save#existing_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Save_ExistingLogin - - save_new_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.save#new_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Save_NewLogin - - select_existing_login: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.select#existing_login. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Select_ExistingLogin - - show_password: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.show#password. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: *pwmgr_cancel_extra - telemetry_mirror: Pwmgr_Show_Password - - sort_list: - type: event - description: > - These events record interactions on the about:logins page. - This event was generated to correspond to the Legacy Telemetry event - pwmgr.sort#list. - bugs: *pwmgr_cancel_bugs - data_reviews: *pwmgr_cancel_data_reviews - notification_emails: *pwmgr_cancel_emails - expires: never - extra_keys: - sort_key: - description: > - The key that is used for sorting the login-list. - type: string - telemetry_mirror: Pwmgr_Sort_List - -form_autocomplete: - show_logins: - type: event - description: > - An content form autocomplete popup was shown. Details on the timing - and context are provided. - This event was generated to correspond to the Legacy Telemetry event - form_autocomplete.show#logins. - bugs: - - https://bugzil.la/1619498 - - https://bugzil.la/1628849 - data_reviews: - - https://bugzil.la/1619498 - - https://bugzil.la/1628849 - notification_emails: - - passwords-dev@mozilla.org - expires: never - extra_keys: - value: - description: > - The `value` is the number of milliseconds since the autocomplete search started. - type: quantity - acFieldName: - description: > - The "field name" token (last one) of the field's autocomplete attribute. - type: string - fieldType: - description: > - The `type` property value of the field. - type: string - generatedPasswo: - description: > - The number of generated password rows shown. - type: string - hadPrevious: - description: > - Whether the autocomplete results had cached previous results it could use. - type: string - typeWasPassword: - description: > - Whether the input `type` was ever "password". - type: string - insecureWarning: - description: > - The number of insecure login field warning rows shown (should be 0 or 1). - type: string - login: - description: > - The number of login rows shown (with or without the domain line). - type: string - importableLogin: - description: > - The number of import suggestion rows shown. - type: string - loginsFooter: - description: > - The number of "Manage Passwords" footer row shown. - type: string - stringLength: - description: > - Length of the text in the field that triggered these results. - type: string - telemetry_mirror: Form_autocomplete_Show_Logins diff --git a/toolkit/components/satchel/megalist/aggregator/datasources/LoginDataSource.sys.mjs b/toolkit/components/satchel/megalist/aggregator/datasources/LoginDataSource.sys.mjs index 2dc7d04b1d14..24407b278965 100644 --- a/toolkit/components/satchel/megalist/aggregator/datasources/LoginDataSource.sys.mjs +++ b/toolkit/components/satchel/megalist/aggregator/datasources/LoginDataSource.sys.mjs @@ -443,11 +443,8 @@ export class LoginDataSource extends DataSourceBase { this.#exportPasswordsStrings.OSAuthDialogCaption ); - let { name, extra = {}, value = null } = telemetryEvent; - if (value) { - extra.value = value; - } - Glean.pwmgr[name].record(extra); + let { method, object, extra = {}, value = null } = telemetryEvent; + Services.telemetry.recordEvent("pwmgr", method, object, value, extra); if (!isAuthorized) { this.cancelDialog(); @@ -462,7 +459,11 @@ export class LoginDataSource extends DataSourceBase { function fpCallback(aResult) { if (aResult != Ci.nsIFilePicker.returnCancel) { LoginExport.exportAsCSV(fp.file.path); - Glean.pwmgr.mgmtMenuItemUsedExportComplete.record(); + Services.telemetry.recordEvent( + "pwmgr", + "mgmt_menu_item_used", + "export_complete" + ); } } fp.init(