blob: 0882b3116cb2b650091bd297dfe0d304e51a0b1c [file] [log] [blame]
// 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/content/common/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 currently selected node's value.
FillFieldWithValue(mojo_base.mojom.String16 value);
// Sets the suggested value for the currently previewed node.
PreviewFieldWithValue(mojo_base.mojom.String16 value);
// Sets the currently selected node's value to be the given data list value.
AcceptDataListSuggestion(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);
// Sent when a password form is initially detected and suggestions should be
// shown. Used by the fill-on-select experiment.
// |key| is the unique id associated with the password form fill data.
ShowInitialPasswordAccountSuggestions(int32 key,
PasswordFormFillData form_data);
// 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);
};
// 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. |key| serves for
// identifying the fill form data in subsequent
// ShowPasswordSuggestions messages to the browser.
FillPasswordForm(int32 key, PasswordFormFillData form_data);
// 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);
// Sent when Autofill manager gets the query response from the Autofill server
// which contains information about username and password for some forms.
// |predictions| maps forms to their username fields.
AutofillUsernameAndPasswordDataReceived(FormsPredictionsMap predictions);
// Tells the renderer to find the focused password form (assuming it exists).
// Renderer is expected to return the found password form. If no password form
// is focused, the response will contain an empty |autofill::PasswordForm|.
FindFocusedPasswordForm() => (PasswordForm form);
};
// 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 responding to the
// browser with the message |ShowPasswordGenerationPopup|.
UserTriggeredGeneratePassword();
// Tells the renderer that this password form is not blacklisted. A form can
// be blacklisted if a user chooses "never save passwords for this site".
FormNotBlacklisted(PasswordForm form);
// Sent when Autofill manager gets the query response from the Autofill server
// and there are fields classified for password generation in the response.
FoundFormsEligibleForGeneration(array<PasswordFormGenerationData> forms);
// Tells the renderer to enable the form classifier.
AllowToRunFormClassifier();
};