Commit 714d27dd authored by Vasilii Sukhanov's avatar Vasilii Sukhanov Committed by Commit Bot

Expose compromised credentials via PasswordFormManager.

Bug: 1049200
Change-Id: I0c133925b1ce5ca0fb735ad4572036dd2dcdc50e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2187576Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#766442}
parent ae4402c0
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_MOCK_PASSWORD_FORM_MANAGER_FOR_UI_H_ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_MOCK_PASSWORD_FORM_MANAGER_FOR_UI_H_
#include "base/macros.h" #include "base/macros.h"
#include "components/password_manager/core/browser/compromised_credentials_table.h"
#include "components/password_manager/core/browser/password_form_manager_for_ui.h" #include "components/password_manager/core/browser/password_form_manager_for_ui.h"
#include "components/password_manager/core/browser/statistics_table.h" #include "components/password_manager/core/browser/statistics_table.h"
#include "testing/gmock/include/gmock/gmock.h" #include "testing/gmock/include/gmock/gmock.h"
...@@ -17,32 +18,51 @@ class MockPasswordFormManagerForUI : public PasswordFormManagerForUI { ...@@ -17,32 +18,51 @@ class MockPasswordFormManagerForUI : public PasswordFormManagerForUI {
MockPasswordFormManagerForUI(); MockPasswordFormManagerForUI();
~MockPasswordFormManagerForUI() override; ~MockPasswordFormManagerForUI() override;
MOCK_CONST_METHOD0(GetOrigin, const GURL&()); MOCK_METHOD(const GURL&, GetOrigin, (), (const override));
MOCK_CONST_METHOD0(GetBestMatches, MOCK_METHOD(const std::vector<const autofill::PasswordForm*>&,
const std::vector<const autofill::PasswordForm*>&()); GetBestMatches,
MOCK_CONST_METHOD0(GetFederatedMatches, (),
std::vector<const autofill::PasswordForm*>()); (const override));
MOCK_CONST_METHOD0(GetPendingCredentials, const autofill::PasswordForm&()); MOCK_METHOD(std::vector<const autofill::PasswordForm*>,
MOCK_CONST_METHOD0(GetCredentialSource, metrics_util::CredentialSourceType()); GetFederatedMatches,
MOCK_METHOD0(GetMetricsRecorder, PasswordFormMetricsRecorder*()); (),
MOCK_CONST_METHOD0(GetInteractionsStats, (const override));
base::span<const InteractionsStats>()); MOCK_METHOD(const autofill::PasswordForm&,
MOCK_CONST_METHOD0(IsBlacklisted, bool()); GetPendingCredentials,
MOCK_CONST_METHOD0(IsMovableToAccountStore, bool()); (),
MOCK_METHOD0(Save, void()); (const override));
MOCK_METHOD1(Update, MOCK_METHOD(metrics_util::CredentialSourceType,
void(const autofill::PasswordForm& credentials_to_update)); GetCredentialSource,
MOCK_METHOD1(OnUpdateUsernameFromPrompt, (),
void(const base::string16& new_username)); (const override));
MOCK_METHOD1(OnUpdatePasswordFromPrompt, MOCK_METHOD(PasswordFormMetricsRecorder*, GetMetricsRecorder, (), (override));
void(const base::string16& new_password)); MOCK_METHOD(base::span<const InteractionsStats>,
MOCK_METHOD0(OnNopeUpdateClicked, void()); GetInteractionsStats,
MOCK_METHOD0(OnNeverClicked, void()); (),
MOCK_METHOD1(OnNoInteraction, void(bool)); (const override));
MOCK_METHOD0(PermanentlyBlacklist, void()); MOCK_METHOD(base::span<const CompromisedCredentials>,
MOCK_METHOD0(OnPasswordsRevealed, void()); GetCompromisedCredentials,
MOCK_METHOD0(MoveCredentialsToAccountStore, void()); (),
MOCK_METHOD0(BlockMovingCredentialsToAccountStore, void()); (const override));
MOCK_METHOD(bool, IsBlacklisted, (), (const override));
MOCK_METHOD(bool, IsMovableToAccountStore, (), (const override));
MOCK_METHOD(void, Save, (), (override));
MOCK_METHOD(void, Update, (const autofill::PasswordForm&), (override));
MOCK_METHOD(void,
OnUpdateUsernameFromPrompt,
(const base::string16&),
(override));
MOCK_METHOD(void,
OnUpdatePasswordFromPrompt,
(const base::string16&),
(override));
MOCK_METHOD(void, OnNopeUpdateClicked, (), (override));
MOCK_METHOD(void, OnNeverClicked, (), (override));
MOCK_METHOD(void, OnNoInteraction, (bool), (override));
MOCK_METHOD(void, PermanentlyBlacklist, (), (override));
MOCK_METHOD(void, OnPasswordsRevealed, (), (override));
MOCK_METHOD(void, MoveCredentialsToAccountStore, (), (override));
MOCK_METHOD(void, BlockMovingCredentialsToAccountStore, (), (override));
DISALLOW_COPY_AND_ASSIGN(MockPasswordFormManagerForUI); DISALLOW_COPY_AND_ASSIGN(MockPasswordFormManagerForUI);
}; };
......
...@@ -262,6 +262,11 @@ base::span<const InteractionsStats> PasswordFormManager::GetInteractionsStats() ...@@ -262,6 +262,11 @@ base::span<const InteractionsStats> PasswordFormManager::GetInteractionsStats()
return base::make_span(form_fetcher_->GetInteractionsStats()); return base::make_span(form_fetcher_->GetInteractionsStats());
} }
base::span<const CompromisedCredentials>
PasswordFormManager::GetCompromisedCredentials() const {
return form_fetcher_->GetCompromisedCredentials();
}
bool PasswordFormManager::IsBlacklisted() const { bool PasswordFormManager::IsBlacklisted() const {
return form_fetcher_->IsBlacklisted() || newly_blacklisted_; return form_fetcher_->IsBlacklisted() || newly_blacklisted_;
} }
......
...@@ -144,6 +144,8 @@ class PasswordFormManager : public PasswordFormManagerForUI, ...@@ -144,6 +144,8 @@ class PasswordFormManager : public PasswordFormManagerForUI,
metrics_util::CredentialSourceType GetCredentialSource() const override; metrics_util::CredentialSourceType GetCredentialSource() const override;
PasswordFormMetricsRecorder* GetMetricsRecorder() override; PasswordFormMetricsRecorder* GetMetricsRecorder() override;
base::span<const InteractionsStats> GetInteractionsStats() const override; base::span<const InteractionsStats> GetInteractionsStats() const override;
base::span<const CompromisedCredentials> GetCompromisedCredentials()
const override;
bool IsBlacklisted() const override; bool IsBlacklisted() const override;
bool IsMovableToAccountStore() const override; bool IsMovableToAccountStore() const override;
......
...@@ -18,6 +18,7 @@ struct PasswordForm; ...@@ -18,6 +18,7 @@ struct PasswordForm;
namespace password_manager { namespace password_manager {
struct CompromisedCredentials;
struct InteractionsStats; struct InteractionsStats;
class PasswordFormMetricsRecorder; class PasswordFormMetricsRecorder;
...@@ -55,6 +56,10 @@ class PasswordFormManagerForUI { ...@@ -55,6 +56,10 @@ class PasswordFormManagerForUI {
// Statistics for recent password bubble usage. // Statistics for recent password bubble usage.
virtual base::span<const InteractionsStats> GetInteractionsStats() const = 0; virtual base::span<const InteractionsStats> GetInteractionsStats() const = 0;
// List of compromised passwords for the current site.
virtual base::span<const CompromisedCredentials> GetCompromisedCredentials()
const = 0;
// Determines if the user opted to 'never remember' passwords for this form. // Determines if the user opted to 'never remember' passwords for this form.
virtual bool IsBlacklisted() const = 0; virtual bool IsBlacklisted() const = 0;
......
...@@ -50,6 +50,8 @@ class PasswordDataForUI : public PasswordFormManagerForUI { ...@@ -50,6 +50,8 @@ class PasswordDataForUI : public PasswordFormManagerForUI {
metrics_util::CredentialSourceType GetCredentialSource() const override; metrics_util::CredentialSourceType GetCredentialSource() const override;
PasswordFormMetricsRecorder* GetMetricsRecorder() override; PasswordFormMetricsRecorder* GetMetricsRecorder() override;
base::span<const InteractionsStats> GetInteractionsStats() const override; base::span<const InteractionsStats> GetInteractionsStats() const override;
base::span<const CompromisedCredentials> GetCompromisedCredentials()
const override;
bool IsBlacklisted() const override; bool IsBlacklisted() const override;
bool IsMovableToAccountStore() const override; bool IsMovableToAccountStore() const override;
void Save() override; void Save() override;
...@@ -126,6 +128,11 @@ base::span<const InteractionsStats> PasswordDataForUI::GetInteractionsStats() ...@@ -126,6 +128,11 @@ base::span<const InteractionsStats> PasswordDataForUI::GetInteractionsStats()
return {}; return {};
} }
base::span<const CompromisedCredentials>
PasswordDataForUI::GetCompromisedCredentials() const {
return {};
}
bool PasswordDataForUI::IsBlacklisted() const { bool PasswordDataForUI::IsBlacklisted() const {
// 'true' would suppress the bubble. // 'true' would suppress the bubble.
return false; return false;
......
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