Form Autofill Heuristics
Form Autofill Heuristics module is for detecting the field type based on autocomplete attribute, the regular expressions and the customized logic in each parser.
Debugging
The pref extensions.formautofill.heuristics.enabled
is “true” in default. Set it to “false” could be useful to verify the result of autocomplete attribute.
Dependent APIs
element.getAutocompleteInfo()
provides the parsed result of autocomplete
attribute which includes the field name and section information defined in autofill spec
Regular Expressions
This section is about how the regular expression is applied during parsing fields. All regular expressions are in HeuristicsRegexp.sys.mjs.
Parser Implementations
The parsers are for detecting the field type more accurately based on the near context of a field. Each parser uses FieldScanner
to traverse the interested fields with the result from the regular expressions and adjust each field type when it matches to a grammar.
_parsePhoneFields
related type:
tel
,tel-*
_parseStreetAddressFields
related type:
street-address`, `address-line[1-3]
_parseAddressFields
related type:
address-level[1-2]
_parseCreditCardExpiryFields
related type:
cc-exp
,cc-exp-month
,cc-exp-year
_parseCreditCardNameFields
related type:
cc-name
,given-name
,additional-name
,family-name
_parseCreditCardNumberFields
related type:
cc-number