| Index: chrome/browser/autofill/autofill_manager.cc
 | 
| diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc
 | 
| index c8b5b5039e4792670c931ead003f85160df230dc..8a28c0caac3f6d5e9b39a9b64cffe0f2a7200a99 100644
 | 
| --- a/chrome/browser/autofill/autofill_manager.cc
 | 
| +++ b/chrome/browser/autofill/autofill_manager.cc
 | 
| @@ -20,6 +20,7 @@
 | 
|  #include "base/threading/sequenced_worker_pool.h"
 | 
|  #include "base/utf_string_conversions.h"
 | 
|  #include "chrome/browser/api/infobars/infobar_tab_service.h"
 | 
| +#include "chrome/browser/autofill/api/autofill_manager_delegate.h"
 | 
|  #include "chrome/browser/autofill/autocomplete_history_manager.h"
 | 
|  #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h"
 | 
|  #include "chrome/browser/autofill/autofill_external_delegate.h"
 | 
| @@ -36,7 +37,6 @@
 | 
|  #include "chrome/browser/autofill/phone_number.h"
 | 
|  #include "chrome/browser/autofill/phone_number_i18n.h"
 | 
|  #include "chrome/browser/autofill/select_control_handler.h"
 | 
| -#include "chrome/browser/password_manager/password_manager.h"
 | 
|  #include "chrome/browser/api/prefs/pref_service_base.h"
 | 
|  #include "chrome/browser/profiles/profile.h"
 | 
|  #include "chrome/browser/sync/profile_sync_service.h"
 | 
| @@ -178,8 +178,10 @@ void DeterminePossibleFieldTypesForUpload(
 | 
|  
 | 
|  }  // namespace
 | 
|  
 | 
| -AutofillManager::AutofillManager(TabContents* tab_contents)
 | 
| +AutofillManager::AutofillManager(autofill::AutofillManagerDelegate* delegate,
 | 
| +                                 TabContents* tab_contents)
 | 
|      : content::WebContentsObserver(tab_contents->web_contents()),
 | 
| +      manager_delegate_(delegate),
 | 
|        tab_contents_(tab_contents),
 | 
|        personal_data_(NULL),
 | 
|        download_manager_(tab_contents->profile(), this),
 | 
| @@ -197,7 +199,7 @@ AutofillManager::AutofillManager(TabContents* tab_contents)
 | 
|    personal_data_ = PersonalDataManagerFactory::GetForProfile(
 | 
|        tab_contents->profile()->GetOriginalProfile());
 | 
|    RegisterWithSyncService();
 | 
| -  registrar_.Init(PrefServiceBase::ForProfile(tab_contents->profile()));
 | 
| +  registrar_.Init(manager_delegate_->GetPrefs());
 | 
|    registrar_.Add(prefs::kPasswordGenerationEnabled, this);
 | 
|    notification_registrar_.Add(this,
 | 
|        chrome::NOTIFICATION_TAB_CONTENTS_DESTROYED,
 | 
| @@ -262,17 +264,13 @@ void AutofillManager::UpdatePasswordGenerationState(
 | 
|        service->HasSyncSetupCompleted() && sync_set.Has(syncer::PASSWORDS);
 | 
|    }
 | 
|  
 | 
| -  bool password_manager_enabled =
 | 
| -      tab_contents_->password_manager()->IsSavingEnabled();
 | 
| -
 | 
| -  Profile* profile = Profile::FromBrowserContext(
 | 
| -      web_contents()->GetBrowserContext());
 | 
| -  bool preference_checked = PrefServiceBase::ForProfile(profile)->GetBoolean(
 | 
| +  bool saving_passwords_enabled = manager_delegate_->IsSavingPasswordsEnabled();
 | 
| +  bool preference_checked = manager_delegate_->GetPrefs()->GetBoolean(
 | 
|        prefs::kPasswordGenerationEnabled);
 | 
|  
 | 
|    bool new_password_generation_enabled =
 | 
|        password_sync_enabled &&
 | 
| -      password_manager_enabled &&
 | 
| +      saving_passwords_enabled &&
 | 
|        preference_checked;
 | 
|  
 | 
|    if (new_password_generation_enabled != password_generation_enabled_ ||
 | 
| @@ -813,10 +811,7 @@ void AutofillManager::OnDidEndTextFieldEditing() {
 | 
|  }
 | 
|  
 | 
|  bool AutofillManager::IsAutofillEnabled() const {
 | 
| -  Profile* profile = Profile::FromBrowserContext(
 | 
| -      const_cast<AutofillManager*>(this)->web_contents()->GetBrowserContext());
 | 
| -  return PrefServiceBase::ForProfile(profile)->GetBoolean(
 | 
| -      prefs::kAutofillEnabled);
 | 
| +  return manager_delegate_->GetPrefs()->GetBoolean(prefs::kAutofillEnabled);
 | 
|  }
 | 
|  
 | 
|  void AutofillManager::SendAutofillTypePredictions(
 | 
| @@ -845,8 +840,7 @@ void AutofillManager::ImportFormData(const FormStructure& submitted_form) {
 | 
|    // it.
 | 
|    scoped_ptr<const CreditCard> scoped_credit_card(imported_credit_card);
 | 
|    if (imported_credit_card && web_contents()) {
 | 
| -    InfoBarTabService* infobar_service =
 | 
| -        InfoBarTabService::ForTab(tab_contents_);
 | 
| +    InfoBarTabService* infobar_service = manager_delegate_->GetInfoBarService();
 | 
|      infobar_service->AddInfoBar(
 | 
|          new AutofillCCInfoBarDelegate(infobar_service,
 | 
|                                        scoped_credit_card.release(),
 | 
| @@ -910,9 +904,11 @@ void AutofillManager::Reset() {
 | 
|      external_delegate_->Reset();
 | 
|  }
 | 
|  
 | 
| -AutofillManager::AutofillManager(TabContents* tab_contents,
 | 
| +AutofillManager::AutofillManager(autofill::AutofillManagerDelegate* delegate,
 | 
| +                                 TabContents* tab_contents,
 | 
|                                   PersonalDataManager* personal_data)
 | 
|      : content::WebContentsObserver(tab_contents->web_contents()),
 | 
| +      manager_delegate_(delegate),
 | 
|        tab_contents_(tab_contents),
 | 
|        personal_data_(personal_data),
 | 
|        download_manager_(tab_contents->profile(), this),
 | 
| @@ -926,7 +922,8 @@ AutofillManager::AutofillManager(TabContents* tab_contents,
 | 
|        user_did_edit_autofilled_field_(false),
 | 
|        password_generation_enabled_(false),
 | 
|        external_delegate_(NULL) {
 | 
| -  DCHECK(tab_contents);
 | 
| +  DCHECK(tab_contents_);
 | 
| +  DCHECK(manager_delegate_);
 | 
|    RegisterWithSyncService();
 | 
|    // Test code doesn't need registrar_.
 | 
|  }
 | 
| 
 |