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( ...@@ -65,6 +65,8 @@ ContentPasswordManagerDriver::ContentPasswordManagerDriver(
password_autofill_manager_(this, autofill_client, client), password_autofill_manager_(this, autofill_client, client),
is_main_frame_(render_frame_host->GetParent() == nullptr), is_main_frame_(render_frame_host->GetParent() == nullptr),
password_manager_receiver_(this) { 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 // 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 // here we can not send logging state to renderer process for them. For such
// cases, after the log manager got ready later, // cases, after the log manager got ready later,
...@@ -79,8 +81,7 @@ ContentPasswordManagerDriver::ContentPasswordManagerDriver( ...@@ -79,8 +81,7 @@ ContentPasswordManagerDriver::ContentPasswordManagerDriver(
} }
} }
ContentPasswordManagerDriver::~ContentPasswordManagerDriver() { ContentPasswordManagerDriver::~ContentPasswordManagerDriver() = default;
}
// static // static
ContentPasswordManagerDriver* ContentPasswordManagerDriver*
...@@ -98,6 +99,10 @@ void ContentPasswordManagerDriver::BindPendingReceiver( ...@@ -98,6 +99,10 @@ void ContentPasswordManagerDriver::BindPendingReceiver(
password_manager_receiver_.Bind(std::move(pending_receiver)); password_manager_receiver_.Bind(std::move(pending_receiver));
} }
int ContentPasswordManagerDriver::GetId() const {
return id_;
}
void ContentPasswordManagerDriver::FillPasswordForm( void ContentPasswordManagerDriver::FillPasswordForm(
const autofill::PasswordFormFillData& form_data) { const autofill::PasswordFormFillData& form_data) {
password_autofill_manager_.OnAddPasswordFillData(form_data); password_autofill_manager_.OnAddPasswordFillData(form_data);
......
...@@ -54,6 +54,7 @@ class ContentPasswordManagerDriver ...@@ -54,6 +54,7 @@ class ContentPasswordManagerDriver
pending_receiver); pending_receiver);
// PasswordManagerDriver implementation. // PasswordManagerDriver implementation.
int GetId() const override;
void FillPasswordForm( void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override; const autofill::PasswordFormFillData& form_data) override;
void FormEligibleForGenerationFound( void FormEligibleForGenerationFound(
...@@ -138,6 +139,8 @@ class ContentPasswordManagerDriver ...@@ -138,6 +139,8 @@ class ContentPasswordManagerDriver
// frame. // frame.
const bool is_main_frame_; const bool is_main_frame_;
int id_;
mojo::AssociatedRemote<autofill::mojom::PasswordAutofillAgent> mojo::AssociatedRemote<autofill::mojom::PasswordAutofillAgent>
password_autofill_agent_; password_autofill_agent_;
......
...@@ -37,8 +37,9 @@ class MockPasswordManagerDriver : public StubPasswordManagerDriver { ...@@ -37,8 +37,9 @@ class MockPasswordManagerDriver : public StubPasswordManagerDriver {
public: public:
MockPasswordManagerDriver() {} MockPasswordManagerDriver() {}
~MockPasswordManagerDriver() override {} ~MockPasswordManagerDriver() override = default;
MOCK_CONST_METHOD0(GetId, int());
MOCK_METHOD1(FillPasswordForm, void(const PasswordFormFillData&)); MOCK_METHOD1(FillPasswordForm, void(const PasswordFormFillData&));
MOCK_METHOD0(InformNoSavedCredentials, void()); MOCK_METHOD0(InformNoSavedCredentials, void());
MOCK_METHOD1(ShowInitialPasswordAccountSuggestions, MOCK_METHOD1(ShowInitialPasswordAccountSuggestions,
......
...@@ -34,6 +34,9 @@ class PasswordManagerDriver ...@@ -34,6 +34,9 @@ class PasswordManagerDriver
PasswordManagerDriver() = default; PasswordManagerDriver() = default;
virtual ~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|. // Fills forms matching |form_data|.
virtual void FillPasswordForm( virtual void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) = 0; const autofill::PasswordFormFillData& form_data) = 0;
......
...@@ -6,10 +6,11 @@ ...@@ -6,10 +6,11 @@
namespace password_manager { namespace password_manager {
StubPasswordManagerDriver::StubPasswordManagerDriver() { StubPasswordManagerDriver::StubPasswordManagerDriver() = default;
} StubPasswordManagerDriver::~StubPasswordManagerDriver() = default;
StubPasswordManagerDriver::~StubPasswordManagerDriver() { int StubPasswordManagerDriver::GetId() const {
return 0;
} }
void StubPasswordManagerDriver::FillPasswordForm( void StubPasswordManagerDriver::FillPasswordForm(
......
...@@ -19,6 +19,7 @@ class StubPasswordManagerDriver : public PasswordManagerDriver { ...@@ -19,6 +19,7 @@ class StubPasswordManagerDriver : public PasswordManagerDriver {
~StubPasswordManagerDriver() override; ~StubPasswordManagerDriver() override;
// PasswordManagerDriver: // PasswordManagerDriver:
int GetId() const override;
void FillPasswordForm( void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override; const autofill::PasswordFormFillData& form_data) override;
void GeneratedPasswordAccepted(const base::string16& password) override; void GeneratedPasswordAccepted(const base::string16& password) override;
......
...@@ -54,6 +54,7 @@ class IOSChromePasswordManagerDriver ...@@ -54,6 +54,7 @@ class IOSChromePasswordManagerDriver
~IOSChromePasswordManagerDriver() override; ~IOSChromePasswordManagerDriver() override;
// password_manager::PasswordManagerDriver implementation. // password_manager::PasswordManagerDriver implementation.
int GetId() const override;
void FillPasswordForm( void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override; const autofill::PasswordFormFillData& form_data) override;
void InformNoSavedCredentials() override; void InformNoSavedCredentials() override;
......
...@@ -23,6 +23,11 @@ IOSChromePasswordManagerDriver::IOSChromePasswordManagerDriver( ...@@ -23,6 +23,11 @@ IOSChromePasswordManagerDriver::IOSChromePasswordManagerDriver(
IOSChromePasswordManagerDriver::~IOSChromePasswordManagerDriver() = default; 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( void IOSChromePasswordManagerDriver::FillPasswordForm(
const autofill::PasswordFormFillData& form_data) { const autofill::PasswordFormFillData& form_data) {
[delegate_ fillPasswordForm:form_data completionHandler:nil]; [delegate_ fillPasswordForm:form_data completionHandler:nil];
......
...@@ -45,6 +45,7 @@ class WebViewPasswordManagerDriver ...@@ -45,6 +45,7 @@ class WebViewPasswordManagerDriver
~WebViewPasswordManagerDriver() override; ~WebViewPasswordManagerDriver() override;
// password_manager::PasswordManagerDriver implementation. // password_manager::PasswordManagerDriver implementation.
int GetId() const override;
void FillPasswordForm( void FillPasswordForm(
const autofill::PasswordFormFillData& form_data) override; const autofill::PasswordFormFillData& form_data) override;
void InformNoSavedCredentials() override; void InformNoSavedCredentials() override;
......
...@@ -23,6 +23,11 @@ WebViewPasswordManagerDriver::WebViewPasswordManagerDriver( ...@@ -23,6 +23,11 @@ WebViewPasswordManagerDriver::WebViewPasswordManagerDriver(
WebViewPasswordManagerDriver::~WebViewPasswordManagerDriver() = default; 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( void WebViewPasswordManagerDriver::FillPasswordForm(
const autofill::PasswordFormFillData& form_data) { const autofill::PasswordFormFillData& form_data) {
[delegate_ fillPasswordForm: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