commit d20174d0d0e9fb84e3bf2a241d85a895e229ca37 parent b1ce0fdec323d9318c453fe2ae212d1694bd9647 Author: Neil Deakin <neil@mozilla.com> Date: Mon, 5 Jan 2026 15:39:11 +0000 Bug 2006756, don't treat single email fields as being a valid formfill section as those are often going to be login forms, r=credential-management-reviewers,dimi Differential Revision: https://phabricator.services.mozilla.com/D277122 Diffstat:
4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/browser/extensions/formautofill/test/browser/heuristics/browser_autocomplete_fields.js b/browser/extensions/formautofill/test/browser/heuristics/browser_autocomplete_fields.js @@ -145,4 +145,16 @@ add_heuristic_tests([ }, ], }, + { + description: "Form containing one email field.", + fixtureData: `<form> + <input autocomplete="email"> + </form>`, + expectedResult: [ + { + invalid: true, + fields: [{ fieldName: "email" }], + }, + ], + }, ]); diff --git a/browser/extensions/formautofill/test/browser/heuristics/browser_duplicate_fields.js b/browser/extensions/formautofill/test/browser/heuristics/browser_duplicate_fields.js @@ -562,6 +562,7 @@ add_heuristic_tests([ `, expectedResult: [ { + invalid: true, default: { reason: "autocomplete", }, @@ -582,6 +583,7 @@ add_heuristic_tests([ `, expectedResult: [ { + invalid: true, default: { reason: "autocomplete", addressType: "shipping", diff --git a/browser/extensions/formautofill/test/browser/heuristics/browser_section_validation_address.js b/browser/extensions/formautofill/test/browser/heuristics/browser_section_validation_address.js @@ -76,6 +76,7 @@ add_heuristic_tests([ expectedResult: [ { description: "A section with two fields", + invalid: true, fields: [ { fieldName: "postal-code", reason: "regex-heuristic" }, { fieldName: "email", reason: "autocomplete" }, diff --git a/toolkit/components/formautofill/shared/FormAutofillUtils.sys.mjs b/toolkit/components/formautofill/shared/FormAutofillUtils.sys.mjs @@ -205,8 +205,15 @@ FormAutofillUtils = { }, isValidSection(fieldDetails) { - // If one of the fields has the autocomplete reason, the section is valid. - if (fieldDetails.some(f => f.reason == "autocomplete")) { + // If one of the fields has the autocomplete reason, the section is valid, + // except for email fields since those are often login forms. + // Bug 2008553 - should find a way to display an email dropdown if this + // isn't a login form. + if ( + fieldDetails.some( + f => f.reason == "autocomplete" && f.fieldName != "email" + ) + ) { return true; }