chromium/mojo/public/cpp/bindings/tracing_helpers.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MOJO_PUBLIC_CPP_BINDINGS_TRACING_HELPERS_H_
#define MOJO_PUBLIC_CPP_BINDINGS_TRACING_HELPERS_H_

#include "base/trace_event/trace_event.h"
#include "build/buildflag.h"
#include "mojo/public/cpp/bindings/message.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"

// Helper for determine trace category for high-level coarse mojo events:
// - If detailed mojo tracing is enabled, these events are not useful in most
// circumstances (e.g. they capture only interface name, while detailed mojo
// event tracing emits events which contain both interface and method names)
// apart from debugging mojo or trace events, so "disabled-by-default-mojom"
// category is used.
// - If detailed mojo tracing is disabled, then the passed category is used.
#if BUILDFLAG(MOJO_TRACE_ENABLED)
#define TRACE_CATEGORY_OR_DISABLED_BY_DEFAULT_MOJOM
#else
#define TRACE_CATEGORY_OR_DISABLED_BY_DEFAULT_MOJOM(category)
#endif

#endif  // MOJO_PUBLIC_CPP_BINDINGS_TRACING_HELPERS_H_