blob: fc5919635826b788489c8a2b3c858b539a66e190 [file] [log] [blame]
// Copyright 2018 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.
#include "components/metrics/expired_histogram_util.h"
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
#include "base/metrics/statistics_recorder.h"
#include "components/metrics/expired_histograms_checker.h"
namespace metrics {
namespace {
const base::Feature kExpiredHistogramLogicFeature{
"ExpiredHistogramLogic", base::FEATURE_DISABLED_BY_DEFAULT};
// TODO(jwd): Remove when the study config is updated with the new param.
const base::FeatureParam<std::string> kWhitelistParam{
&kExpiredHistogramLogicFeature, "whitelist", ""};
const base::FeatureParam<std::string> kAllowlistParam{
&kExpiredHistogramLogicFeature, "allowlist", ""};
} // namespace
void EnableExpiryChecker(const uint64_t* expired_histograms_hashes,
size_t num_expired_histograms) {
DCHECK(base::FeatureList::GetInstance());
if (base::FeatureList::IsEnabled(kExpiredHistogramLogicFeature)) {
std::string allowlist = kAllowlistParam.Get();
// TODO(jwd): Remove when the study config is updated with the new param.
if (allowlist.empty())
allowlist = kWhitelistParam.Get();
base::StatisticsRecorder::SetRecordChecker(
std::make_unique<ExpiredHistogramsChecker>(
expired_histograms_hashes, num_expired_histograms, allowlist));
}
}
} // namespace metrics