diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-15 21:35:47 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-15 21:35:47 +0000 |
commit | 56205748f88eb64c9fe133fbdc1c5e780b515400 (patch) | |
tree | 3628f4afe5e4c088539a41d2ff3bf45878e89ef7 | |
parent | d82ef886e03ee7df5ccd005e8e2610956b8c3daf (diff) | |
download | chromium_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
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_; |