| Index: components/autofill/browser/personal_data_manager.cc
|
| diff --git a/components/autofill/browser/personal_data_manager.cc b/components/autofill/browser/personal_data_manager.cc
|
| index 58b8e17b726eaa514331f968ad408de55081e332..f05242f58b1659124ad26c6fa6d329b548335f2d 100644
|
| --- a/components/autofill/browser/personal_data_manager.cc
|
| +++ b/components/autofill/browser/personal_data_manager.cc
|
| @@ -9,6 +9,7 @@
|
| #include <iterator>
|
|
|
| #include "base/logging.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -131,15 +132,20 @@ void PersonalDataManager::Init(BrowserContext* browser_context) {
|
| LoadProfiles();
|
| LoadCreditCards();
|
|
|
| - notification_registrar_.Add(
|
| - this,
|
| - chrome::NOTIFICATION_AUTOFILL_MULTIPLE_CHANGED,
|
| - autofill_data->GetNotificationSource());
|
| + autofill_data->AddObserver(this);
|
| }
|
|
|
| PersonalDataManager::~PersonalDataManager() {
|
| CancelPendingQuery(&pending_profiles_query_);
|
| CancelPendingQuery(&pending_creditcards_query_);
|
| +
|
| + if (!browser_context_)
|
| + return;
|
| +
|
| + scoped_refptr<AutofillWebDataService> autofill_data(
|
| + AutofillWebDataService::FromBrowserContext(browser_context_));
|
| + if (autofill_data.get())
|
| + autofill_data->RemoveObserver(this);
|
| }
|
|
|
| void PersonalDataManager::OnWebDataServiceRequestDone(
|
| @@ -182,6 +188,10 @@ void PersonalDataManager::OnWebDataServiceRequestDone(
|
| }
|
| }
|
|
|
| +void PersonalDataManager::AutofillMultipleChanged() {
|
| + Refresh();
|
| +}
|
| +
|
| void PersonalDataManager::AddObserver(PersonalDataManagerObserver* observer) {
|
| observers_.AddObserver(observer);
|
| }
|
| @@ -191,22 +201,6 @@ void PersonalDataManager::RemoveObserver(
|
| observers_.RemoveObserver(observer);
|
| }
|
|
|
| -void PersonalDataManager::Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - DCHECK_EQ(type, chrome::NOTIFICATION_AUTOFILL_MULTIPLE_CHANGED);
|
| -
|
| - if (DCHECK_IS_ON()) {
|
| - scoped_refptr<AutofillWebDataService> autofill_data(
|
| - AutofillWebDataService::FromBrowserContext(browser_context_));
|
| -
|
| - DCHECK(autofill_data.get() &&
|
| - autofill_data->GetNotificationSource() == source);
|
| - }
|
| -
|
| - Refresh();
|
| -}
|
| -
|
| bool PersonalDataManager::ImportFormData(
|
| const FormStructure& form,
|
| const CreditCard** imported_credit_card) {
|
|
|