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

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

Issue 2740633002: [Autofill] Add upstreaming UKM (Closed)
Patch Set: Created 3 years, 9 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_ukm.h
diff --git a/components/autofill/core/browser/autofill_ukm.h b/components/autofill/core/browser/autofill_ukm.h
new file mode 100644
index 0000000000000000000000000000000000000000..e3dc42c267aa7d8a99101105fe625ea740ab4d74
--- /dev/null
+++ b/components/autofill/core/browser/autofill_ukm.h
@@ -0,0 +1,48 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_UKM_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_UKM_H_
+
+#include "base/macros.h"
+#include "components/autofill/core/browser/autofill_metrics.h"
+
+class GURL;
+
+namespace ukm {
+class UkmService;
+} // namespace ukm
+
+namespace autofill {
+
+// A class to log Autofill related Url Keyed Metrics.
Mathieu 2017/03/08 22:33:49 Mention why it exists: sometimes the URL is not in
+class AutofillUkm {
Mathieu 2017/03/08 22:33:49 Would rename this AutofillUkmSession
+ public:
+ AutofillUkm(ukm::UkmService* ukm_service);
+ ~AutofillUkm();
+
+ // Sets the URL to be used when logging the next card upload decision metric.
+ void SetCardUploadDecisionMetricUrl(const GURL& url);
+
+ // Logs the card upload decision metric based on the set URL. Does nothing if
+ // no URL is set. Resets the URL after the log.
+ void LogCardUploadDecisionMetric(
+ AutofillMetrics::CardUploadDecisionMetric upload_decision);
+
+ private:
+ // Returns whether a UKM should be logged for the specified |url|.
+ bool ShouldLog(const GURL& url);
+
+ // The URL to use for the next card upload decision metric log.
+ std::unique_ptr<GURL> card_upload_decision_url_;
+
+ // Used to log URL-keyed metrics. This pointer will outlive |this|.
+ ukm::UkmService* ukm_service_;
+
+ DISALLOW_IMPLICIT_CONSTRUCTORS(AutofillUkm);
Mathieu 2017/03/08 22:33:49 curious, why not DISALLOW_COPY_AND_ASSIGN?
+};
+
+} // namespace autofill
+
+#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_UKM_H_

Powered by Google App Engine
This is Rietveld 408576698