Commit 82530704 authored by Vadym Doroshenko's avatar Vadym Doroshenko Committed by Commit Bot

Introduce id in PasswordManagerDriver.

The main motivation of introducing driver id is that driver is
one-to-one to frames. And input element renederer ids are unique inside
one frame. So a pair (driver_id, input_id) is uniquely identifies input
element.

Bug: 959776
Change-Id: Ic01b16f59f862fb215d8a68bec9b73ccd48a7191
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1833612Reviewed-by: default avatarVasilii Sukhanov <vasilii@chromium.org>
Commit-Queue: Vadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701676}
parent db968236
......@@ -65,6 +65,8 @@ ContentPasswordManagerDriver::ContentPasswordManagerDriver(
password_autofill_manager_(this, autofill_client, client),
is_main_frame_(render_frame_host->GetParent() == nullptr),
password_manager_receiver_(this) {
static unsigned next_free_id = 0;
id_ = next_free_id++;
// For some frames |this| may be instantiated before log manager creation, so
// here we can not send logging state to renderer process for them. For such
// cases, after the log manager got ready later,
......@@ -79,8 +81,7 @@ ContentPasswordManagerDriver::ContentPasswordManagerDriver(
}
}
ContentPasswordManagerDriver::~ContentPasswordManagerDriver() {
}
ContentPasswordManagerDriver::~ContentPasswordManagerDriver() = default;
// static
ContentPasswordManagerDriver*
......@@ -98,6 +99,10 @@ void ContentPasswordManagerDriver::BindPendingReceiver(
password_manager_receiver_.Bind(std::move(pending_receiver));
}
int ContentPasswordManagerDriver::GetId() const {
return id_;
}
void ContentPasswordManagerDriver::FillPasswordForm(
const autofill::PasswordFormFillData& form_data) {
password_autofill_manager_.OnAddPasswordFillData(form_data);
......
......@@ -54,6 +54,7 @@ class ContentPasswordManagerDriver
pending_receiver);
// PasswordManagerDriver implementation.
int GetId() const override;
void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override;
void FormEligibleForGenerationFound(
......@@ -138,6 +139,8 @@ class ContentPasswordManagerDriver
// frame.
const bool is_main_frame_;
int id_;
mojo::AssociatedRemote<autofill::mojom::PasswordAutofillAgent>
password_autofill_agent_;
......
......@@ -37,8 +37,9 @@ class MockPasswordManagerDriver : public StubPasswordManagerDriver {
public:
MockPasswordManagerDriver() {}
~MockPasswordManagerDriver() override {}
~MockPasswordManagerDriver() override = default;
MOCK_CONST_METHOD0(GetId, int());
MOCK_METHOD1(FillPasswordForm, void(const PasswordFormFillData&));
MOCK_METHOD0(InformNoSavedCredentials, void());
MOCK_METHOD1(ShowInitialPasswordAccountSuggestions,
......
......@@ -34,6 +34,9 @@ class PasswordManagerDriver
PasswordManagerDriver() = default;
virtual ~PasswordManagerDriver() = default;
// Returns driver id which is unique in the current tab.
virtual int GetId() const = 0;
// Fills forms matching |form_data|.
virtual void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) = 0;
......
......@@ -6,10 +6,11 @@
namespace password_manager {
StubPasswordManagerDriver::StubPasswordManagerDriver() {
}
StubPasswordManagerDriver::StubPasswordManagerDriver() = default;
StubPasswordManagerDriver::~StubPasswordManagerDriver() = default;
StubPasswordManagerDriver::~StubPasswordManagerDriver() {
int StubPasswordManagerDriver::GetId() const {
return 0;
}
void StubPasswordManagerDriver::FillPasswordForm(
......
......@@ -19,6 +19,7 @@ class StubPasswordManagerDriver : public PasswordManagerDriver {
~StubPasswordManagerDriver() override;
// PasswordManagerDriver:
int GetId() const override;
void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override;
void GeneratedPasswordAccepted(const base::string16& password) override;
......
......@@ -54,6 +54,7 @@ class IOSChromePasswordManagerDriver
~IOSChromePasswordManagerDriver() override;
// password_manager::PasswordManagerDriver implementation.
int GetId() const override;
void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override;
void InformNoSavedCredentials() override;
......
......@@ -23,6 +23,11 @@ IOSChromePasswordManagerDriver::IOSChromePasswordManagerDriver(
IOSChromePasswordManagerDriver::~IOSChromePasswordManagerDriver() = default;
int IOSChromePasswordManagerDriver::GetId() const {
// There is only one driver per tab on iOS so returning 0 is fine.
return 0;
}
void IOSChromePasswordManagerDriver::FillPasswordForm(
const autofill::PasswordFormFillData& form_data) {
[delegate_ fillPasswordForm:form_data completionHandler:nil];
......
......@@ -45,6 +45,7 @@ class WebViewPasswordManagerDriver
~WebViewPasswordManagerDriver() override;
// password_manager::PasswordManagerDriver implementation.
int GetId() const override;
void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override;
void InformNoSavedCredentials() override;
......
......@@ -23,6 +23,11 @@ WebViewPasswordManagerDriver::WebViewPasswordManagerDriver(
WebViewPasswordManagerDriver::~WebViewPasswordManagerDriver() = default;
int WebViewPasswordManagerDriver::GetId() const {
// There is only one driver per tab on iOS so returning 0 is fine.
return 0;
}
void WebViewPasswordManagerDriver::FillPasswordForm(
const autofill::PasswordFormFillData& form_data) {
[delegate_ fillPasswordForm:form_data];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment