tree: f65cb060e8474f3d02a5d2fb4d85a688aa76fe5e [path history] [tgz]
  1. address_on_typing/
  2. autofill_ai/
  3. compose/
  4. fast_checkout/
  5. glic/
  6. identity_credential/
  7. one_time_tokens/
  8. optimization_guide/
  9. password_manager/
  10. plus_addresses/
  11. touch_to_fill/
  12. password_form_classification.h
  13. README.md
  14. README_class.plantuml
  15. README_class.png
  16. README_obj_suggestions.plantuml
  17. README_obj_suggestions.png
  18. README_seq_create.plantuml
  19. README_seq_create.png
  20. README_seq_generate.plantuml
  21. README_seq_generate.png
components/autofill/core/browser/integrators/README.md

Component Autofill Integrators

Interfaces in this folder are used for dependency injection from directories that depend on //components/autofill.

Class relationship of integrators to the BrowserAutofillManager

The following diagram describes how the BrowserAutofillManager uses different delegates to compose suggestions from various sources into the autofill dropdown.

image

Eventually, the PasswordAutofillManager shouldn't need to implement the AutofillSuggestionDelegate because the BrowserAutofillManager will request and dispatch suggestions through the delegate.

Creation of a delegate for the BrowserAutofillManager

As shown in the diagram below, a new delegate is created when the underlying feature is initialized. The integrator allows the BrowserAutofillManager to request a delegate when it's required instead of needing to inject it early on.

image

BrowserAutofillManager composes suggestions from delegates

As shown in the diagram below, the BrowserAutofillManager will request for each delegate whether suggestions are available. Each delegate assembles information from the available feature sources and forwards a collection of suggestion to the BrowserAutofillManager. The latter orders suggestions and sends them out for display. image

For some specific surfaces (and in the transitioning period), the BrowserAutofillManager delegates the suggestion handling to the specific delegate entirely. E.g. on Android, the password delegate handles the showing of a keyboard-replacing surface when the BrowserAutofillManager invokes it: image