blob: a920e3852cd7a945b480de56d42ba637353ec1a0 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file defines all the public base::FeatureList features for the
// services/tracing module.
#ifndef SERVICES_TRACING_PUBLIC_CPP_TRACING_FEATURES_H_
#define SERVICES_TRACING_PUBLIC_CPP_TRACING_FEATURES_H_
#include "base/component_export.h"
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
namespace features {
// The features should be documented alongside the definition of their values
// in the .cc file.
extern const COMPONENT_EXPORT(TRACING_CPP) base::Feature
kTracingServiceInProcess;
extern const COMPONENT_EXPORT(TRACING_CPP) base::Feature
kEnablePerfettoSystemTracing;
extern const COMPONENT_EXPORT(TRACING_CPP) base::Feature
kEnablePerfettoSystemBackgroundTracing;
COMPONENT_EXPORT(TRACING_CPP)
BASE_DECLARE_FEATURE_PARAM(int, kPerfettoSMBPageSizeBytes);
COMPONENT_EXPORT(TRACING_CPP)
BASE_DECLARE_FEATURE_PARAM(int, kPerfettoSharedMemorySizeBytes);
} // namespace features
namespace tracing {
// TODO(crbug.com/40574594): Figure out a good buffer size.
inline constexpr size_t kDefaultSharedMemorySizeBytes =
4 * 1024 * 1024; // 4 MB
inline constexpr size_t kDefaultSMBPageSizeBytes = 4 * 1024;
// Returns true if the system tracing Perfetto producer should be setup. This
// can be influenced by the feature above or other situations (like debug
// android builds).
// This function is safe to call even if feature flags are not yet initialized.
bool COMPONENT_EXPORT(TRACING_CPP) ShouldSetupSystemTracing();
// Returns true if the system tracing backend is available for background
// tracing scenarios.
bool COMPONENT_EXPORT(TRACING_CPP) SystemBackgroundTracingEnabled();
} // namespace tracing
#endif // SERVICES_TRACING_PUBLIC_CPP_TRACING_FEATURES_H_