| 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 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 506 const IPC::Message* message = | 499 const IPC::Message* message = |
| 507 process()->sink().GetFirstMessageMatching(kMsgID); | 500 process()->sink().GetFirstMessageMatching(kMsgID); |
| 508 ASSERT_TRUE(message); | 501 ASSERT_TRUE(message); |
| 509 CredentialManagerMsg_SendCredential::Param param; | 502 CredentialManagerMsg_SendCredential::Param param; |
| 510 CredentialManagerMsg_SendCredential::Read(message, ¶m); | 503 CredentialManagerMsg_SendCredential::Read(message, ¶m); |
| 511 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); | 504 EXPECT_EQ(CredentialType::CREDENTIAL_TYPE_EMPTY, get<1>(param).type); |
| 512 EXPECT_FALSE(client_->did_prompt_user_to_choose()); | 505 EXPECT_FALSE(client_->did_prompt_user_to_choose()); |
| 513 } | 506 } |
| 514 | 507 |
| 515 } // namespace password_manager | 508 } // namespace password_manager |
| OLD | NEW |