blob: b7c3edf3541aa9ad82ea0c5c7d49f4eb8b6e18ae [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 "ios/chrome/browser/crash_report/crash_report_flags.h"
#include "base/metrics/field_trial_params.h"
namespace crash_report {
const base::Feature kBreakpadNoDelayInitialUpload{
"BreakpadNoDelayInitialUpload", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kDetectMainThreadFreeze{"DetectMainThreadFreeze",
base::FEATURE_DISABLED_BY_DEFAULT};
// The different timeout value for kDetectMainThreadFreeze.
const char kDetectMainThreadFreezeParameterName[] = "timeout";
const char kDetectMainThreadFreezeParameter3s[] = "3s";
const char kDetectMainThreadFreezeParameter5s[] = "5s";
const char kDetectMainThreadFreezeParameter7s[] = "7s";
const char kDetectMainThreadFreezeParameter9s[] = "9s";
int TimeoutForMainThreadFreezeDetection() {
if (!base::FeatureList::IsEnabled(kDetectMainThreadFreeze)) {
return 0;
}
std::string parameter = base::GetFieldTrialParamValueByFeature(
kDetectMainThreadFreeze, kDetectMainThreadFreezeParameterName);
if (parameter == kDetectMainThreadFreezeParameter3s) {
return 3;
}
if (parameter == kDetectMainThreadFreezeParameter5s) {
return 5;
}
if (parameter == kDetectMainThreadFreezeParameter7s) {
return 7;
}
if (parameter == kDetectMainThreadFreezeParameter9s) {
return 9;
}
return 0;
}
} // namespace crash_report