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

Unified Diff: ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h

Issue 2567263003: Basic UkmService implementation (Closed)
Patch Set: Rebase Created 3 years, 11 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: ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h
diff --git a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h
index d4948da8b90b3368c07f3ae4b5d6d312bd5a21ce..365e8be9fa1a41405202d907e54c950e6f4ebd7f 100644
--- a/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h
+++ b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <memory>
+#include <set>
#include <string>
#include "base/callback.h"
@@ -17,11 +18,16 @@
#include "components/metrics/metrics_service_client.h"
#include "components/metrics/profiler/tracking_synchronizer_observer.h"
#include "components/omnibox/browser/omnibox_event_global_tracker.h"
+#include "components/ukm/observers/history_delete_observer.h"
#include "ios/web/public/web_state/global_web_state_observer.h"
class IOSChromeStabilityMetricsProvider;
class PrefRegistrySimple;
+namespace ios {
+class ChromeBrowserState;
+}
+
namespace metrics {
class DriveMetricsProvider;
class MetricsService;
@@ -29,11 +35,16 @@ class MetricsStateManager;
class ProfilerMetricsProvider;
} // namespace metrics
+namespace ukm {
+class UkmService;
+}
+
// IOSChromeMetricsServiceClient provides an implementation of
// MetricsServiceClient that depends on //ios/chrome/.
class IOSChromeMetricsServiceClient
: public metrics::MetricsServiceClient,
public metrics::TrackingSynchronizerObserver,
+ public ukm::HistoryDeleteObserver,
public web::GlobalWebStateObserver {
public:
~IOSChromeMetricsServiceClient() override;
@@ -47,6 +58,7 @@ class IOSChromeMetricsServiceClient
// metrics::MetricsServiceClient:
metrics::MetricsService* GetMetricsService() override;
+ ukm::UkmService* GetUkmService() override;
void SetMetricsClientId(const std::string& client_id) override;
int32_t GetProduct() override;
std::string GetApplicationLocale() override;
@@ -64,6 +76,9 @@ class IOSChromeMetricsServiceClient
base::string16 GetRegistryBackupKey() override;
void OnRendererProcessCrash() override;
+ // ukm::HistoryDeleteObserver
+ void OnHistoryDeleted() override;
+
// web::GlobalWebStateObserver:
void WebStateDidStartLoading(web::WebState* web_state) override;
void WebStateDidStopLoading(web::WebState* web_state) override;
@@ -103,6 +118,9 @@ class IOSChromeMetricsServiceClient
// there was recent activity.
void RegisterForNotifications();
+ // Register to observe history delete events on a browser state.
+ void RegisterForHistoryDeletions(ios::ChromeBrowserState* browser_state);
+
// Called when a tab is parented.
void OnTabParented(web::WebState* web_state);
@@ -117,6 +135,9 @@ class IOSChromeMetricsServiceClient
// The MetricsService that |this| is a client of.
std::unique_ptr<metrics::MetricsService> metrics_service_;
+ // The UkmService that |this| is a client of.
+ std::unique_ptr<ukm::UkmService> ukm_service_;
+
// The IOSChromeStabilityMetricsProvider instance that was registered with
// MetricsService. Has the same lifetime as |metrics_service_|.
IOSChromeStabilityMetricsProvider* stability_metrics_provider_;

Powered by Google App Engine
This is Rietveld 408576698