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

Unified Diff: components/autofill/core/browser/autofill_metrics.h

Issue 884843002: Recording in UMA when a user interacted with an address form or a credit card form. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: inlining web_profiles() call Created 5 years, 10 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_metrics.h
diff --git a/components/autofill/core/browser/autofill_metrics.h b/components/autofill/core/browser/autofill_metrics.h
index 92539ba77a68ecf710118bcbc385cd717ee9711c..37800973dd96b710a590e3866419be445e9a4aea 100644
--- a/components/autofill/core/browser/autofill_metrics.h
+++ b/components/autofill/core/browser/autofill_metrics.h
@@ -243,6 +243,18 @@ class AutofillMetrics {
NUM_USER_HAPPINESS_METRICS,
};
+ // Form Events for autofill.
+ // These events are triggered separetly for address and credit card forms.
+ enum FormEvent {
+ // User interacted with a field of this kind of form. Logged only once per
+ // page load.
+ FORM_EVENT_INTERACTED_ONCE = 0,
+ // TODO(waltercacau): Remove the 2 here once we add more events.
+ // This circumvents an assertion that gets triggered when you have
+ // only one bucket.
+ NUM_FORM_EVENTS = 2,
+ };
+
// For measuring the network request time of various Wallet API calls. See
// WalletClient::RequestType.
enum WalletApiCallMetric {
@@ -415,6 +427,35 @@ class AutofillMetrics {
// form.
static void LogAddressSuggestionsCount(size_t num_suggestions);
+ // Utility to autofill form events in the relevant histograms depending on
+ // the presence of server and/or local data.
+ class FormEventLogger {
+ public:
+ FormEventLogger(bool is_for_credit_card);
+
+ // Should be called when the user interacted with an autofillable form.
+ void OnDidInteractWithAutofillableForm();
+
+ // Sets if server data is available or not. If not called assumed false.
+ inline void set_is_server_data_available(bool is_server_data_available) {
+ is_server_data_available_ = is_server_data_available;
+ }
+
+ // Sets if server data is available or not. If not called assumed false.
+ inline void set_is_local_data_available(bool is_local_data_available) {
+ is_local_data_available_ = is_local_data_available;
+ }
+
+ private:
+ // Logs a form event.
+ void Log(FormEvent event) const;
+
+ bool is_for_credit_card_;
+ bool is_server_data_available_;
+ bool is_local_data_available_;
+ bool has_logged_interacted_;
+ };
+
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(AutofillMetrics);
};
« no previous file with comments | « components/autofill/core/browser/autofill_manager.cc ('k') | components/autofill/core/browser/autofill_metrics.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698