Add Primary-ABI-Migration UMA Metrics

This introduces 4 new histograms to add UMA metrics for
Primary ABI Migration.

ag/12863773 is the companion CL on ARC++ side.

Bug: b/170238493
Change-Id: Ib0f970985d728630ec1297a1b38f78f08bec109f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490673
Commit-Queue: Vaibhav Raheja <[email protected]>
Reviewed-by: Josh Horwich <[email protected]>
Reviewed-by: Long Cheng <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: Robert Kaplow <[email protected]>
Cr-Commit-Position: refs/heads/master@{#823781}
diff --git a/components/arc/metrics/arc_metrics_service.h b/components/arc/metrics/arc_metrics_service.h
index 786476e..55d5817 100644
--- a/components/arc/metrics/arc_metrics_service.h
+++ b/components/arc/metrics/arc_metrics_service.h
@@ -90,6 +90,11 @@
   void ReportNativeBridge(mojom::NativeBridgeType native_bridge_type) override;
   void ReportCompanionLibApiUsage(mojom::CompanionLibApiId api_id) override;
   void ReportAppKill(mojom::AppKillPtr app_kill) override;
+  void ReportArcCorePriAbiMigEvent(
+      mojom::ArcCorePriAbiMigEvent event_type) override;
+  void ReportArcCorePriAbiMigFailedTries(uint32_t failed_attempts) override;
+  void ReportArcCorePriAbiMigDowngradeDelay(base::TimeDelta delay) override;
+  void ReportArcCorePriAbiMigBootTime(base::TimeDelta duration) override;
 
   // wm::ActivationChangeObserver overrides.
   // Records to UMA when a user has interacted with an ARC app window.
@@ -185,6 +190,9 @@
   void OnArcStartTimeRetrieved(std::vector<mojom::BootProgressEventPtr> events,
                                mojom::BootType boot_type,
                                base::Optional<base::TimeTicks> arc_start_time);
+  void OnArcStartTimeForPriAbiMigration(
+      base::TimeTicks durationTicks,
+      base::Optional<base::TimeTicks> arc_start_time);
 
   // Notify AppKillObservers.
   void NotifyLowMemoryKill();