123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Copyright 2015 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_METRICS_SERVICES_MANAGER_METRICS_SERVICES_MANAGER_CLIENT_H_
- #define COMPONENTS_METRICS_SERVICES_MANAGER_METRICS_SERVICES_MANAGER_CLIENT_H_
- #include <memory>
- #include "base/memory/scoped_refptr.h"
- namespace metrics {
- class MetricsServiceClient;
- class MetricsStateManager;
- }
- namespace network {
- class SharedURLLoaderFactory;
- }
- namespace variations {
- class VariationsService;
- }
- namespace metrics_services_manager {
- // MetricsServicesManagerClient is an interface that allows
- // MetricsServicesManager to interact with its embedder.
- class MetricsServicesManagerClient {
- public:
- virtual ~MetricsServicesManagerClient() {}
- // Methods that create the various services in the context of the embedder.
- virtual std::unique_ptr<variations::VariationsService>
- CreateVariationsService() = 0;
- virtual std::unique_ptr<metrics::MetricsServiceClient>
- CreateMetricsServiceClient() = 0;
- // Gets the MetricsStateManager, creating it if it has not already been
- // created.
- virtual metrics::MetricsStateManager* GetMetricsStateManager() = 0;
- // Returns the URL loader factory which the metrics services should use.
- virtual scoped_refptr<network::SharedURLLoaderFactory>
- GetURLLoaderFactory() = 0;
- // Returns whether metrics reporting is enabled.
- virtual bool IsMetricsReportingEnabled() = 0;
- // Returns whether metrics consent is given.
- virtual bool IsMetricsConsentGiven() = 0;
- // Returns whether there are any OffTheRecord browsers/tabs open.
- virtual bool IsOffTheRecordSessionActive() = 0;
- // Update the running state of metrics services managed by the embedder, for
- // example, crash reporting.
- virtual void UpdateRunningServices(bool may_record, bool may_upload) {}
- };
- } // namespace metrics_services_manager
- #endif // COMPONENTS_METRICS_SERVICES_MANAGER_METRICS_SERVICES_MANAGER_CLIENT_H_
|