Commit 39465779 authored by isherman@chromium.org's avatar isherman@chromium.org

Fix memory failures in PasswordManager tests

BUG=none
TEST=happy heapcheck bots
TBR=mdm@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9586023

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124778 0039d316-1c4b-4281-b951-d872f2087c98
parent 04550d10
...@@ -82,12 +82,12 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) { ...@@ -82,12 +82,12 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
if (form.password_value.empty()) if (form.password_value.empty())
return; return;
PasswordFormManager* manager = NULL; scoped_ptr<PasswordFormManager> manager;
for (ScopedVector<PasswordFormManager>::iterator iter = for (ScopedVector<PasswordFormManager>::iterator iter =
pending_login_managers_.begin(); pending_login_managers_.begin();
iter != pending_login_managers_.end(); ++iter) { iter != pending_login_managers_.end(); ++iter) {
if ((*iter)->DoesManage(form)) { if ((*iter)->DoesManage(form)) {
manager = *iter; manager.reset(*iter);
pending_login_managers_.weak_erase(iter); pending_login_managers_.weak_erase(iter);
break; break;
} }
...@@ -95,7 +95,7 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) { ...@@ -95,7 +95,7 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
// If we didn't find a manager, this means a form was submitted without // If we didn't find a manager, this means a form was submitted without
// first loading the page containing the form. Don't offer to save // first loading the page containing the form. Don't offer to save
// passwords in this case. // passwords in this case.
if (!manager) if (!manager.get())
return; return;
// If we found a manager but it didn't finish matching yet, the user has // If we found a manager but it didn't finish matching yet, the user has
...@@ -115,7 +115,7 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) { ...@@ -115,7 +115,7 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
!delegate_->DidLastPageLoadEncounterSSLErrors(); !delegate_->DidLastPageLoadEncounterSSLErrors();
provisionally_saved_form.preferred = true; provisionally_saved_form.preferred = true;
manager->ProvisionallySave(provisionally_saved_form); manager->ProvisionallySave(provisionally_saved_form);
provisional_save_manager_.reset(manager); provisional_save_manager_.swap(manager);
} }
void PasswordManager::SetObserver(LoginModelObserver* observer) { void PasswordManager::SetObserver(LoginModelObserver* observer) {
......
...@@ -208,12 +208,16 @@ TEST_F(PasswordManagerTest, FormSeenThenLeftPage) { ...@@ -208,12 +208,16 @@ TEST_F(PasswordManagerTest, FormSeenThenLeftPage) {
manager()->OnPasswordFormsFound(observed); // The initial load. manager()->OnPasswordFormsFound(observed); // The initial load.
manager()->OnPasswordFormsVisible(observed); // The initial layout. manager()->OnPasswordFormsVisible(observed); // The initial layout.
PasswordForm empty_form(form);
empty_form.username_value = string16();
empty_form.password_value = string16();
content::LoadCommittedDetails details; content::LoadCommittedDetails details;
content::FrameNavigateParams params; content::FrameNavigateParams params;
params.password_form = form; params.password_form = empty_form;
manager()->DidNavigateAnyFrame(details, params); manager()->DidNavigateAnyFrame(details, params);
// No expected calls. // No expected calls.
EXPECT_CALL(delegate_, AddSavePasswordInfoBar(_)).Times(0);
manager()->DidStopLoading(); manager()->DidStopLoading();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment