OLD | NEW |
| (Empty) |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "components/password_manager/core/browser/credential_manager_pending_re
quire_user_mediation_task.h" | |
6 | |
7 #include "components/autofill/core/common/password_form.h" | |
8 | |
9 namespace password_manager { | |
10 | |
11 CredentialManagerPendingRequireUserMediationTask:: | |
12 CredentialManagerPendingRequireUserMediationTask( | |
13 CredentialManagerPendingRequireUserMediationTaskDelegate* delegate) | |
14 : delegate_(delegate), pending_requests_(0) {} | |
15 | |
16 CredentialManagerPendingRequireUserMediationTask:: | |
17 ~CredentialManagerPendingRequireUserMediationTask() = default; | |
18 | |
19 void CredentialManagerPendingRequireUserMediationTask::AddOrigin( | |
20 const PasswordStore::FormDigest& form_digest) { | |
21 delegate_->GetPasswordStore()->GetLogins(form_digest, this); | |
22 pending_requests_++; | |
23 } | |
24 | |
25 void CredentialManagerPendingRequireUserMediationTask:: | |
26 OnGetPasswordStoreResults( | |
27 std::vector<std::unique_ptr<autofill::PasswordForm>> results) { | |
28 PasswordStore* store = delegate_->GetPasswordStore(); | |
29 for (const auto& form : results) { | |
30 if (!form->skip_zero_click) { | |
31 form->skip_zero_click = true; | |
32 store->UpdateLogin(*form); | |
33 } | |
34 } | |
35 pending_requests_--; | |
36 if (!pending_requests_) | |
37 delegate_->DoneRequiringUserMediation(); | |
38 } | |
39 | |
40 } // namespace password_manager | |
OLD | NEW |