| Index: components/autofill/core/browser/personal_data_manager_mac.mm
|
| diff --git a/components/autofill/core/browser/personal_data_manager_mac.mm b/components/autofill/core/browser/personal_data_manager_mac.mm
|
| index 834a1151461fad4a6781501ea86c6507b22508b7..745a60e6b99ce914b4adb2717f9138f7d183f683 100644
|
| --- a/components/autofill/core/browser/personal_data_manager_mac.mm
|
| +++ b/components/autofill/core/browser/personal_data_manager_mac.mm
|
| @@ -14,12 +14,15 @@
|
| #import "base/mac/scoped_nsexception_enabler.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/scoped_vector.h"
|
| +#include "base/metrics/histogram.h"
|
| +#include "base/prefs/pref_service.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "components/autofill/core/browser/autofill_country.h"
|
| #include "components/autofill/core/browser/autofill_profile.h"
|
| #include "components/autofill/core/browser/autofill_type.h"
|
| #include "components/autofill/core/browser/phone_number.h"
|
| +#include "components/autofill/core/common/autofill_pref_names.h"
|
| #include "grit/component_strings.h"
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
|
|
| @@ -46,7 +49,8 @@ class AuxiliaryProfilesImpl {
|
| virtual ~AuxiliaryProfilesImpl() {}
|
|
|
| // Import the "me" card from the Mac Address Book and fill in |profiles_|.
|
| - void GetAddressBookMeCard(const std::string& app_locale);
|
| + void GetAddressBookMeCard(const std::string& app_locale,
|
| + PrefService* pref_service);
|
|
|
| private:
|
| void GetAddressBookNames(ABPerson* me,
|
| @@ -73,8 +77,8 @@ class AuxiliaryProfilesImpl {
|
| // from the active user's address book. It looks for the user address
|
| // information and translates it to the internal list of |AutofillProfile| data
|
| // structures.
|
| -void AuxiliaryProfilesImpl::GetAddressBookMeCard(
|
| - const std::string& app_locale) {
|
| +void AuxiliaryProfilesImpl::GetAddressBookMeCard(const std::string& app_locale,
|
| + PrefService* pref_service) {
|
| profiles_.clear();
|
|
|
| // +[ABAddressBook sharedAddressBook] throws an exception internally in
|
| @@ -85,6 +89,13 @@ void AuxiliaryProfilesImpl::GetAddressBookMeCard(
|
| ABAddressBook* addressBook = base::mac::RunBlockIgnoringExceptions(^{
|
| return [ABAddressBook sharedAddressBook];
|
| });
|
| + UMA_HISTOGRAM_BOOLEAN("Autofill.AddressBookAvailable", addressBook != nil);
|
| + if (!pref_service->GetBoolean(prefs::kAutofillAuxiliaryProfilesQueried)) {
|
| + pref_service->SetBoolean(prefs::kAutofillAuxiliaryProfilesQueried, true);
|
| + UMA_HISTOGRAM_BOOLEAN("Autofill.AddressBookAvailableOnFirstAttempt",
|
| + addressBook != nil);
|
| + }
|
| +
|
| ABPerson* me = [addressBook me];
|
| if (!me)
|
| return;
|
| @@ -267,7 +278,7 @@ void AuxiliaryProfilesImpl::GetAddressBookPhoneNumbers(
|
| // Populate |auxiliary_profiles_| with the Address Book data.
|
| void PersonalDataManager::LoadAuxiliaryProfiles() const {
|
| AuxiliaryProfilesImpl impl(&auxiliary_profiles_);
|
| - impl.GetAddressBookMeCard(app_locale_);
|
| + impl.GetAddressBookMeCard(app_locale_, pref_service_);
|
| }
|
|
|
| } // namespace autofill
|
|
|