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)
This commit is contained in:
Sandor Molnar
2024-09-25 12:38:05 +03:00
parent d4036d8eea
commit 5095328e2d
21 changed files with 142 additions and 836 deletions

View File

@@ -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":

View File

@@ -1399,7 +1399,7 @@ export class nsContextMenu {
openPasswordManager() {
lazy.LoginHelper.openPasswordManager(this.window, {
entryPoint: "Contextmenu",
entryPoint: "contextmenu",
});
}

View File

@@ -225,7 +225,7 @@ var security = {
viewPasswords() {
LoginHelper.openPasswordManager(window, {
filterString: this.windowInfo.hostName,
entryPoint: "Pageinfo",
entryPoint: "pageinfo",
});
},
};

View File

@@ -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

View File

@@ -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"
);
}
}
}

View File

@@ -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")) {

View File

@@ -93,7 +93,7 @@ export default class LoginFilter extends HTMLElement {
})
);
recordTelemetryEvent({ name: "filterList" });
recordTelemetryEvent({ object: "list", method: "filter" });
}
}
customElements.define("login-filter", LoginFilter);

View File

@@ -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);

View File

@@ -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,

View File

@@ -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" });
},
},
];

View File

@@ -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

View File

@@ -3140,7 +3140,7 @@ var gPrivacyPane = {
showPasswords() {
let loginManager = window.windowGlobalChild.getActor("LoginManager");
loginManager.sendAsyncMessage("PasswordManager:OpenPreferences", {
entryPoint: "Preferences",
entryPoint: "preferences",
});
},

View File

@@ -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) {

View File

@@ -238,7 +238,7 @@ class LoginsFooterAutocompleteItem extends AutocompleteItem {
formHostname,
fillMessageName: "PasswordManager:OpenPreferences",
fillMessageData: {
entryPoint: "Autocomplete",
entryPoint: "autocomplete",
},
});
}

View File

@@ -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 {

View File

@@ -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,
}
);
},
/**

View File

@@ -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
);
}

View File

@@ -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;
}

View File

@@ -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");

View File

@@ -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

View File

@@ -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(