| Index: components/password_manager/core/browser/password_manager.cc
|
| diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
|
| index edeadedbc92852e6e4f4d74fee4b0c27feb737ec..5baf7948c9e82b2192520d3101faf564a87fb9c4 100644
|
| --- a/components/password_manager/core/browser/password_manager.cc
|
| +++ b/components/password_manager/core/browser/password_manager.cc
|
| @@ -126,9 +126,8 @@ void PasswordManager::RegisterLocalPrefs(PrefRegistrySimple* registry) {
|
| #endif
|
|
|
| PasswordManager::PasswordManager(PasswordManagerClient* client)
|
| - : client_(client), driver_(client->GetDriver()) {
|
| + : client_(client) {
|
| DCHECK(client_);
|
| - DCHECK(driver_);
|
| saving_passwords_enabled_.Init(prefs::kPasswordManagerSavingEnabled,
|
| client_->GetPrefs());
|
|
|
| @@ -139,7 +138,9 @@ PasswordManager::~PasswordManager() {
|
| FOR_EACH_OBSERVER(LoginModelObserver, observers_, OnLoginModelDestroying());
|
| }
|
|
|
| -void PasswordManager::SetFormHasGeneratedPassword(const PasswordForm& form) {
|
| +void PasswordManager::SetFormHasGeneratedPassword(
|
| + password_manager::PasswordManagerDriver* driver,
|
| + const PasswordForm& form) {
|
| DCHECK(IsSavingEnabledForCurrentPage());
|
|
|
| for (ScopedVector<PasswordFormManager>::iterator iter =
|
| @@ -157,19 +158,19 @@ void PasswordManager::SetFormHasGeneratedPassword(const PasswordForm& form) {
|
| // ability to detect forms.
|
| bool ssl_valid = form.origin.SchemeIsSecure();
|
| PasswordFormManager* manager =
|
| - new PasswordFormManager(this, client_, driver_, form, ssl_valid);
|
| + new PasswordFormManager(this, client_, driver, form, ssl_valid);
|
| pending_login_managers_.push_back(manager);
|
| manager->SetHasGeneratedPassword();
|
| // TODO(gcasto): Add UMA stats to track this.
|
| }
|
|
|
| bool PasswordManager::IsEnabledForCurrentPage() const {
|
| - return !driver_->DidLastPageLoadEncounterSSLErrors() &&
|
| - client_->IsPasswordManagerEnabledForCurrentPage();
|
| + return !client_->DidLastPageLoadEncounterSSLErrors() &&
|
| + client_->IsPasswordManagerEnabledForCurrentPage();
|
| }
|
|
|
| bool PasswordManager::IsSavingEnabledForCurrentPage() const {
|
| - return *saving_passwords_enabled_ && !driver_->IsOffTheRecord() &&
|
| + return *saving_passwords_enabled_ && !client_->IsOffTheRecord() &&
|
| IsEnabledForCurrentPage();
|
| }
|
|
|
| @@ -184,7 +185,7 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
|
| form);
|
| logger->LogBoolean(Logger::STRING_IS_SAVING_ENABLED, is_saving_enabled);
|
| logger->LogBoolean(Logger::STRING_SSL_ERRORS_PRESENT,
|
| - driver_->DidLastPageLoadEncounterSSLErrors());
|
| + client_->DidLastPageLoadEncounterSSLErrors());
|
| }
|
|
|
| if (!is_saving_enabled) {
|
| @@ -281,7 +282,7 @@ void PasswordManager::ProvisionallySavePassword(const PasswordForm& form) {
|
| PasswordForm provisionally_saved_form(form);
|
| provisionally_saved_form.ssl_valid =
|
| form.origin.SchemeIsSecure() &&
|
| - !driver_->DidLastPageLoadEncounterSSLErrors();
|
| + !client_->DidLastPageLoadEncounterSSLErrors();
|
| provisionally_saved_form.preferred = true;
|
| if (logger) {
|
| logger->LogPasswordForm(Logger::STRING_PROVISIONALLY_SAVED_FORM,
|
| @@ -362,15 +363,12 @@ void PasswordManager::RemoveObserver(LoginModelObserver* observer) {
|
| void PasswordManager::DidNavigateMainFrame(bool is_in_page) {
|
| // Clear data after main frame navigation if the navigation was to a
|
| // different page.
|
| - if (!is_in_page) {
|
| + if (!is_in_page)
|
| pending_login_managers_.clear();
|
| - // There is no PasswordAutofillManager on iOS.
|
| - if (driver_->GetPasswordAutofillManager())
|
| - driver_->GetPasswordAutofillManager()->Reset();
|
| - }
|
| }
|
|
|
| void PasswordManager::OnPasswordFormSubmitted(
|
| + password_manager::PasswordManagerDriver* driver,
|
| const PasswordForm& password_form) {
|
| ProvisionallySavePassword(password_form);
|
| for (size_t i = 0; i < submission_callbacks_.size(); ++i) {
|
| @@ -381,11 +379,13 @@ void PasswordManager::OnPasswordFormSubmitted(
|
| }
|
|
|
| void PasswordManager::OnPasswordFormsParsed(
|
| + password_manager::PasswordManagerDriver* driver,
|
| const std::vector<PasswordForm>& forms) {
|
| - CreatePendingLoginManagers(forms);
|
| + CreatePendingLoginManagers(driver, forms);
|
| }
|
|
|
| void PasswordManager::CreatePendingLoginManagers(
|
| + password_manager::PasswordManagerDriver* driver,
|
| const std::vector<PasswordForm>& forms) {
|
| if (!IsEnabledForCurrentPage())
|
| return;
|
| @@ -414,7 +414,7 @@ void PasswordManager::CreatePendingLoginManagers(
|
|
|
| bool ssl_valid = iter->origin.SchemeIsSecure();
|
| PasswordFormManager* manager =
|
| - new PasswordFormManager(this, client_, driver_, *iter, ssl_valid);
|
| + new PasswordFormManager(this, client_, driver, *iter, ssl_valid);
|
| pending_login_managers_.push_back(manager);
|
|
|
| PasswordStore::AuthorizationPromptPolicy prompt_policy =
|
| @@ -432,9 +432,10 @@ bool PasswordManager::ShouldPromptUserToSavePassword() const {
|
| }
|
|
|
| void PasswordManager::OnPasswordFormsRendered(
|
| + password_manager::PasswordManagerDriver* driver,
|
| const std::vector<PasswordForm>& visible_forms,
|
| bool did_stop_loading) {
|
| - CreatePendingLoginManagers(visible_forms);
|
| + CreatePendingLoginManagers(driver, visible_forms);
|
| scoped_ptr<BrowserSavePasswordProgressLogger> logger;
|
| if (client_->IsLoggingActive()) {
|
| logger.reset(new BrowserSavePasswordProgressLogger(client_));
|
| @@ -552,7 +553,8 @@ bool PasswordManager::OtherPossibleUsernamesEnabled() const {
|
| kOtherPossibleUsernamesExperiment) == "Enabled";
|
| }
|
|
|
| -void PasswordManager::Autofill(const PasswordForm& form_for_autofill,
|
| +void PasswordManager::Autofill(password_manager::PasswordManagerDriver* driver,
|
| + const PasswordForm& form_for_autofill,
|
| const PasswordFormMap& best_matches,
|
| const PasswordForm& preferred_match,
|
| bool wait_for_username) const {
|
| @@ -576,7 +578,7 @@ void PasswordManager::Autofill(const PasswordForm& form_for_autofill,
|
| &fill_data);
|
| if (logger)
|
| logger->LogBoolean(Logger::STRING_WAIT_FOR_USERNAME, wait_for_username);
|
| - driver_->FillPasswordForm(fill_data);
|
| + driver->FillPasswordForm(fill_data);
|
| break;
|
| }
|
| default:
|
|
|