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

Unified Diff: chrome/browser/sync/test/integration/passwords_helper.cc

Issue 866983003: GetLoginsRequest: Use ScopedVector to express ownership of forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@324291_scopedvector
Patch Set: Second fix of the rebase 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: chrome/browser/sync/test/integration/passwords_helper.cc
diff --git a/chrome/browser/sync/test/integration/passwords_helper.cc b/chrome/browser/sync/test/integration/passwords_helper.cc
index 1237a9b7e1e3393c7a26829910862792d19c5ca8..8600360da7fbddd36908194b6ae35f1d2890fe45 100644
--- a/chrome/browser/sync/test/integration/passwords_helper.cc
+++ b/chrome/browser/sync/test/integration/passwords_helper.cc
@@ -25,11 +25,11 @@ using autofill::PasswordForm;
using password_manager::PasswordStore;
using sync_datatype_helper::test;
-const std::string kFakeSignonRealm = "http://fake-signon-realm.google.com/";
-const char* kIndexedFakeOrigin = "http://fake-signon-realm.google.com/%d";
-
namespace {
+const char kFakeSignonRealm[] = "http://fake-signon-realm.google.com/";
+const char kIndexedFakeOrigin[] = "http://fake-signon-realm.google.com/%d";
+
// We use a WaitableEvent to wait when logins are added, removed, or updated
// instead of running the UI message loop because of a restriction that
// prevents a DB thread from initiating a quit of the UI message loop.
@@ -41,36 +41,27 @@ void PasswordStoreCallback(base::WaitableEvent* wait_event) {
class PasswordStoreConsumerHelper
: public password_manager::PasswordStoreConsumer {
public:
- explicit PasswordStoreConsumerHelper(std::vector<PasswordForm>* result)
- : password_manager::PasswordStoreConsumer(), result_(result) {}
-
- void OnGetPasswordStoreResults(
- const std::vector<PasswordForm*>& result) override {
- result_->clear();
- for (std::vector<PasswordForm*>::const_iterator it = result.begin();
- it != result.end();
- ++it) {
- result_->push_back(**it);
- delete *it;
- }
+ PasswordStoreConsumerHelper() {}
+ void OnGetPasswordStoreResults(ScopedVector<PasswordForm> results) override {
+ result_.swap(results);
// Quit the message loop to wake up passwords_helper::GetLogins.
base::MessageLoopForUI::current()->Quit();
}
+ ScopedVector<PasswordForm> result() { return result_.Pass(); }
+
private:
- std::vector<PasswordForm>* result_;
+ ScopedVector<PasswordForm> result_;
DISALLOW_COPY_AND_ASSIGN(PasswordStoreConsumerHelper);
};
// PasswordForm::date_synced is a local field. Therefore it may be different
// across clients.
-void ClearSyncDateField(std::vector<PasswordForm>* forms) {
- for (std::vector<PasswordForm>::iterator it = forms->begin();
- it != forms->end();
- ++it) {
- it->date_synced = base::Time();
+void ClearSyncDateField(std::vector<PasswordForm*>* forms) {
+ for (PasswordForm* form : *forms) {
+ form->date_synced = base::Time();
}
}
@@ -94,13 +85,14 @@ void UpdateLogin(PasswordStore* store, const PasswordForm& form) {
wait_event.Wait();
}
-void GetLogins(PasswordStore* store, std::vector<PasswordForm>& matches) {
- ASSERT_TRUE(store);
+ScopedVector<PasswordForm> GetLogins(PasswordStore* store) {
+ EXPECT_TRUE(store);
PasswordForm matcher_form;
matcher_form.signon_realm = kFakeSignonRealm;
- PasswordStoreConsumerHelper consumer(&matches);
+ PasswordStoreConsumerHelper consumer;
store->GetLogins(matcher_form, PasswordStore::DISALLOW_PROMPT, &consumer);
content::RunMessageLoop();
+ return consumer.result();
}
void RemoveLogin(PasswordStore* store, const PasswordForm& form) {
@@ -112,11 +104,9 @@ void RemoveLogin(PasswordStore* store, const PasswordForm& form) {
}
void RemoveLogins(PasswordStore* store) {
- std::vector<PasswordForm> forms;
- GetLogins(store, forms);
- for (std::vector<PasswordForm>::iterator it = forms.begin();
- it != forms.end(); ++it) {
- RemoveLogin(store, *it);
+ ScopedVector<PasswordForm> forms = GetLogins(store);
+ for (const PasswordForm* form : forms) {
+ RemoveLogin(store, *form);
}
}
@@ -144,46 +134,40 @@ PasswordStore* GetVerifierPasswordStore() {
}
bool ProfileContainsSamePasswordFormsAsVerifier(int index) {
- std::vector<PasswordForm> verifier_forms;
- std::vector<PasswordForm> forms;
- GetLogins(GetVerifierPasswordStore(), verifier_forms);
- GetLogins(GetPasswordStore(index), forms);
- ClearSyncDateField(&forms);
- bool result =
- password_manager::ContainsSamePasswordForms(verifier_forms, forms);
+ ScopedVector<PasswordForm> verifier_forms =
+ GetLogins(GetVerifierPasswordStore());
+ ScopedVector<PasswordForm> forms = GetLogins(GetPasswordStore(index));
+ ClearSyncDateField(&forms.get());
+ bool result = password_manager::ContainsSamePasswordFormsPtr(
+ verifier_forms.get(), forms.get());
if (!result) {
- LOG(ERROR) << "Password forms in Verifier Profile:";
- for (std::vector<PasswordForm>::iterator it = verifier_forms.begin();
- it != verifier_forms.end(); ++it) {
- LOG(ERROR) << *it << std::endl;
+ VLOG(1) << "Password forms in Verifier Profile:";
+ for (const PasswordForm* form : verifier_forms) {
+ VLOG(1) << *form;
}
- LOG(ERROR) << "Password forms in Profile" << index << ":";
- for (std::vector<PasswordForm>::iterator it = forms.begin();
- it != forms.end(); ++it) {
- LOG(ERROR) << *it << std::endl;
+ VLOG(1) << "Password forms in Profile" << index << ":";
+ for (const PasswordForm* form : forms) {
+ VLOG(1) << *form;
}
}
return result;
}
bool ProfilesContainSamePasswordForms(int index_a, int index_b) {
- std::vector<PasswordForm> forms_a;
- std::vector<PasswordForm> forms_b;
- GetLogins(GetPasswordStore(index_a), forms_a);
- GetLogins(GetPasswordStore(index_b), forms_b);
- ClearSyncDateField(&forms_a);
- ClearSyncDateField(&forms_b);
- bool result = password_manager::ContainsSamePasswordForms(forms_a, forms_b);
+ ScopedVector<PasswordForm> forms_a = GetLogins(GetPasswordStore(index_a));
+ ScopedVector<PasswordForm> forms_b = GetLogins(GetPasswordStore(index_b));
+ ClearSyncDateField(&forms_a.get());
+ ClearSyncDateField(&forms_b.get());
+ bool result = password_manager::ContainsSamePasswordFormsPtr(forms_a.get(),
+ forms_b.get());
if (!result) {
- LOG(ERROR) << "Password forms in Profile" << index_a << ":";
- for (std::vector<PasswordForm>::iterator it = forms_a.begin();
- it != forms_a.end(); ++it) {
- LOG(ERROR) << *it << std::endl;
+ VLOG(1) << "Password forms in Profile" << index_a << ":";
+ for (const PasswordForm* form : forms_a) {
+ VLOG(1) << *form;
}
- LOG(ERROR) << "Password forms in Profile" << index_b << ":";
- for (std::vector<PasswordForm>::iterator it = forms_b.begin();
- it != forms_b.end(); ++it) {
- LOG(ERROR) << *it << std::endl;
+ VLOG(1) << "Password forms in Profile" << index_b << ":";
+ for (const PasswordForm* form : forms_b) {
+ VLOG(1) << *form;
}
}
return result;
@@ -344,14 +328,13 @@ bool AwaitProfileContainsSamePasswordFormsAsVerifier(int index) {
}
int GetPasswordCount(int index) {
- std::vector<PasswordForm> forms;
- GetLogins(GetPasswordStore(index), forms);
+ ScopedVector<PasswordForm> forms = GetLogins(GetPasswordStore(index));
return forms.size();
}
int GetVerifierPasswordCount() {
- std::vector<PasswordForm> verifier_forms;
- GetLogins(GetVerifierPasswordStore(), verifier_forms);
+ ScopedVector<PasswordForm> verifier_forms =
+ GetLogins(GetVerifierPasswordStore());
return verifier_forms.size();
}

Powered by Google App Engine
This is Rietveld 408576698