#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "components/autofill/content/common/mojom/autofill_driver.mojom.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "components/autofill/content/common/mojom/autofill_driver.mojom-params-data.h"
#include "components/autofill/content/common/mojom/autofill_driver.mojom-shared-message-ids.h"
#include "components/autofill/content/common/mojom/autofill_driver.mojom-import-headers.h"
#include "components/autofill/content/common/mojom/autofill_driver.mojom-test-utils.h"
namespace autofill::mojom {
const char AutofillDriver::Name_[] = …;
AutofillDriver::IPCStableHashFunction AutofillDriver::MessageToMethodInfo_(mojo::Message& message) { … }
const char* AutofillDriver::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t AutofillDriver::FormsSeen_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::FormSubmitted_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::CaretMovedInFormField_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::TextFieldDidChange_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::DidEndTextFieldEditing_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::TextFieldDidScroll_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::SelectControlDidChange_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::SelectOrSelectListFieldOptionsDidChange_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::FocusOnFormField_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::FocusOnNonFormField_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::AskForValuesToFill_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::HidePopup_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::DidFillAutofillFormData_Sym::IPCStableHash() { … }
uint32_t AutofillDriver::JavaScriptChangedAutofilledValue_Sym::IPCStableHash() { … }
# endif
AutofillDriverProxy::AutofillDriverProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void AutofillDriverProxy::FormsSeen(
const std::vector<::autofill::FormData>& in_updated_forms, const std::vector<::autofill::FormRendererId>& in_removed_forms) { … }
void AutofillDriverProxy::FormSubmitted(
const ::autofill::FormData& in_form, bool in_known_success, ::autofill::mojom::SubmissionSource in_source) { … }
void AutofillDriverProxy::CaretMovedInFormField(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id, const ::gfx::Rect& in_caret_bounds) { … }
void AutofillDriverProxy::TextFieldDidChange(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id, ::base::TimeTicks in_timestamp) { … }
void AutofillDriverProxy::DidEndTextFieldEditing(
) { … }
void AutofillDriverProxy::TextFieldDidScroll(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id) { … }
void AutofillDriverProxy::SelectControlDidChange(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id) { … }
void AutofillDriverProxy::SelectOrSelectListFieldOptionsDidChange(
const ::autofill::FormData& in_form) { … }
void AutofillDriverProxy::FocusOnFormField(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id) { … }
void AutofillDriverProxy::FocusOnNonFormField(
) { … }
void AutofillDriverProxy::AskForValuesToFill(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id, const ::gfx::Rect& in_caret_bounds, ::autofill::mojom::AutofillSuggestionTriggerSource in_trigger_source) { … }
void AutofillDriverProxy::HidePopup(
) { … }
void AutofillDriverProxy::DidFillAutofillFormData(
const ::autofill::FormData& in_form, ::base::TimeTicks in_timestamp) { … }
void AutofillDriverProxy::JavaScriptChangedAutofilledValue(
const ::autofill::FormData& in_form, ::autofill::FieldRendererId in_field_id, const ::std::u16string& in_old_value, bool in_formatting_only) { … }
bool AutofillDriverStubDispatch::Accept(
AutofillDriver* impl,
mojo::Message* message) { … }
bool AutofillDriverStubDispatch::AcceptWithResponder(
AutofillDriver* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kAutofillDriverValidationInfo[] = …;
bool AutofillDriverRequestValidator::Accept(mojo::Message* message) { … }
const char PasswordManagerDriver::Name_[] = …;
PasswordManagerDriver::IPCStableHashFunction PasswordManagerDriver::MessageToMethodInfo_(mojo::Message& message) { … }
const char* PasswordManagerDriver::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t PasswordManagerDriver::PasswordFormsParsed_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::PasswordFormsRendered_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::PasswordFormSubmitted_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::InformAboutUserInput_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::DynamicFormSubmission_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::PasswordFormCleared_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::RecordSavePasswordProgress_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::UserModifiedPasswordField_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::UserModifiedNonPasswordField_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::ShowPasswordSuggestions_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::CheckSafeBrowsingReputation_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::FocusedInputChanged_Sym::IPCStableHash() { … }
uint32_t PasswordManagerDriver::LogFirstFillingResult_Sym::IPCStableHash() { … }
# endif
PasswordManagerDriverProxy::PasswordManagerDriverProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void PasswordManagerDriverProxy::PasswordFormsParsed(
const std::vector<::autofill::FormData>& in_forms_data) { … }
void PasswordManagerDriverProxy::PasswordFormsRendered(
const std::vector<::autofill::FormData>& in_visible_forms_data) { … }
void PasswordManagerDriverProxy::PasswordFormSubmitted(
const ::autofill::FormData& in_form_data) { … }
void PasswordManagerDriverProxy::InformAboutUserInput(
const ::autofill::FormData& in_form_data) { … }
void PasswordManagerDriverProxy::DynamicFormSubmission(
::autofill::mojom::SubmissionIndicatorEvent in_submission_indication_event) { … }
void PasswordManagerDriverProxy::PasswordFormCleared(
const ::autofill::FormData& in_form_data) { … }
void PasswordManagerDriverProxy::RecordSavePasswordProgress(
const std::string& in_log) { … }
void PasswordManagerDriverProxy::UserModifiedPasswordField(
) { … }
void PasswordManagerDriverProxy::UserModifiedNonPasswordField(
::autofill::FieldRendererId in_renderer_id, const ::std::u16string& in_value, bool in_autocomplete_attribute_has_username, bool in_is_likely_otp) { … }
void PasswordManagerDriverProxy::ShowPasswordSuggestions(
const ::autofill::PasswordSuggestionRequest& in_request) { … }
void PasswordManagerDriverProxy::CheckSafeBrowsingReputation(
const ::GURL& in_form_action, const ::GURL& in_frame_url) { … }
void PasswordManagerDriverProxy::FocusedInputChanged(
::autofill::FieldRendererId in_focused_field_id, ::autofill::mojom::FocusedFieldType in_focused_field_type) { … }
void PasswordManagerDriverProxy::LogFirstFillingResult(
::autofill::FormRendererId in_form_renderer_id, int32_t in_result) { … }
bool PasswordManagerDriverStubDispatch::Accept(
PasswordManagerDriver* impl,
mojo::Message* message) { … }
bool PasswordManagerDriverStubDispatch::AcceptWithResponder(
PasswordManagerDriver* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kPasswordManagerDriverValidationInfo[] = …;
bool PasswordManagerDriverRequestValidator::Accept(mojo::Message* message) { … }
const char PasswordGenerationDriver::Name_[] = …;
PasswordGenerationDriver::IPCStableHashFunction PasswordGenerationDriver::MessageToMethodInfo_(mojo::Message& message) { … }
const char* PasswordGenerationDriver::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t PasswordGenerationDriver::AutomaticGenerationAvailable_Sym::IPCStableHash() { … }
uint32_t PasswordGenerationDriver::ShowPasswordEditingPopup_Sym::IPCStableHash() { … }
uint32_t PasswordGenerationDriver::PasswordGenerationRejectedByTyping_Sym::IPCStableHash() { … }
uint32_t PasswordGenerationDriver::PresaveGeneratedPassword_Sym::IPCStableHash() { … }
uint32_t PasswordGenerationDriver::PasswordNoLongerGenerated_Sym::IPCStableHash() { … }
uint32_t PasswordGenerationDriver::FrameWasScrolled_Sym::IPCStableHash() { … }
uint32_t PasswordGenerationDriver::GenerationElementLostFocus_Sym::IPCStableHash() { … }
# endif
PasswordGenerationDriverProxy::PasswordGenerationDriverProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void PasswordGenerationDriverProxy::AutomaticGenerationAvailable(
const ::autofill::password_generation::PasswordGenerationUIData& in_password_generation_ui_data) { … }
void PasswordGenerationDriverProxy::ShowPasswordEditingPopup(
const ::gfx::RectF& in_bounds, const ::autofill::FormData& in_form_data, ::autofill::FieldRendererId in_field_renderer_id, const ::std::u16string& in_password_value) { … }
void PasswordGenerationDriverProxy::PasswordGenerationRejectedByTyping(
) { … }
void PasswordGenerationDriverProxy::PresaveGeneratedPassword(
const ::autofill::FormData& in_form_data, const ::std::u16string& in_password_value) { … }
void PasswordGenerationDriverProxy::PasswordNoLongerGenerated(
const ::autofill::FormData& in_form_data) { … }
void PasswordGenerationDriverProxy::FrameWasScrolled(
) { … }
void PasswordGenerationDriverProxy::GenerationElementLostFocus(
) { … }
bool PasswordGenerationDriverStubDispatch::Accept(
PasswordGenerationDriver* impl,
mojo::Message* message) { … }
bool PasswordGenerationDriverStubDispatch::AcceptWithResponder(
PasswordGenerationDriver* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kPasswordGenerationDriverValidationInfo[] = …;
bool PasswordGenerationDriverRequestValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
}
namespace autofill::mojom {
void AutofillDriverInterceptorForTesting::FormsSeen(const std::vector<::autofill::FormData>& updated_forms, const std::vector<::autofill::FormRendererId>& removed_forms) { … }
void AutofillDriverInterceptorForTesting::FormSubmitted(const ::autofill::FormData& form, bool known_success, ::autofill::mojom::SubmissionSource source) { … }
void AutofillDriverInterceptorForTesting::CaretMovedInFormField(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id, const ::gfx::Rect& caret_bounds) { … }
void AutofillDriverInterceptorForTesting::TextFieldDidChange(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id, ::base::TimeTicks timestamp) { … }
void AutofillDriverInterceptorForTesting::DidEndTextFieldEditing() { … }
void AutofillDriverInterceptorForTesting::TextFieldDidScroll(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id) { … }
void AutofillDriverInterceptorForTesting::SelectControlDidChange(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id) { … }
void AutofillDriverInterceptorForTesting::SelectOrSelectListFieldOptionsDidChange(const ::autofill::FormData& form) { … }
void AutofillDriverInterceptorForTesting::FocusOnFormField(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id) { … }
void AutofillDriverInterceptorForTesting::FocusOnNonFormField() { … }
void AutofillDriverInterceptorForTesting::AskForValuesToFill(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id, const ::gfx::Rect& caret_bounds, ::autofill::mojom::AutofillSuggestionTriggerSource trigger_source) { … }
void AutofillDriverInterceptorForTesting::HidePopup() { … }
void AutofillDriverInterceptorForTesting::DidFillAutofillFormData(const ::autofill::FormData& form, ::base::TimeTicks timestamp) { … }
void AutofillDriverInterceptorForTesting::JavaScriptChangedAutofilledValue(const ::autofill::FormData& form, ::autofill::FieldRendererId field_id, const ::std::u16string& old_value, bool formatting_only) { … }
AutofillDriverAsyncWaiter::AutofillDriverAsyncWaiter(
AutofillDriver* proxy) : … { … }
AutofillDriverAsyncWaiter::~AutofillDriverAsyncWaiter() = default;
void PasswordManagerDriverInterceptorForTesting::PasswordFormsParsed(const std::vector<::autofill::FormData>& forms_data) { … }
void PasswordManagerDriverInterceptorForTesting::PasswordFormsRendered(const std::vector<::autofill::FormData>& visible_forms_data) { … }
void PasswordManagerDriverInterceptorForTesting::PasswordFormSubmitted(const ::autofill::FormData& form_data) { … }
void PasswordManagerDriverInterceptorForTesting::InformAboutUserInput(const ::autofill::FormData& form_data) { … }
void PasswordManagerDriverInterceptorForTesting::DynamicFormSubmission(::autofill::mojom::SubmissionIndicatorEvent submission_indication_event) { … }
void PasswordManagerDriverInterceptorForTesting::PasswordFormCleared(const ::autofill::FormData& form_data) { … }
void PasswordManagerDriverInterceptorForTesting::RecordSavePasswordProgress(const std::string& log) { … }
void PasswordManagerDriverInterceptorForTesting::UserModifiedPasswordField() { … }
void PasswordManagerDriverInterceptorForTesting::UserModifiedNonPasswordField(::autofill::FieldRendererId renderer_id, const ::std::u16string& value, bool autocomplete_attribute_has_username, bool is_likely_otp) { … }
void PasswordManagerDriverInterceptorForTesting::ShowPasswordSuggestions(const ::autofill::PasswordSuggestionRequest& request) { … }
void PasswordManagerDriverInterceptorForTesting::CheckSafeBrowsingReputation(const ::GURL& form_action, const ::GURL& frame_url) { … }
void PasswordManagerDriverInterceptorForTesting::FocusedInputChanged(::autofill::FieldRendererId focused_field_id, ::autofill::mojom::FocusedFieldType focused_field_type) { … }
void PasswordManagerDriverInterceptorForTesting::LogFirstFillingResult(::autofill::FormRendererId form_renderer_id, int32_t result) { … }
PasswordManagerDriverAsyncWaiter::PasswordManagerDriverAsyncWaiter(
PasswordManagerDriver* proxy) : … { … }
PasswordManagerDriverAsyncWaiter::~PasswordManagerDriverAsyncWaiter() = default;
void PasswordGenerationDriverInterceptorForTesting::AutomaticGenerationAvailable(const ::autofill::password_generation::PasswordGenerationUIData& password_generation_ui_data) { … }
void PasswordGenerationDriverInterceptorForTesting::ShowPasswordEditingPopup(const ::gfx::RectF& bounds, const ::autofill::FormData& form_data, ::autofill::FieldRendererId field_renderer_id, const ::std::u16string& password_value) { … }
void PasswordGenerationDriverInterceptorForTesting::PasswordGenerationRejectedByTyping() { … }
void PasswordGenerationDriverInterceptorForTesting::PresaveGeneratedPassword(const ::autofill::FormData& form_data, const ::std::u16string& password_value) { … }
void PasswordGenerationDriverInterceptorForTesting::PasswordNoLongerGenerated(const ::autofill::FormData& form_data) { … }
void PasswordGenerationDriverInterceptorForTesting::FrameWasScrolled() { … }
void PasswordGenerationDriverInterceptorForTesting::GenerationElementLostFocus() { … }
PasswordGenerationDriverAsyncWaiter::PasswordGenerationDriverAsyncWaiter(
PasswordGenerationDriver* proxy) : … { … }
PasswordGenerationDriverAsyncWaiter::~PasswordGenerationDriverAsyncWaiter() = default;
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif