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