-
Notifications
You must be signed in to change notification settings - Fork 6.6k
/
autofill_agent.mojom
137 lines (107 loc) · 6.04 KB
/
autofill_agent.mojom
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module autofill.mojom;
import "components/autofill/core/common/mojom/autofill_types.mojom";
import "mojo/public/mojom/base/string16.mojom";
// There is one instance of this interface per render frame in the render
// process. All methods are called by browser on renderer.
interface AutofillAgent {
// Instructs the renderer to fill the active form with the given form data.
// Please refer AutofillDriver.QueryFormFieldAutofill comments about the |id|.
FillForm(int32 id, FormData form);
// Instructs the renderer to preview the active form with the given form data.
// Please refer AutofillDriver.QueryFormFieldAutofill comments about the |id|.
PreviewForm(int32 id, FormData form);
// Sends the heuristic and server field type predictions to the renderer.
FieldTypePredictionsAvailable(array<FormDataPredictions> forms);
// Clears the currently displayed Autofill results of the current section.
// The current section is the section to which the element corresponding to
// the last request belongs.
ClearSection();
// Tells the renderer that the Autofill previewed form should be cleared.
ClearPreviewedForm();
// Sets the value of |field| (if it is still the currently selected node).
FillFieldWithValue(FieldRendererId field, mojo_base.mojom.String16 value);
// Sets the suggested value of |field| (if it is still the currently selected
// node).
PreviewFieldWithValue(FieldRendererId field, mojo_base.mojom.String16 value);
// Sets the autofill/autocomplete suggestion availability of |field| (if it is
// still the currently selected node).
SetSuggestionAvailability(FieldRendererId field, AutofillState type);
// Sets the value of |field| (if it is still the currently selected node).
// to the given data list value.
AcceptDataListSuggestion(FieldRendererId field,
mojo_base.mojom.String16 value);
// Tells the renderer to fill the username and password with with given
// values.
FillPasswordSuggestion(mojo_base.mojom.String16 username,
mojo_base.mojom.String16 password);
// Tells the renderer to preview the username and password with the given
// values.
PreviewPasswordSuggestion(mojo_base.mojom.String16 username,
mojo_base.mojom.String16 password);
// Configures the render to require, or not, a user gesture before notifying
// the autofill agent of a field change. The default is true. Bypassing the
// user gesture check should only used for Android Webview, which needs to
// be notified of every change to the field.
// Note: The Android platform autofill framework only sends values to the
// autofill service with the user's consent, so the gesture check is
// redundant there anyway.
SetUserGestureRequired(bool required);
// Configures the render to require, or not, the secure context to query
// autofill suggestion, the default is false.
SetSecureContextRequired(bool required);
// Configures whether scroll is required in order to complete focus. The default is true.
SetFocusRequiresScroll(bool require);
// Configures whether AutofillAgent will query password field autofill suggestions. The default is false.
SetQueryPasswordSuggestion(bool query);
// Get form element's form and field data. The form field is given by a
// selector returning an arbitrary number of results and an index for
// selecting the specified result.
GetElementFormAndFieldDataAtIndex(string selector, int32 index) => (
autofill.mojom.FormData form, autofill.mojom.FormFieldData field);
// Set whether or not an assistant action is currently running an action.
SetAssistantActionState(bool running);
// Allows heavy scraping of form data (e.g., button titles for
// unowned forms).
EnableHeavyFormDataScraping();
// Update fields that are eligible to show manual filling on form interaction.
SetFieldsEligibleForManualFilling(array<FieldRendererId> fields);
};
// There is one instance of this interface per render frame in the render
// process.
interface PasswordAutofillAgent {
// Fills a password form and prepare field autocomplete for multiple
// matching logins. Lets the renderer know if it should disable the popup
// because the browser process will own the popup UI.
FillPasswordForm(PasswordFormFillData form_data);
// Lets the renderer know that there are no saved credentials for filling.
// This is the "no results" equivalent of FillPasswordForm.
InformNoSavedCredentials(bool should_show_popup_without_passwords);
// Fills the given |credential| into the last focused text input.
FillIntoFocusedField(bool is_password, mojo_base.mojom.String16 credential);
// Notification to start (|active| == true) or stop (|active| == false)
// logging the decisions made about saving the password.
SetLoggingState(bool active);
// Informs the renderer that the Touch To Fill sheet has been closed.
// Indicates whether the virtual keyboard should be shown instead.
TouchToFillClosed(bool show_virtual_keyboard);
// Annotate password related (username, password) DOM input elements with
// corresponding HTML attributes. It is used only for debugging.
AnnotateFieldsWithParsingResult(ParsingResult parsing_result);
};
// There is one instance of this interface per render frame in the render
// process.
interface PasswordGenerationAgent {
// Tells the renderer to populate the correct password fields with this
// generated password.
GeneratedPasswordAccepted(mojo_base.mojom.String16 generated_password);
// Tells the renderer to find a focused element, and if it is a password field
// eligible for generation then to trigger generation by returning
// non-empty PasswordGenerationUIData.
TriggeredGeneratePassword() => (PasswordGenerationUIData? data);
// Tells the renderer that a password can be generated on the fields
// identified by |form|.
FoundFormEligibleForGeneration(PasswordFormGenerationData form);
};