Commit 6f6edea6 authored by Ioana Pandele's avatar Ioana Pandele Committed by Commit Bot

[PwdCheckAndroid] Unregister PasswordCheckManager from observing BulkLeakCheckService

Bug: 1114136
Change-Id: Ie3f43b835d89908ef35541df879e17e14974ce87
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2343106
Commit-Queue: Ioana Pandele <ioanap@chromium.org>
Reviewed-by: default avatarVasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795958}
parent 806cbb86
...@@ -90,6 +90,11 @@ void PasswordCheckManager::OnCredentialDone( ...@@ -90,6 +90,11 @@ void PasswordCheckManager::OnCredentialDone(
// TODO(crbug.com/1102025): implement this. // TODO(crbug.com/1102025): implement this.
} }
void PasswordCheckManager::OnBulkCheckServiceShutDown() {
observed_bulk_leak_check_service_.Remove(
BulkLeakCheckServiceFactory::GetForProfile(profile_));
}
PasswordCheckUIStatus PasswordCheckManager::GetUIStatus(State state) const { PasswordCheckUIStatus PasswordCheckManager::GetUIStatus(State state) const {
switch (state) { switch (state) {
case State::kIdle: case State::kIdle:
......
...@@ -70,6 +70,7 @@ class PasswordCheckManager ...@@ -70,6 +70,7 @@ class PasswordCheckManager
password_manager::BulkLeakCheckServiceInterface::State state) override; password_manager::BulkLeakCheckServiceInterface::State state) override;
void OnCredentialDone(const password_manager::LeakCheckCredential& credential, void OnCredentialDone(const password_manager::LeakCheckCredential& credential,
password_manager::IsLeaked is_leaked) override; password_manager::IsLeaked is_leaked) override;
void OnBulkCheckServiceShutDown() override;
// Converts the state retrieved from the check service into a state that // Converts the state retrieved from the check service into a state that
// can be used by the UI to display appropriate messages. // can be used by the UI to display appropriate messages.
......
...@@ -147,6 +147,8 @@ void BulkLeakCheckService::RemoveObserver(Observer* obs) { ...@@ -147,6 +147,8 @@ void BulkLeakCheckService::RemoveObserver(Observer* obs) {
} }
void BulkLeakCheckService::Shutdown() { void BulkLeakCheckService::Shutdown() {
for (Observer& obs : observers_)
obs.OnBulkCheckServiceShutDown();
observers_.Clear(); observers_.Clear();
metrics_reporter_.reset(); metrics_reporter_.reset();
bulk_leak_check_.reset(); bulk_leak_check_.reset();
......
...@@ -54,6 +54,9 @@ class BulkLeakCheckServiceInterface : public KeyedService { ...@@ -54,6 +54,9 @@ class BulkLeakCheckServiceInterface : public KeyedService {
// Called when |credential| is analyzed. // Called when |credential| is analyzed.
virtual void OnCredentialDone(const LeakCheckCredential& credential, virtual void OnCredentialDone(const LeakCheckCredential& credential,
IsLeaked is_leaked) = 0; IsLeaked is_leaked) = 0;
// Called when the service is shut down.
virtual void OnBulkCheckServiceShutDown() {}
}; };
BulkLeakCheckServiceInterface(); BulkLeakCheckServiceInterface();
......
...@@ -146,6 +146,8 @@ TEST_F(BulkLeakCheckServiceTest, StartWithZeroPasswords) { ...@@ -146,6 +146,8 @@ TEST_F(BulkLeakCheckServiceTest, StartWithZeroPasswords) {
EXPECT_THAT( EXPECT_THAT(
histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"), histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"),
IsEmpty()); IsEmpty());
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, Running) { TEST_F(BulkLeakCheckServiceTest, Running) {
...@@ -169,6 +171,8 @@ TEST_F(BulkLeakCheckServiceTest, Running) { ...@@ -169,6 +171,8 @@ TEST_F(BulkLeakCheckServiceTest, Running) {
EXPECT_THAT( EXPECT_THAT(
histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"), histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"),
IsEmpty()); IsEmpty());
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, AppendRunning) { TEST_F(BulkLeakCheckServiceTest, AppendRunning) {
...@@ -193,6 +197,8 @@ TEST_F(BulkLeakCheckServiceTest, AppendRunning) { ...@@ -193,6 +197,8 @@ TEST_F(BulkLeakCheckServiceTest, AppendRunning) {
EXPECT_CALL(*weak_leak_check, GetPendingChecksCount) EXPECT_CALL(*weak_leak_check, GetPendingChecksCount)
.WillRepeatedly(Return(20)); .WillRepeatedly(Return(20));
EXPECT_EQ(20u, service().GetPendingChecksCount()); EXPECT_EQ(20u, service().GetPendingChecksCount());
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheck) { TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheck) {
...@@ -208,6 +214,8 @@ TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheck) { ...@@ -208,6 +214,8 @@ TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheck) {
EXPECT_THAT( EXPECT_THAT(
histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"), histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"),
IsEmpty()); IsEmpty());
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheckWithError) { TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheckWithError) {
...@@ -232,6 +240,8 @@ TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheckWithError) { ...@@ -232,6 +240,8 @@ TEST_F(BulkLeakCheckServiceTest, FailedToCreateCheckWithError) {
expected_counts); expected_counts);
histogram_tester().ExpectUniqueSample("PasswordManager.BulkCheck.Error", histogram_tester().ExpectUniqueSample("PasswordManager.BulkCheck.Error",
LeakDetectionError::kNotSignIn, 1); LeakDetectionError::kNotSignIn, 1);
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, CancelNothing) { TEST_F(BulkLeakCheckServiceTest, CancelNothing) {
...@@ -245,6 +255,8 @@ TEST_F(BulkLeakCheckServiceTest, CancelNothing) { ...@@ -245,6 +255,8 @@ TEST_F(BulkLeakCheckServiceTest, CancelNothing) {
EXPECT_THAT( EXPECT_THAT(
histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"), histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"),
IsEmpty()); IsEmpty());
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, CancelSomething) { TEST_F(BulkLeakCheckServiceTest, CancelSomething) {
...@@ -268,6 +280,8 @@ TEST_F(BulkLeakCheckServiceTest, CancelSomething) { ...@@ -268,6 +280,8 @@ TEST_F(BulkLeakCheckServiceTest, CancelSomething) {
EXPECT_THAT( EXPECT_THAT(
histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"), histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"),
::testing::SizeIs(2)); ::testing::SizeIs(2));
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, NotifyAboutLeak) { TEST_F(BulkLeakCheckServiceTest, NotifyAboutLeak) {
...@@ -293,6 +307,8 @@ TEST_F(BulkLeakCheckServiceTest, NotifyAboutLeak) { ...@@ -293,6 +307,8 @@ TEST_F(BulkLeakCheckServiceTest, NotifyAboutLeak) {
EXPECT_THAT( EXPECT_THAT(
histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"), histogram_tester().GetTotalCountsForPrefix("PasswordManager.BulkCheck"),
IsEmpty()); IsEmpty());
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, CheckFinished) { TEST_F(BulkLeakCheckServiceTest, CheckFinished) {
...@@ -325,6 +341,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinished) { ...@@ -325,6 +341,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinished) {
kMockElapsedTime, 1); kMockElapsedTime, 1);
histogram_tester().ExpectUniqueSample( histogram_tester().ExpectUniqueSample(
"PasswordManager.BulkCheck.TimePerCredential", kMockElapsedTime / 2, 1); "PasswordManager.BulkCheck.TimePerCredential", kMockElapsedTime / 2, 1);
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithLeakedCredential) { TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithLeakedCredential) {
...@@ -361,6 +379,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithLeakedCredential) { ...@@ -361,6 +379,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithLeakedCredential) {
kMockElapsedTime, 1); kMockElapsedTime, 1);
histogram_tester().ExpectUniqueSample( histogram_tester().ExpectUniqueSample(
"PasswordManager.BulkCheck.TimePerCredential", kMockElapsedTime / 2, 1); "PasswordManager.BulkCheck.TimePerCredential", kMockElapsedTime / 2, 1);
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, TwoChecksAfterEachOther) { TEST_F(BulkLeakCheckServiceTest, TwoChecksAfterEachOther) {
...@@ -417,6 +437,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithError) { ...@@ -417,6 +437,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithError) {
histogram_tester().ExpectUniqueSample( histogram_tester().ExpectUniqueSample(
"PasswordManager.BulkCheck.Error", "PasswordManager.BulkCheck.Error",
LeakDetectionError::kInvalidServerResponse, 1); LeakDetectionError::kInvalidServerResponse, 1);
service().RemoveObserver(&observer);
} }
TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithQuotaLimit) { TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithQuotaLimit) {
...@@ -443,6 +465,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithQuotaLimit) { ...@@ -443,6 +465,8 @@ TEST_F(BulkLeakCheckServiceTest, CheckFinishedWithQuotaLimit) {
expected_counts); expected_counts);
histogram_tester().ExpectUniqueSample("PasswordManager.BulkCheck.Error", histogram_tester().ExpectUniqueSample("PasswordManager.BulkCheck.Error",
LeakDetectionError::kQuotaLimit, 1); LeakDetectionError::kQuotaLimit, 1);
service().RemoveObserver(&observer);
} }
} // namespace } // namespace
......
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