#ifndef ANDROID_WEBVIEW_COMMON_DEVTOOLS_INSTRUMENTATION_H_
#define ANDROID_WEBVIEW_COMMON_DEVTOOLS_INSTRUMENTATION_H_
#include "base/trace_event/trace_event.h"
namespace android_webview {
namespace devtools_instrumentation {
namespace internal {
constexpr const char* Category() {
return "Java,devtools,disabled-by-default-devtools.timeline";
}
const char kEmbedderCallback[] = "EmbedderCallback";
const char kCallbackNameArgument[] = "callbackName";
}
class ScopedEmbedderCallbackTask {
public:
explicit ScopedEmbedderCallbackTask(const char* callback_name) {
TRACE_EVENT_BEGIN1(internal::Category(), internal::kEmbedderCallback,
internal::kCallbackNameArgument, callback_name);
}
ScopedEmbedderCallbackTask(const ScopedEmbedderCallbackTask&) = delete;
ScopedEmbedderCallbackTask& operator=(const ScopedEmbedderCallbackTask&) =
delete;
~ScopedEmbedderCallbackTask() {
TRACE_EVENT_END0(internal::Category(), internal::kEmbedderCallback);
}
};
}
}
#endif