summaryrefslogtreecommitdiff
path: root/chromium/components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.cc')
-rw-r--r--chromium/components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/chromium/components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.cc b/chromium/components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.cc
new file mode 100644
index 00000000000..b0e1ab14608
--- /dev/null
+++ b/chromium/components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.cc
@@ -0,0 +1,39 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/password_manager/core/browser/credential_manager_pending_prevent_silent_access_task.h"
+
+#include "components/autofill/core/common/password_form.h"
+
+namespace password_manager {
+
+CredentialManagerPendingPreventSilentAccessTask::
+ CredentialManagerPendingPreventSilentAccessTask(
+ CredentialManagerPendingPreventSilentAccessTaskDelegate* delegate)
+ : delegate_(delegate), pending_requests_(0) {}
+
+CredentialManagerPendingPreventSilentAccessTask::
+ ~CredentialManagerPendingPreventSilentAccessTask() = default;
+
+void CredentialManagerPendingPreventSilentAccessTask::AddOrigin(
+ const PasswordStore::FormDigest& form_digest) {
+ delegate_->GetPasswordStore()->GetLogins(form_digest, this);
+ pending_requests_++;
+}
+
+void CredentialManagerPendingPreventSilentAccessTask::OnGetPasswordStoreResults(
+ std::vector<std::unique_ptr<autofill::PasswordForm>> results) {
+ PasswordStore* store = delegate_->GetPasswordStore();
+ for (const auto& form : results) {
+ if (!form->skip_zero_click) {
+ form->skip_zero_click = true;
+ store->UpdateLogin(*form);
+ }
+ }
+ pending_requests_--;
+ if (!pending_requests_)
+ delegate_->DoneRequiringUserMediation();
+}
+
+} // namespace password_manager