[go: nahoru, domu]

blob: c060c4d2604d94ee56ca58f8d1d23a0e70b36d27 [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// 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;
class SyntheticTrialRegistry;
}
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(
variations::SyntheticTrialRegistry* synthetic_trial_registry) = 0;
virtual std::unique_ptr<metrics::MetricsServiceClient>
CreateMetricsServiceClient(
variations::SyntheticTrialRegistry* synthetic_trial_registry) = 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) {}
// Called when a document starts loading for the first time.
virtual void OnPageLoadStarted() {}
};
} // namespace metrics_services_manager
#endif // COMPONENTS_METRICS_SERVICES_MANAGER_METRICS_SERVICES_MANAGER_CLIENT_H_