Closed Bug 1301544 Opened 8 years ago Closed 7 years ago

Define a schema and storage method for Form Autofill / Web Payment address profiles

Categories

(Toolkit :: Form Manager, defect, P1)

defect

Tracking

()

RESOLVED FIXED

People

(Reporter: MattN, Assigned: lchang)

References

()

Details

(Whiteboard: [form autofill])

We need to figure out a schema for storing address profile data locally that is compatible with Form Autofill, the Payment Request API, and Fx sync.

The obvious storage methods are flat JSON files or SQLite. I don't think we will need many-to-many relationships and users will likely have less than 10 profiles so a JSON file should be sufficient. For now we won't worry about storing payment devices.

I made a Google Doc so it's easy to comment on and track issues:
https://docs.google.com/document/d/1HsJCn5XtWKD3kWupZQ6oXgHeEp3Dq1Z88xWSCO3weLY/edit?usp=sharing

Resources:
https://mail.mozilla.org/pipermail/sync-dev/2016-September/001435.html
https://w3c.github.io/browser-payment-api/#paymentresponse-interface
https://html.spec.whatwg.org/multipage/forms.html#attr-fe-autocomplete-name
https://cs.chromium.org/chromium/src/components/autofill/core/browser/webdata/autofill_table.h?l=35
Just to share the first version of the schema here. Note that it's only intended for en-US profiles for now. Additional fields will be added to support other locales.

-----

{
  version: 1,
  profiles: [
    {
      guid,             // 12 character...
  
      // profile
      givenName,
      additionalName,   // Middle Name(s)
      familyName,
      organization,     // Company
      streetAddress,    // (Multiline)
      addressLevel2,    // City/Town
      addressLevel1,    // Province (Standardized code if possible)
      postalCode,
      country,          // ISO 3166
      tel,
      email,
  
      // meta
      timeCreated,      // in ms (Align with nslLoginMetaInfo)
      timeLastUsed,     // in ms
      timeLastModified, // in ms
      timesUsed
    },
    {
      // ...
    },
    // ...
  ],
  payments: [
    // out of scope
  ]
}
Whiteboard: [form autofill:M1] → [form autofill]
Flags: qe-verify-
Implemented in https://dxr.mozilla.org/mozilla-central/source/browser/extensions/formautofill/ProfileStorage.jsm
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.