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