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_; |