Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Unified Diff: components/autofill/core/browser/autofill_external_delegate.cc

Issue 301343002: mac: Clean up autofill integration with Address Book. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@autofill_cleanup2_base
Patch Set: Autofill test failures on Android. Undo a change to autofill_test_utils.cc. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/autofill_external_delegate.cc
diff --git a/components/autofill/core/browser/autofill_external_delegate.cc b/components/autofill/core/browser/autofill_external_delegate.cc
index b8e4a066ec1ac94a3cf072cae6b38c8297e964e1..57ef7c74aacbd7e2bcfffd499dc0dbfbcc0676c3 100644
--- a/components/autofill/core/browser/autofill_external_delegate.cc
+++ b/components/autofill/core/browser/autofill_external_delegate.cc
@@ -5,6 +5,7 @@
#include "components/autofill/core/browser/autofill_external_delegate.h"
#include "base/message_loop/message_loop.h"
+#include "base/metrics/histogram.h"
#include "base/strings/utf_string_conversions.h"
#include "components/autofill/core/browser/autocomplete_history_manager.h"
#include "components/autofill/core/browser/autofill_driver.h"
@@ -13,6 +14,31 @@
#include "grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
+#if defined(OS_MACOSX) && !defined(OS_IOS)
+namespace {
+
+enum AccessAddressBookEventType {
+ // An Autofill entry was shown that prompts the user to give Chrome access to
+ // the user's Address Book.
+ SHOWED_ACCESS_ADDRESS_BOOK_ENTRY = 0,
+
+ // The user selected the Autofill entry which prompts Chrome to access the
+ // user's Address Book.
+ SELECTED_ACCESS_ADDRESS_BOOK_ENTRY = 1,
+
+ // Always keep this at the end.
+ ACCESS_ADDRESS_BOOK_ENTRY_MAX,
+};
+
+// Emits an entry for the histogram.
+void EmitHistogram(AccessAddressBookEventType type) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "Autofill.MacAddressBook", type, ACCESS_ADDRESS_BOOK_ENTRY_MAX);
+}
+
+} // namespace
+#endif // defined(OS_MACOSX) && !defined(OS_IOS)
+
namespace autofill {
AutofillExternalDelegate::AutofillExternalDelegate(AutofillManager* manager,
@@ -98,10 +124,12 @@ void AutofillExternalDelegate::OnSuggestionsReturned(
values.push_back(
l10n_util::GetStringUTF16(IDS_AUTOFILL_ACCESS_MAC_CONTACTS));
labels.push_back(base::string16());
- icons.push_back(base::string16());
+ icons.push_back(base::ASCIIToUTF16("macContactsIcon"));
ids.push_back(POPUP_ITEM_ID_MAC_ACCESS_CONTACTS);
+
+ EmitHistogram(SHOWED_ACCESS_ADDRESS_BOOK_ENTRY);
}
-#endif
+#endif // defined(OS_MACOSX) && !defined(OS_IOS)
if (values.empty()) {
// No suggestions, any popup currently showing is obsolete.
@@ -171,6 +199,8 @@ void AutofillExternalDelegate::DidAcceptSuggestion(const base::string16& value,
driver_->RendererShouldFillFieldWithValue(value);
} else if (identifier == POPUP_ITEM_ID_MAC_ACCESS_CONTACTS) {
#if defined(OS_MACOSX) && !defined(OS_IOS)
+ EmitHistogram(SELECTED_ACCESS_ADDRESS_BOOK_ENTRY);
+
// User wants to give Chrome access to user's address book.
manager_->AccessAddressBook();
@@ -184,7 +214,7 @@ void AutofillExternalDelegate::DidAcceptSuggestion(const base::string16& value,
// NSRunLoop which will cause all windows to lose focus. When the NSEvent
// is processed, it will be sent to the renderer which will cause the text
// field to lose focus. This returns an IPC to Chrome which will dismiss
- // the autofill popup. We post a task which we expect to run after the
+ // the Autofill popup. We post a task which we expect to run after the
// NSEvent has been processed by the NSRunLoop. It pings the renderer,
// which returns an IPC acknowledging the ping. At that time, redisplay
// the popup. FIFO processing of IPCs ensures that all side effects of the
@@ -200,7 +230,7 @@ void AutofillExternalDelegate::DidAcceptSuggestion(const base::string16& value,
delay);
#else
NOTREACHED();
-#endif
+#endif // defined(OS_MACOSX) && !defined(OS_IOS)
} else {
FillAutofillFormData(identifier, false);
}
@@ -231,7 +261,7 @@ void AutofillExternalDelegate::Reset() {
}
void AutofillExternalDelegate::OnPingAck() {
- // Reissue the most recent query, which will reopen the autofill popup.
+ // Reissue the most recent query, which will reopen the Autofill popup.
manager_->OnQueryFormFieldAutofill(query_id_,
query_form_,
query_field_,
@@ -272,7 +302,7 @@ void AutofillExternalDelegate::ApplyAutofillWarnings(
// suggestions to show, show a warning instead. Otherwise, clear out the
// list of suggestions.
if (!unique_ids->empty() && (*unique_ids)[0] > 0) {
- // If autofill is disabled and we had suggestions, show a warning instead.
+ // If Autofill is disabled and we had suggestions, show a warning instead.
values->assign(
1, l10n_util::GetStringUTF16(IDS_AUTOFILL_WARNING_FORM_DISABLED));
labels->assign(1, base::string16());
@@ -286,8 +316,8 @@ void AutofillExternalDelegate::ApplyAutofillWarnings(
}
} else if (unique_ids->size() > 1 &&
(*unique_ids)[0] == POPUP_ITEM_ID_WARNING_MESSAGE) {
- // If we received a warning instead of suggestions from autofill but regular
- // suggestions from autocomplete, don't show the autofill warning.
+ // If we received a warning instead of suggestions from Autofill but regular
+ // suggestions from autocomplete, don't show the Autofill warning.
values->erase(values->begin());
labels->erase(labels->begin());
icons->erase(icons->begin());
@@ -365,6 +395,6 @@ void AutofillExternalDelegate::InsertDataListValues(
void AutofillExternalDelegate::PingRenderer() {
driver_->PingRenderer();
}
-#endif
+#endif // defined(OS_MACOSX) && !defined(OS_IOS)
} // namespace autofill
« no previous file with comments | « components/autofill/core/browser/autofill_external_delegate.h ('k') | components/autofill/core/browser/autofill_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698