910e62b5创建于 1月15日历史提交
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_THREADING_THREADING_FEATURES_H_
#define BASE_THREADING_THREADING_FEATURES_H_

#include "base/base_export.h"
#include "base/feature_list.h"
#include "build/build_config.h"

#if BUILDFLAG(IS_APPLE)
#include "base/metrics/field_trial_params.h"
#endif

namespace base {

#if BUILDFLAG(IS_APPLE)
BASE_EXPORT BASE_DECLARE_FEATURE(kOptimizedRealtimeThreadingMac);
BASE_EXPORT BASE_DECLARE_FEATURE_PARAM(
    bool,
    kOptimizedRealtimeThreadingMacPreemptible);
BASE_EXPORT BASE_DECLARE_FEATURE_PARAM(double,
                                       kOptimizedRealtimeThreadingMacBusy);
BASE_EXPORT BASE_DECLARE_FEATURE_PARAM(double,
                                       kOptimizedRealtimeThreadingMacBusyLimit);
BASE_EXPORT BASE_DECLARE_FEATURE(kUserInteractiveCompositingMac);
#endif

BASE_EXPORT BASE_DECLARE_FEATURE(kEnableHangWatcher);
BASE_EXPORT BASE_DECLARE_FEATURE(kEnableHangWatcherOnGpuProcess);
BASE_EXPORT extern const char kHangWatcherMonitoringPeriodParam[];

// Hang watcher log levels.
BASE_EXPORT extern const char kBrowserProcessIoThreadLogLevelParam[];
BASE_EXPORT extern const char kBrowserProcessUiThreadLogLevelParam[];
BASE_EXPORT extern const char kBrowserProcessThreadPoolLogLevelParam[];

BASE_EXPORT extern const char kGpuProcessIoThreadLogLevelParam[];
BASE_EXPORT extern const char kGpuProcessMainThreadLogLevelParam[];
BASE_EXPORT extern const char kGpuProcessCompositorThreadLogLevelParam[];
BASE_EXPORT extern const char kGpuProcessThreadPoolLogLevelParam[];

BASE_EXPORT extern const char kRendererProcessIoThreadLogLevelParam[];
BASE_EXPORT extern const char kRendererProcessMainThreadLogLevelParam[];
BASE_EXPORT extern const char kRendererProcessThreadPoolLogLevelParam[];
BASE_EXPORT extern const char kRendererProcessCompositorThreadLogLevelParam[];

BASE_EXPORT extern const char kUtilityProcessIoThreadLogLevelParam[];
BASE_EXPORT extern const char kUtilityProcessMainThreadLogLevelParam[];
BASE_EXPORT extern const char kUtilityProcessThreadPoolLogLevelParam[];

}  // namespace base

#endif  // BASE_THREADING_THREADING_FEATURES_H_