Migrate ArcService to BrowserContextKeyedService part 11.

This CL migrates ArcMetricsService.

BUG=672829
TEST=Ran try.

Change-Id: If61b381d0aac425117601b0f514aaebac431e9bc
Reviewed-on: https://chromium-review.googlesource.com/572471
Commit-Queue: Hidehiko Abe <[email protected]>
Reviewed-by: Yusuke Sato (in China Mon-Thurs, may be offline) <[email protected]>
Cr-Commit-Position: refs/heads/master@{#487011}
diff --git a/components/arc/metrics/arc_metrics_service.h b/components/arc/metrics/arc_metrics_service.h
index 3c43931..53a22bda 100644
--- a/components/arc/metrics/arc_metrics_service.h
+++ b/components/arc/metrics/arc_metrics_service.h
@@ -11,23 +11,33 @@
 #include "base/memory/weak_ptr.h"
 #include "base/threading/thread_checker.h"
 #include "base/timer/timer.h"
-#include "components/arc/arc_service.h"
 #include "components/arc/common/metrics.mojom.h"
 #include "components/arc/common/process.mojom.h"
 #include "components/arc/instance_holder.h"
+#include "components/keyed_service/core/keyed_service.h"
 #include "mojo/public/cpp/bindings/binding.h"
 
+namespace content {
+class BrowserContext;
+}  // namespace content
+
 namespace arc {
 
 class ArcBridgeService;
 
 // Collects information from other ArcServices and send UMA metrics.
 class ArcMetricsService
-    : public ArcService,
+    : public KeyedService,
       public InstanceHolder<mojom::MetricsInstance>::Observer,
       public mojom::MetricsHost {
  public:
-  explicit ArcMetricsService(ArcBridgeService* bridge_service);
+  // Returns singleton instance for the given BrowserContext,
+  // or nullptr if the browser |context| is not allowed to use ARC.
+  static ArcMetricsService* GetForBrowserContext(
+      content::BrowserContext* context);
+
+  ArcMetricsService(content::BrowserContext* context,
+                    ArcBridgeService* bridge_service);
   ~ArcMetricsService() override;
 
   // InstanceHolder<mojom::MetricsInstance>::Observer overrides.
@@ -68,6 +78,8 @@
 
   THREAD_CHECKER(thread_checker_);
 
+  ArcBridgeService* const arc_bridge_service_;  // Owned by ArcServiceManager.
+
   mojo::Binding<mojom::MetricsHost> binding_;
 
   ProcessObserver process_observer_;