OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/password_manager/content/browser/credential_manager_dispatc
her.h" | 5 #include "components/password_manager/content/browser/credential_manager_dispatc
her.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/prefs/pref_registry_simple.h" | 9 #include "base/prefs/pref_registry_simple.h" |
10 #include "base/prefs/testing_pref_service.h" | 10 #include "base/prefs/testing_pref_service.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 PrefService* GetPrefs() override { return &prefs_; } | 52 PrefService* GetPrefs() override { return &prefs_; } |
53 | 53 |
54 bool PromptUserToSavePassword( | 54 bool PromptUserToSavePassword( |
55 scoped_ptr<password_manager::PasswordFormManager> manager) override { | 55 scoped_ptr<password_manager::PasswordFormManager> manager) override { |
56 did_prompt_user_to_save_ = true; | 56 did_prompt_user_to_save_ = true; |
57 manager_.reset(manager.release()); | 57 manager_.reset(manager.release()); |
58 return true; | 58 return true; |
59 } | 59 } |
60 | 60 |
61 bool PromptUserToChooseCredentials( | 61 bool PromptUserToChooseCredentials( |
62 const std::vector<autofill::PasswordForm*>& local_forms, | 62 ScopedVector<autofill::PasswordForm> local_forms, |
63 const std::vector<autofill::PasswordForm*>& federated_forms, | 63 ScopedVector<autofill::PasswordForm> federated_forms, |
64 base::Callback<void(const password_manager::CredentialInfo&)> callback) | 64 base::Callback<void(const password_manager::CredentialInfo&)> callback) |
65 override { | 65 override { |
66 // TODO(melandory): Use ScopedVector instead of std::vector in arguments. | |
67 // ContentCredentialManagerDispatcher::OnGetPasswordStoreResults contains a | |
68 // memory leak because of this. | |
69 EXPECT_FALSE(local_forms.empty() && federated_forms.empty()); | 66 EXPECT_FALSE(local_forms.empty() && federated_forms.empty()); |
70 did_prompt_user_to_choose_ = true; | 67 did_prompt_user_to_choose_ = true; |
71 ScopedVector<autofill::PasswordForm> local_entries; | |
72 local_entries.assign(local_forms.begin(), local_forms.end()); | |
73 ScopedVector<autofill::PasswordForm> federated_entries; | |
74 federated_entries.assign(federated_forms.begin(), federated_forms.end()); | |
75 password_manager::CredentialInfo info( | 68 password_manager::CredentialInfo info( |
76 local_forms.empty() ? *federated_forms[0] : *local_entries[0], | 69 local_forms.empty() ? *federated_forms[0] : *local_forms[0], |
77 local_forms.empty() | 70 local_forms.empty() |
78 ? password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED | 71 ? password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED |
79 : password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); | 72 : password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); |
80 base::MessageLoop::current()->PostTask(FROM_HERE, | 73 base::MessageLoop::current()->PostTask(FROM_HERE, |
81 base::Bind(callback, info)); | 74 base::Bind(callback, info)); |
82 return true; | 75 return true; |
83 } | 76 } |
84 | 77 |
85 bool IsOffTheRecord() override { return is_off_the_record_; } | 78 bool IsOffTheRecord() override { return is_off_the_record_; } |
86 | 79 |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 const IPC::Message* message = | 426 const IPC::Message* message = |
434 process()->sink().GetFirstMessageMatching(kMsgID); | 427 process()->sink().GetFirstMessageMatching(kMsgID); |
435 ASSERT_TRUE(message); | 428 ASSERT_TRUE(message); |
436 CredentialManagerMsg_SendCredential::Param param; | 429 CredentialManagerMsg_SendCredential::Param param; |
437 CredentialManagerMsg_SendCredential::Read(message, ¶m); | 430 CredentialManagerMsg_SendCredential::Read(message, ¶m); |
438 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); | 431 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); |
439 EXPECT_FALSE(client_->did_prompt_user_to_choose()); | 432 EXPECT_FALSE(client_->did_prompt_user_to_choose()); |
440 } | 433 } |
441 | 434 |
442 } // namespace password_manager | 435 } // namespace password_manager |
OLD | NEW |