Index: components/autofill/content/browser/autofill_driver_impl.cc |
diff --git a/components/autofill/content/browser/autofill_driver_impl.cc b/components/autofill/content/browser/autofill_driver_impl.cc |
index d0bae5305788e3e45bbbde9bc3f5872194ba7f4f..095822cb32c9a9e884a0f55bd845026818be2dfa 100644 |
--- a/components/autofill/content/browser/autofill_driver_impl.cc |
+++ b/components/autofill/content/browser/autofill_driver_impl.cc |
@@ -56,9 +56,10 @@ AutofillDriverImpl::AutofillDriverImpl( |
const std::string& app_locale, |
AutofillManager::AutofillDownloadManagerState enable_download_manager) |
: content::WebContentsObserver(web_contents), |
- autofill_manager_(this, delegate, app_locale, enable_download_manager) { |
+ autofill_manager_(new AutofillManager( |
+ this, delegate, app_locale, enable_download_manager)) { |
SetAutofillExternalDelegate(scoped_ptr<AutofillExternalDelegate>( |
- new AutofillExternalDelegate(web_contents, &autofill_manager_))); |
+ new AutofillExternalDelegate(web_contents, autofill_manager_.get()))); |
} |
AutofillDriverImpl::~AutofillDriverImpl() {} |
@@ -70,52 +71,54 @@ content::WebContents* AutofillDriverImpl::GetWebContents() { |
bool AutofillDriverImpl::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(AutofillDriverImpl, message) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_FormsSeen, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_FormsSeen, autofill_manager_.get(), |
AutofillManager::OnFormsSeen) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_FormSubmitted, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_FormSubmitted, autofill_manager_.get(), |
AutofillManager::OnFormSubmitted) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_TextFieldDidChange, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_TextFieldDidChange, |
+ autofill_manager_.get(), |
AutofillManager::OnTextFieldDidChange) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_QueryFormFieldAutofill, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnQueryFormFieldAutofill) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_ShowAutofillDialog, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_ShowAutofillDialog, |
+ autofill_manager_.get(), |
AutofillManager::OnShowAutofillDialog) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_FillAutofillFormData, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnFillAutofillFormData) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_DidPreviewAutofillFormData, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnDidPreviewAutofillFormData) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_DidFillAutofillFormData, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnDidFillAutofillFormData) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_DidShowAutofillSuggestions, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnDidShowAutofillSuggestions) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_DidEndTextFieldEditing, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnDidEndTextFieldEditing) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_HideAutofillUi, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_HideAutofillUi, autofill_manager_.get(), |
AutofillManager::OnHideAutofillUi) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_AddPasswordFormMapping, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnAddPasswordFormMapping) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_ShowPasswordSuggestions, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnShowPasswordSuggestions) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_SetDataList, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_SetDataList, autofill_manager_.get(), |
AutofillManager::OnSetDataList) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_RequestAutocomplete, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnRequestAutocomplete) |
- IPC_MESSAGE_FORWARD(AutofillHostMsg_ClickFailed, &autofill_manager_, |
+ IPC_MESSAGE_FORWARD(AutofillHostMsg_ClickFailed, autofill_manager_.get(), |
AutofillManager::OnClickFailed) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_MaybeShowAutocheckoutBubble, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::OnMaybeShowAutocheckoutBubble) |
IPC_MESSAGE_FORWARD(AutofillHostMsg_RemoveAutocompleteEntry, |
- &autofill_manager_, |
+ autofill_manager_.get(), |
AutofillManager::RemoveAutocompleteEntry) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
@@ -126,13 +129,19 @@ void AutofillDriverImpl::DidNavigateMainFrame( |
const content::LoadCommittedDetails& details, |
const content::FrameNavigateParams& params) { |
if (details.is_navigation_to_different_page()) |
- autofill_manager_.Reset(); |
+ autofill_manager_->Reset(); |
} |
void AutofillDriverImpl::SetAutofillExternalDelegate( |
scoped_ptr<AutofillExternalDelegate> delegate) { |
- autofill_external_delegate_.reset(delegate.release()); |
- autofill_manager_.SetExternalDelegate(autofill_external_delegate_.get()); |
+ autofill_external_delegate_ = delegate.Pass(); |
+ autofill_manager_->SetExternalDelegate(autofill_external_delegate_.get()); |
+} |
+ |
+void AutofillDriverImpl::SetAutofillManager( |
+ scoped_ptr<AutofillManager> manager) { |
+ autofill_manager_ = manager.Pass(); |
+ autofill_manager_->SetExternalDelegate(autofill_external_delegate_.get()); |
} |
} // namespace autofill |