summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/autofill_manager.cc
diff options
context:
space:
mode:
authorisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-22 13:38:07 +0000
committerisherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-22 13:38:07 +0000
commitaab66ce81462cbe853b5f16d24fb81b6be053596 (patch)
tree3edc6213140ac463dc5fe9bb945ef5da90a45dcb /chrome/browser/autofill/autofill_manager.cc
parentaa7e7a108caf6a77991fd2c99068687726bb4b21 (diff)
downloadchromium_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.cc19
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();