commit e4f541f949368f6f9374bbcef1d795d55fb156bd
parent d2fc907d6278f08920fac6c066fbba287aac2f2f
Author: Neil Deakin <neil@mozilla.com>
Date: Fri, 21 Nov 2025 13:01:56 +0000
Bug 1929831, add some dutch address related terms that can be matched, r=dimi,credential-management-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D273251
Diffstat:
3 files changed, 60 insertions(+), 7 deletions(-)
diff --git a/browser/extensions/formautofill/test/browser/heuristics/browser.toml b/browser/extensions/formautofill/test/browser/heuristics/browser.toml
@@ -36,6 +36,8 @@ skip-if = ["os == 'mac' && os_version == '11.20' && arch == 'aarch64' && !debug"
["browser_multiple_section.js"]
+["browser_nl_fields.js"]
+
["browser_parse_address_fields.js"]
["browser_parse_creditcard_expiry_fields.js"]
diff --git a/browser/extensions/formautofill/test/browser/heuristics/browser_nl_fields.js b/browser/extensions/formautofill/test/browser/heuristics/browser_nl_fields.js
@@ -0,0 +1,39 @@
+/* global add_heuristic_tests */
+
+"use strict";
+
+add_heuristic_tests(
+ [
+ {
+ fixtureData: `
+ <html>
+ <body>
+ <form>
+ <input id="straat"/>
+ <input id="voornaam"/>
+ <input id="voorletters"/>
+ <input id="achternaam"/>
+ <input id="telefoon"/>
+ <input id="stad"/>
+ </form>
+ </body>
+ </html>`,
+ expectedResult: [
+ {
+ default: {
+ reason: "regex-heuristic",
+ },
+ fields: [
+ { fieldName: "street-address" },
+ { fieldName: "given-name" },
+ { fieldName: "additional-name" },
+ { fieldName: "family-name" },
+ { fieldName: "tel" },
+ { fieldName: "address-level2" },
+ ],
+ },
+ ],
+ },
+ ],
+ "fixtures/"
+);
diff --git a/toolkit/components/formautofill/shared/HeuristicsRegExp.sys.mjs b/toolkit/components/formautofill/shared/HeuristicsRegExp.sys.mjs
@@ -49,7 +49,9 @@ export const HeuristicsRegExp = {
//=========================================================================
// Firefox-specific rules
{
- "street-address": "ulica(.*(numer|nr))?", // pl-PL
+ "street-address":
+ "ulica(.*(numer|nr))?" + // pl-PL
+ "|straat", // nl
"address-line1": "addrline1|address_1|addl1" +
// TODO: Bug 1829583
"|(?<neg>nome.*)|endereço", // es
@@ -59,20 +61,28 @@ export const HeuristicsRegExp = {
"address-line3": "addrline3|address_3|addl3",
"address-level2":
"città" + // it-IT
- "|miasto|miejscowosc|miejscowość", //pl-PL
+ "|miasto|miejscowosc|miejscowość" + //pl-PL
+ "|\\bstad|woonplaats|plaats", // nl
"address-housenumber":
"(house|building)[\\s\-]*number|hausnummer|haus|house[a-z\-]*n(r|o)" +
"|n[úu]mero" +
- "|domu", // pl-PL
+ "|domu" + // pl-PL
+ "|huisnummer", // nl
"address-level3":
"(^address-?level-?3$)" +
"|neighbou*rhood|barrio|bairro|colonia|suburb", // en/es/pt/mx/au/nz
"postal-code":
"^PLZ(\\b|\\*)" + // de-DE
"|kod.?pocztowy", // pl-PL
- "given-name": "imię", // pl-PL
- "additional-name": "apellido.?materno|lastlastname",
- "family-name": "nazwisko",
+ "given-name":
+ "imię" + // pl-PL
+ "|voornaam", // nl
+ "additional-name":
+ "apellido.?materno|lastlastname" +
+ "|voorletters?|tussenvoegsel", // nl
+ "family-name":
+ "nazwisko" +
+ "|achternaam", // nl
"cc-name":
"accountholdername" +
"|titulaire", // fr-FR
@@ -108,7 +118,9 @@ export const HeuristicsRegExp = {
"|tel.*country|country.*tel" +
"|phone(?!-local).*prefix|tel(?!-local).*prefix" +
"|prefix.*phone|prefix.*tel",
- "tel": "(numer|nr)?\\.?telefonu", //pl-PL
+ "tel":
+ "(numer|nr)?\\.?telefonu" + //pl-PL
+ "|telefoon", // nl
},
//=========================================================================