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