summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-15 21:35:47 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-15 21:35:47 +0000
commit56205748f88eb64c9fe133fbdc1c5e780b515400 (patch)
tree3628f4afe5e4c088539a41d2ff3bf45878e89ef7
parentd82ef886e03ee7df5ccd005e8e2610956b8c3daf (diff)
downloadchromium_src-56205748f88eb64c9fe133fbdc1c5e780b515400.zip
chromium_src-56205748f88eb64c9fe133fbdc1c5e780b515400.tar.gz
chromium_src-56205748f88eb64c9fe133fbdc1c5e780b515400.tar.bz2
Merge 137047 - Re-enable password autofill for Incognito windows
BUG=117720 TEST=Password autofill should now work in Incognito windows Review URL: https://chromiumcodereview.appspot.com/10382049 TBR=isherman@chromium.org git-svn-id: svn://svn.chromium.org/chrome/branches/1132/src@137256 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/autofill/autofill_manager.cc2
-rw-r--r--chrome/browser/password_manager/password_manager.cc21
-rw-r--r--chrome/browser/password_manager/password_manager.h9
-rw-r--r--chrome/browser/password_manager/password_manager_delegate.h2
-rw-r--r--chrome/browser/password_manager/password_manager_unittest.cc5
-rw-r--r--chrome/browser/password_manager_delegate_impl.cc2
-rw-r--r--chrome/browser/password_manager_delegate_impl.h2
7 files changed, 25 insertions, 18 deletions
diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc
index 63c051a..627b0cb 100644
--- a/chrome/browser/autofill/autofill_manager.cc
+++ b/chrome/browser/autofill/autofill_manager.cc
@@ -253,7 +253,7 @@ void AutofillManager::UpdatePasswordGenerationState(
sync_set.Has(syncable::PASSWORDS));
bool new_password_generation_enabled =
password_sync_enabled &&
- tab_contents_wrapper_->password_manager()->IsEnabled();
+ tab_contents_wrapper_->password_manager()->IsSavingEnabled();
if (new_password_generation_enabled != password_generation_enabled_ ||
new_renderer) {
password_generation_enabled_ = new_password_generation_enabled;
diff --git a/chrome/browser/password_manager/password_manager.cc b/chrome/browser/password_manager/password_manager.cc
index 806c798..cceed28 100644
--- a/chrome/browser/password_manager/password_manager.cc
+++ b/chrome/browser/password_manager/password_manager.cc
@@ -66,7 +66,7 @@ PasswordManager::PasswordManager(WebContents* web_contents,
observer_(NULL) {
DCHECK(delegate_);
password_manager_enabled_.Init(prefs::kPasswordManagerEnabled,
- delegate_->GetProfileForPasswordManager()->GetPrefs(), NULL);
+ delegate_->GetProfile()->GetPrefs(), NULL);
ReportMetrics(*password_manager_enabled_);
}
@@ -74,13 +74,12 @@ PasswordManager::PasswordManager(WebContents* web_contents,
PasswordManager::~PasswordManager() {
}
-bool PasswordManager::IsEnabled() const {
- const Profile* profile = delegate_->GetProfileForPasswordManager();
- return profile && !profile->IsOffTheRecord() && *password_manager_enabled_;
+bool PasswordManager::IsSavingEnabled() const {
+ return IsFillingEnabled() && !delegate_->GetProfile()->IsOffTheRecord();
}
void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
- if (!IsEnabled())
+ if (!IsSavingEnabled())
return;
// No password to save? Then don't.
@@ -163,7 +162,7 @@ bool PasswordManager::OnMessageReceived(const IPC::Message& message) {
void PasswordManager::OnPasswordFormsParsed(
const std::vector<PasswordForm>& forms) {
- if (!IsEnabled())
+ if (!IsFillingEnabled())
return;
// Ask the SSLManager for current security.
@@ -173,8 +172,8 @@ void PasswordManager::OnPasswordFormsParsed(
iter != forms.end(); ++iter) {
bool ssl_valid = iter->origin.SchemeIsSecure() && !had_ssl_error;
PasswordFormManager* manager =
- new PasswordFormManager(delegate_->GetProfileForPasswordManager(),
- this, *iter, ssl_valid);
+ new PasswordFormManager(delegate_->GetProfile(), this, *iter,
+ ssl_valid);
pending_login_managers_.push_back(manager);
manager->FetchMatchingLoginsFromPasswordStore();
}
@@ -185,7 +184,7 @@ void PasswordManager::OnPasswordFormsRendered(
if (!provisional_save_manager_.get())
return;
- DCHECK(IsEnabled());
+ DCHECK(IsSavingEnabled());
// First, check for a failed login attempt.
for (std::vector<PasswordForm>::const_iterator iter = visible_forms.begin();
@@ -245,3 +244,7 @@ void PasswordManager::Autofill(
}
}
}
+
+bool PasswordManager::IsFillingEnabled() const {
+ return delegate_->GetProfile() && *password_manager_enabled_;
+}
diff --git a/chrome/browser/password_manager/password_manager.h b/chrome/browser/password_manager/password_manager.h
index 2ecf5c2..50379f6 100644
--- a/chrome/browser/password_manager/password_manager.h
+++ b/chrome/browser/password_manager/password_manager.h
@@ -38,8 +38,10 @@ class PasswordManager : public LoginModel,
virtual ~PasswordManager();
- // Is password autofill enabled for the current profile?
- bool IsEnabled() const;
+ // Is saving new data for password autofill enabled for the current profile?
+ // For example, saving new data is disabled in Incognito mode, whereas filling
+ // data is not.
+ bool IsSavingEnabled() const;
// Called by a PasswordFormManager when it decides a form can be autofilled
// on the page.
@@ -72,6 +74,9 @@ class PasswordManager : public LoginModel,
const std::vector<webkit::forms::PasswordForm>& visible_forms);
private:
+ // Is password autofill enabled for the current profile?
+ bool IsFillingEnabled() const;
+
// Note about how a PasswordFormManager can transition from
// pending_login_managers_ to provisional_save_manager_ and the infobar.
//
diff --git a/chrome/browser/password_manager/password_manager_delegate.h b/chrome/browser/password_manager/password_manager_delegate.h
index a59123a..1aa7e1f 100644
--- a/chrome/browser/password_manager/password_manager_delegate.h
+++ b/chrome/browser/password_manager/password_manager_delegate.h
@@ -36,7 +36,7 @@ class PasswordManagerDelegate {
PasswordFormManager* form_to_save) = 0;
// Get the profile for which we are managing passwords.
- virtual Profile* GetProfileForPasswordManager() = 0;
+ virtual Profile* GetProfile() = 0;
// If any SSL certificate errors were encountered as a result of the last
// page load.
diff --git a/chrome/browser/password_manager/password_manager_unittest.cc b/chrome/browser/password_manager/password_manager_unittest.cc
index 14fff59..25dc33b 100644
--- a/chrome/browser/password_manager/password_manager_unittest.cc
+++ b/chrome/browser/password_manager/password_manager_unittest.cc
@@ -34,7 +34,7 @@ class MockPasswordManagerDelegate : public PasswordManagerDelegate {
MOCK_METHOD1(FillPasswordForm, void(
const webkit::forms::PasswordFormFillData&));
MOCK_METHOD1(AddSavePasswordInfoBarIfPermitted, void(PasswordFormManager*));
- MOCK_METHOD0(GetProfileForPasswordManager, Profile*());
+ MOCK_METHOD0(GetProfile, Profile*());
MOCK_METHOD0(DidLastPageLoadEncounterSSLErrors, bool());
};
@@ -61,8 +61,7 @@ class PasswordManagerTest : public ChromeRenderViewHostTestHarness {
browser_context_.reset(testing_profile);
ChromeRenderViewHostTestHarness::SetUp();
- EXPECT_CALL(delegate_, GetProfileForPasswordManager())
- .WillRepeatedly(Return(profile()));
+ EXPECT_CALL(delegate_, GetProfile()).WillRepeatedly(Return(profile()));
manager_.reset(new PasswordManager(contents(), &delegate_));
EXPECT_CALL(delegate_, DidLastPageLoadEncounterSSLErrors())
.WillRepeatedly(Return(false));
diff --git a/chrome/browser/password_manager_delegate_impl.cc b/chrome/browser/password_manager_delegate_impl.cc
index 7080fd8..0ce8e15 100644
--- a/chrome/browser/password_manager_delegate_impl.cc
+++ b/chrome/browser/password_manager_delegate_impl.cc
@@ -150,7 +150,7 @@ void PasswordManagerDelegateImpl::AddSavePasswordInfoBarIfPermitted(
tab_contents_->infobar_tab_helper(), form_to_save));
}
-Profile* PasswordManagerDelegateImpl::GetProfileForPasswordManager() {
+Profile* PasswordManagerDelegateImpl::GetProfile() {
return tab_contents_->profile();
}
diff --git a/chrome/browser/password_manager_delegate_impl.h b/chrome/browser/password_manager_delegate_impl.h
index a652f87..164da94 100644
--- a/chrome/browser/password_manager_delegate_impl.h
+++ b/chrome/browser/password_manager_delegate_impl.h
@@ -21,7 +21,7 @@ class PasswordManagerDelegateImpl : public PasswordManagerDelegate {
const webkit::forms::PasswordFormFillData& form_data) OVERRIDE;
virtual void AddSavePasswordInfoBarIfPermitted(
PasswordFormManager* form_to_save) OVERRIDE;
- virtual Profile* GetProfileForPasswordManager() OVERRIDE;
+ virtual Profile* GetProfile() OVERRIDE;
virtual bool DidLastPageLoadEncounterSSLErrors() OVERRIDE;
private:
TabContentsWrapper* tab_contents_;