diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-22 13:38:07 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-22 13:38:07 +0000 |
commit | aab66ce81462cbe853b5f16d24fb81b6be053596 (patch) | |
tree | 3edc6213140ac463dc5fe9bb945ef5da90a45dcb /chrome/browser/autofill/autofill_manager.cc | |
parent | aa7e7a108caf6a77991fd2c99068687726bb4b21 (diff) | |
download | chromium_src-aab66ce81462cbe853b5f16d24fb81b6be053596.zip chromium_src-aab66ce81462cbe853b5f16d24fb81b6be053596.tar.gz chromium_src-aab66ce81462cbe853b5f16d24fb81b6be053596.tar.bz2 |
[Autofill] Stop reference counting the AutofillManager class.
BUG=176138
TEST=none
Review URL: https://chromiumcodereview.appspot.com/12255021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184101 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill/autofill_manager.cc')
-rw-r--r-- | chrome/browser/autofill/autofill_manager.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc index 39874f9..ae55f14 100644 --- a/chrome/browser/autofill/autofill_manager.cc +++ b/chrome/browser/autofill/autofill_manager.cc @@ -18,7 +18,6 @@ #include "base/prefs/pref_service.h" #include "base/string16.h" #include "base/string_util.h" -#include "base/supports_user_data.h" #include "base/threading/sequenced_worker_pool.h" #include "base/utf_string_conversions.h" #include "chrome/browser/api/infobars/infobar_service.h" @@ -183,15 +182,14 @@ void AutofillManager::CreateForWebContentsAndDelegate( return; contents->SetUserData(kAutofillManagerWebContentsUserDataKey, - new base::UserDataAdapter<AutofillManager>( - new AutofillManager(contents, delegate))); + new AutofillManager(contents, delegate)); } // static AutofillManager* AutofillManager::FromWebContents( content::WebContents* contents) { - return base::UserDataAdapter<AutofillManager>::Get( - contents, kAutofillManagerWebContentsUserDataKey); + return static_cast<AutofillManager*>( + contents->GetUserData(kAutofillManagerWebContentsUserDataKey)); } AutofillManager::AutofillManager(content::WebContents* web_contents, @@ -211,7 +209,8 @@ AutofillManager::AutofillManager(content::WebContents* web_contents, user_did_autofill_(false), user_did_edit_autofilled_field_(false), password_generation_enabled_(false), - external_delegate_(NULL) { + external_delegate_(NULL), + ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { RegisterWithSyncService(); registrar_.Init(manager_delegate_->GetPrefs()); registrar_.Add( @@ -440,7 +439,7 @@ bool AutofillManager::OnFormSubmitted(const FormData& form, AutofillCountry::ApplicationLocale(), raw_submitted_form), base::Bind(&AutofillManager::UploadFormDataAsyncCallback, - this, + weak_ptr_factory_.GetWeakPtr(), base::Owned(submitted_form.release()), forms_loaded_timestamp_, initial_interaction_timestamp_, @@ -830,7 +829,8 @@ void AutofillManager::OnRequestAutocomplete( } base::Callback<void(const FormStructure*)> callback = - base::Bind(&AutofillManager::ReturnAutocompleteData, this); + base::Bind(&AutofillManager::ReturnAutocompleteData, + weak_ptr_factory_.GetWeakPtr()); ShowRequestAutocompleteDialog( form, frame_url, ssl_status, autofill::DIALOG_TYPE_REQUEST_AUTOCOMPLETE, callback); @@ -1007,7 +1007,8 @@ AutofillManager::AutofillManager(content::WebContents* web_contents, user_did_autofill_(false), user_did_edit_autofilled_field_(false), password_generation_enabled_(false), - external_delegate_(NULL) { + external_delegate_(NULL), + ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { DCHECK(web_contents); DCHECK(manager_delegate_); RegisterWithSyncService(); |