Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Unified Diff: components/password_manager/core/browser/password_store.cc

Issue 911323003: Simplify GetLoginsRequest, and let PasswordStore::GetLoginsImpl take scoped_ptr<GetLoginsRequest> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ps_fill_logins
Patch Set: Fix another Win compiler error. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/password_store.cc
diff --git a/components/password_manager/core/browser/password_store.cc b/components/password_manager/core/browser/password_store.cc
index 9fdec8376fb689fdc90aef2049046b50dde62ab0..f1f3ab5232f214a6b53a74f7f75118223ddb0a9e 100644
--- a/components/password_manager/core/browser/password_store.cc
+++ b/components/password_manager/core/browser/password_store.cc
@@ -43,24 +43,23 @@ PasswordStore::GetLoginsRequest::GetLoginsRequest(
PasswordStore::GetLoginsRequest::~GetLoginsRequest() {
}
-void PasswordStore::GetLoginsRequest::ApplyIgnoreLoginsCutoff() {
+void PasswordStore::GetLoginsRequest::NotifyConsumerWithResults(
+ ScopedVector<autofill::PasswordForm> results) {
if (!ignore_logins_cutoff_.is_null()) {
ScopedVector<autofill::PasswordForm> remaining_logins;
- remaining_logins.reserve(result_.size());
- for (auto& login : result_) {
+ remaining_logins.reserve(results.size());
+ for (auto& login : results) {
if (login->date_created >= ignore_logins_cutoff_) {
remaining_logins.push_back(login);
login = nullptr;
}
}
- remaining_logins.swap(result_);
+ results = remaining_logins.Pass();
}
-}
-void PasswordStore::GetLoginsRequest::ForwardResult() {
origin_loop_->PostTask(
FROM_HERE, base::Bind(&PasswordStoreConsumer::OnGetPasswordStoreResults,
- consumer_weak_, base::Passed(&result_)));
+ consumer_weak_, base::Passed(&results)));
}
PasswordStore::PasswordStore(
@@ -127,11 +126,8 @@ void PasswordStore::GetLogins(const PasswordForm& form,
}
scoped_ptr<GetLoginsRequest> request(new GetLoginsRequest(consumer));
request->set_ignore_logins_cutoff(ignore_logins_cutoff);
-
- ConsumerCallbackRunner callback_runner =
- base::Bind(&MoveAndForwardLoginsResult, base::Passed(&request));
ScheduleTask(base::Bind(&PasswordStore::GetLoginsImpl, this, form,
- prompt_policy, callback_runner));
+ prompt_policy, base::Passed(&request)));
}
void PasswordStore::GetAutofillableLogins(PasswordStoreConsumer* consumer) {
@@ -196,27 +192,12 @@ PasswordStore::GetBackgroundTaskRunner() {
return db_thread_runner_;
}
-void PasswordStore::GetLoginsImpl(
- const autofill::PasswordForm& form,
- AuthorizationPromptPolicy prompt_policy,
- const ConsumerCallbackRunner& callback_runner) {
- callback_runner.Run(FillMatchingLogins(form, prompt_policy));
+void PasswordStore::GetLoginsImpl(const autofill::PasswordForm& form,
+ AuthorizationPromptPolicy prompt_policy,
+ scoped_ptr<GetLoginsRequest> request) {
+ request->NotifyConsumerWithResults(FillMatchingLogins(form, prompt_policy));
}
-// static
-void PasswordStore::ForwardLoginsResult(scoped_ptr<GetLoginsRequest> request) {
- request->ApplyIgnoreLoginsCutoff();
- request->ForwardResult();
-}
-
-// static
-void PasswordStore::MoveAndForwardLoginsResult(
- scoped_ptr<PasswordStore::GetLoginsRequest> request,
- ScopedVector<autofill::PasswordForm> matched_forms) {
- DCHECK(request->result()->empty());
- request->result()->swap(matched_forms);
- ForwardLoginsResult(request.Pass());
-}
void PasswordStore::LogStatsForBulkDeletion(int num_deletions) {
UMA_HISTOGRAM_COUNTS("PasswordManager.NumPasswordsDeletedByBulkDelete",

Powered by Google App Engine
This is Rietveld 408576698