blob: 9629d6d9216ebc26d6894c46c42f71d7a7fc3c42 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_METRICS_METRICS_PROVIDER_COMMON_H_
#define CHROME_BROWSER_PERFORMANCE_MANAGER_METRICS_METRICS_PROVIDER_COMMON_H_
#include "components/metrics/metrics_provider.h"
#include "base/timer/timer.h"
namespace performance_manager {
// A metrics provider to add some performance manager related metrics to the UMA
// protos on each upload.
class MetricsProviderCommon : public ::metrics::MetricsProvider {
public:
MetricsProviderCommon();
~MetricsProviderCommon() override;
// metrics::MetricsProvider:
// This is only called from UMA code but is public for testing.
void ProvideCurrentSessionData(
::metrics::ChromeUserMetricsExtension* /*uma_proto*/) override;
private:
void RecordAvailableMemoryMetrics();
void RecordA11yFlags();
base::RepeatingTimer available_memory_metrics_timer_;
};
} // namespace performance_manager
#endif // CHROME_BROWSER_PERFORMANCE_MANAGER_METRICS_METRICS_PROVIDER_COMMON_H_