File: README.md

package info (click to toggle)
chromium 138.0.7204.157-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,864 kB
  • sloc: cpp: 34,936,859; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,967; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (25 lines) | stat: -rw-r--r-- 1,368 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Fast Checkout

Fast Checkout is an Android-only feature to fill both the address and the
payments form in a checkout funnel with a single user interaction.

To achieve that, Fast Checkout shows a bottomsheet after the user interacts
with the first form in a recognized checkout flow. On that bottomsheet, the
user confirms both their address and their payments data. Submitting the
bottomsheet triggers filling both forms, potentially across navigations. Fast
Checkout does not navigate itself. Instead, it observes newly parsed forms
and fills the relevant ones after they become available.

## High-level architecture

- `FastCheckoutTabHelper` listens for navigations. If a URL is a checkout URL,
  asks `FastCheckoutCapabilitiesFetcher` to update its list of supported
  domains. `FastCheckoutTabHelper` is created for every `WebContents`.
- `FastCheckoutCapabilitiesFetcher` obtains supported checkout funnels from a
  remote server and keeps them in cache. It is a `KeyedService` with a lifetime
  mirroring that of the user's `Profile`.
- `FastCheckoutClient` contains most of the actual logic. It is notified about
  user interactions with form fields (and can intervene to show UI), learns
  about navigations and newly seen forms, and triggers filling.
  It is owned by `ChromeAutofillClient` and has, thus, approximately the
  lifetime of a `WebContents`.