| Index: components/autofill/content/common/autofill_messages.h
|
| diff --git a/components/autofill/content/common/autofill_messages.h b/components/autofill/content/common/autofill_messages.h
|
| index 704999171cb7010adc02f3d48b29fe82e38cc8f6..3216d2d2c8c97043eaf109b593c7c236a14f2521 100644
|
| --- a/components/autofill/content/common/autofill_messages.h
|
| +++ b/components/autofill/content/common/autofill_messages.h
|
| @@ -8,14 +8,24 @@
|
| #include <vector>
|
|
|
| #include "base/strings/string16.h"
|
| +#include "base/time/time.h"
|
| #include "components/autofill/content/common/autofill_param_traits_macros.h"
|
| +#include "components/autofill/core/common/form_data.h"
|
| +#include "components/autofill/core/common/form_data_predictions.h"
|
| +#include "components/autofill/core/common/form_field_data.h"
|
| +#include "components/autofill/core/common/form_field_data_predictions.h"
|
| #include "components/autofill/core/common/password_form.h"
|
| +#include "components/autofill/core/common/password_form_field_prediction_map.h"
|
| +#include "components/autofill/core/common/password_form_fill_data.h"
|
| +#include "components/autofill/core/common/password_form_generation_data.h"
|
| #include "content/public/common/common_param_traits.h"
|
| #include "content/public/common/common_param_traits_macros.h"
|
| #include "ipc/ipc_message_macros.h"
|
| #include "ipc/ipc_message_utils.h"
|
| #include "ui/gfx/geometry/rect_f.h"
|
| #include "ui/gfx/ipc/gfx_param_traits.h"
|
| +#include "ui/gfx/ipc/skia/gfx_skia_param_traits.h"
|
| +#include "url/gurl.h"
|
|
|
| #define IPC_MESSAGE_START AutofillMsgStart
|
|
|
| @@ -24,6 +34,10 @@
|
|
|
| IPC_ENUM_TRAITS_MAX_VALUE(autofill::FormFieldData::RoleAttribute,
|
| autofill::FormFieldData::ROLE_ATTRIBUTE_OTHER)
|
| +
|
| +IPC_ENUM_TRAITS_MAX_VALUE(
|
| + autofill::PasswordFormFieldPredictionType,
|
| + autofill::PasswordFormFieldPredictionType::PREDICTION_MAX)
|
|
|
| IPC_ENUM_TRAITS_MAX_VALUE(base::i18n::TextDirection,
|
| base::i18n::TEXT_DIRECTION_NUM_DIRECTIONS - 1)
|
| @@ -48,6 +62,156 @@
|
| IPC_STRUCT_TRAITS_MEMBER(properties_mask)
|
| IPC_STRUCT_TRAITS_END()
|
|
|
| +IPC_STRUCT_TRAITS_BEGIN(autofill::FormFieldDataPredictions)
|
| + IPC_STRUCT_TRAITS_MEMBER(field)
|
| + IPC_STRUCT_TRAITS_MEMBER(signature)
|
| + IPC_STRUCT_TRAITS_MEMBER(heuristic_type)
|
| + IPC_STRUCT_TRAITS_MEMBER(server_type)
|
| + IPC_STRUCT_TRAITS_MEMBER(overall_type)
|
| + IPC_STRUCT_TRAITS_MEMBER(parseable_name)
|
| +IPC_STRUCT_TRAITS_END()
|
| +
|
| +IPC_STRUCT_TRAITS_BEGIN(autofill::FormDataPredictions)
|
| + IPC_STRUCT_TRAITS_MEMBER(data)
|
| + IPC_STRUCT_TRAITS_MEMBER(signature)
|
| + IPC_STRUCT_TRAITS_MEMBER(fields)
|
| +IPC_STRUCT_TRAITS_END()
|
| +
|
| +IPC_STRUCT_TRAITS_BEGIN(autofill::PasswordFormGenerationData)
|
| + IPC_STRUCT_TRAITS_MEMBER(name)
|
| + IPC_STRUCT_TRAITS_MEMBER(action)
|
| + IPC_STRUCT_TRAITS_MEMBER(generation_field)
|
| +IPC_STRUCT_TRAITS_END()
|
| +
|
| +IPC_STRUCT_TRAITS_BEGIN(autofill::UsernamesCollectionKey)
|
| + IPC_STRUCT_TRAITS_MEMBER(username)
|
| + IPC_STRUCT_TRAITS_MEMBER(password)
|
| +IPC_STRUCT_TRAITS_END()
|
| +
|
| +IPC_STRUCT_TRAITS_BEGIN(autofill::PasswordFormFillData)
|
| + IPC_STRUCT_TRAITS_MEMBER(name)
|
| + IPC_STRUCT_TRAITS_MEMBER(origin)
|
| + IPC_STRUCT_TRAITS_MEMBER(action)
|
| + IPC_STRUCT_TRAITS_MEMBER(username_field)
|
| + IPC_STRUCT_TRAITS_MEMBER(password_field)
|
| + IPC_STRUCT_TRAITS_MEMBER(preferred_realm)
|
| + IPC_STRUCT_TRAITS_MEMBER(additional_logins)
|
| + IPC_STRUCT_TRAITS_MEMBER(other_possible_usernames)
|
| + IPC_STRUCT_TRAITS_MEMBER(wait_for_username)
|
| + IPC_STRUCT_TRAITS_MEMBER(is_possible_change_password_form)
|
| +IPC_STRUCT_TRAITS_END()
|
| +
|
| +IPC_STRUCT_TRAITS_BEGIN(autofill::PasswordAndRealm)
|
| + IPC_STRUCT_TRAITS_MEMBER(password)
|
| + IPC_STRUCT_TRAITS_MEMBER(realm)
|
| +IPC_STRUCT_TRAITS_END()
|
| +
|
| +// Singly-included section for type definitions.
|
| +#ifndef COMPONENTS_AUTOFILL_CONTENT_COMMON_AUTOFILL_MESSAGES_H_
|
| +#define COMPONENTS_AUTOFILL_CONTENT_COMMON_AUTOFILL_MESSAGES_H_
|
| +
|
| +// IPC_MESSAGE macros fail on the std::map, when expanding. We need to define
|
| +// a type to avoid that.
|
| +using FormsPredictionsMap =
|
| + std::map<autofill::FormData, autofill::PasswordFormFieldPredictionMap>;
|
| +
|
| +#endif // COMPONENTS_AUTOFILL_CONTENT_COMMON_AUTOFILL_MESSAGES_H_
|
| +
|
| +// Autofill messages sent from the browser to the renderer.
|
| +
|
| +// Fill 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
|
| +// AutofillHostMsg_ShowPasswordSuggestions messages to the browser.
|
| +IPC_MESSAGE_ROUTED2(AutofillMsg_FillPasswordForm,
|
| + int /* key */,
|
| + autofill::PasswordFormFillData /* the fill form data*/)
|
| +
|
| +// Notification to start (|active| == true) or stop (|active| == false) logging
|
| +// the decisions made about saving the password.
|
| +IPC_MESSAGE_ROUTED1(AutofillMsg_SetLoggingState, bool /* active */)
|
| +
|
| +// Tells the renderer to populate the correct password fields with this
|
| +// generated password.
|
| +IPC_MESSAGE_ROUTED1(AutofillMsg_GeneratedPasswordAccepted,
|
| + base::string16 /* generated_password */)
|
| +
|
| +// Tells the renderer to enable the form classifier.
|
| +IPC_MESSAGE_ROUTED0(AutofillMsg_AllowToRunFormClassifier)
|
| +
|
| +// Tells the renderer to find the focused password form (assuming it exists).
|
| +// Renderer is expected to respond with the message
|
| +// |AutofillHostMsg_FocusedPasswordFormFound|.
|
| +IPC_MESSAGE_ROUTED0(AutofillMsg_FindFocusedPasswordForm)
|
| +
|
| +// 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 |AutofillHostMsg_ShowPasswordGenerationPopup|.
|
| +IPC_MESSAGE_ROUTED0(AutofillMsg_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".
|
| +IPC_MESSAGE_ROUTED1(AutofillMsg_FormNotBlacklisted,
|
| + autofill::PasswordForm /* form checked */)
|
| +
|
| +// Sent when Autofill manager gets the query response from the Autofill server
|
| +// and there are fields classified for password generation in the response.
|
| +IPC_MESSAGE_ROUTED1(
|
| + AutofillMsg_FoundFormsEligibleForGeneration,
|
| + std::vector<autofill::PasswordFormGenerationData> /* forms */)
|
| +
|
| +// Sent when Autofill manager gets the query response from the Autofill server
|
| +// which contains information about username and password fields for some forms.
|
| +// |predictions| maps forms to their username fields.
|
| +IPC_MESSAGE_ROUTED1(AutofillMsg_AutofillUsernameAndPasswordDataReceived,
|
| + FormsPredictionsMap /* predictions */)
|
| +
|
| +// Autofill messages sent from the renderer to the browser.
|
| +
|
| +// TODO(creis): check in the browser that the renderer actually has permission
|
| +// for the URL to avoid compromised renderers talking to the browser.
|
| +
|
| +// Notification that password forms have been seen that are candidates for
|
| +// filling/submitting by the password manager.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_PasswordFormsParsed,
|
| + std::vector<autofill::PasswordForm> /* forms */)
|
| +
|
| +// Notification that initial layout has occurred and the following password
|
| +// forms are visible on the page (e.g. not set to display:none.), and whether
|
| +// all frames in the page have been rendered.
|
| +IPC_MESSAGE_ROUTED2(AutofillHostMsg_PasswordFormsRendered,
|
| + std::vector<autofill::PasswordForm> /* forms */,
|
| + bool /* did_stop_loading */)
|
| +
|
| +// A ping to the browser that PasswordAutofillAgent was constructed. As a
|
| +// consequence, the browser sends AutofillMsg_SetLoggingState with the current
|
| +// state of the logging activity.
|
| +IPC_MESSAGE_ROUTED0(AutofillHostMsg_PasswordAutofillAgentConstructed)
|
| +
|
| +// Notification that this password form was submitted by the user.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_PasswordFormSubmitted,
|
| + autofill::PasswordForm /* form */)
|
| +
|
| +// Notification that in-page navigation happened and at this moment we have
|
| +// filled password form. We use this as a signal for successful login.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_InPageNavigation,
|
| + autofill::PasswordForm /* form */)
|
| +
|
| +// Sends |log| to browser for displaying to the user. Only strings passed as an
|
| +// argument to methods overriding SavePasswordProgressLogger::SendLog may become
|
| +// |log|, because those are guaranteed to be sanitized. Never pass a free-form
|
| +// string as |log|.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_RecordSavePasswordProgress,
|
| + std::string /* log */)
|
| +
|
| +// Queries the browser for Autofill suggestions for a form input field.
|
| +IPC_MESSAGE_ROUTED4(AutofillHostMsg_QueryFormFieldAutofill,
|
| + int /* id of this message */,
|
| + autofill::FormData /* the form */,
|
| + autofill::FormFieldData /* the form field */,
|
| + gfx::RectF /* input field bounds, window-relative */)
|
| +
|
| // Instructs the browser that generation is available for this particular form.
|
| // This is used for UMA stats.
|
| IPC_MESSAGE_ROUTED1(AutofillHostMsg_GenerationAvailableForForm,
|
| @@ -72,3 +236,35 @@
|
|
|
| // Instructs the browser to hide any password generation popups.
|
| IPC_MESSAGE_ROUTED0(AutofillHostMsg_HidePasswordGenerationPopup)
|
| +
|
| +// Instructs the browser to presave the form with generated password.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_PresaveGeneratedPassword,
|
| + autofill::PasswordForm)
|
| +
|
| +// Instructs the browser that form no longer contains a generated password and
|
| +// the presaved form should be removed.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_PasswordNoLongerGenerated,
|
| + autofill::PasswordForm)
|
| +
|
| +// Sends the outcome of HTML parsing based form classifier that detects the
|
| +// forms where password generation should be available.
|
| +IPC_MESSAGE_ROUTED2(AutofillHostMsg_SaveGenerationFieldDetectedByClassifier,
|
| + autofill::PasswordForm,
|
| + base::string16 /* generation field */)
|
| +
|
| +// Instruct the browser to show a popup with suggestions filled from data
|
| +// associated with |key|. The popup will use |text_direction| for displaying
|
| +// text.
|
| +IPC_MESSAGE_ROUTED5(
|
| + AutofillHostMsg_ShowPasswordSuggestions,
|
| + int /* key */,
|
| + base::i18n::TextDirection /* text_direction */,
|
| + base::string16 /* username typed by user */,
|
| + int /* options bitmask of autofill::ShowPasswordSuggestionsOptions */,
|
| + gfx::RectF /* input field bounds, window-relative */)
|
| +
|
| +// Inform the browser which password form is currently focused, as a response
|
| +// to the |AutofillMsg_FindFocusedPasswordForm| request. If no password form
|
| +// is focused, the response will contain an empty |autofill::PasswordForm|.
|
| +IPC_MESSAGE_ROUTED1(AutofillHostMsg_FocusedPasswordFormFound,
|
| + autofill::PasswordForm)
|
|
|