1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ANDROID_WEBVIEW_COMMON_DEVTOOLS_INSTRUMENTATION_H_
6#define ANDROID_WEBVIEW_COMMON_DEVTOOLS_INSTRUMENTATION_H_
7
8#include "base/debug/trace_event.h"
9
10namespace android_webview {
11namespace devtools_instrumentation {
12
13namespace internal {
14const char kCategory[] = "Java,devtools,disabled-by-default-devtools.timeline";
15const char kEmbedderCallback[] = "EmbedderCallback";
16const char kCallbackNameArgument[] = "callbackName";
17}  // namespace internal
18
19class ScopedEmbedderCallbackTask {
20 public:
21  ScopedEmbedderCallbackTask(const char* callback_name) {
22    TRACE_EVENT_BEGIN1(internal::kCategory,
23                       internal::kEmbedderCallback,
24                       internal::kCallbackNameArgument,
25                       callback_name);
26  }
27  ~ScopedEmbedderCallbackTask() {
28    TRACE_EVENT_END0(internal::kCategory,
29                     internal::kEmbedderCallback);
30  }
31
32 private:
33  DISALLOW_COPY_AND_ASSIGN(ScopedEmbedderCallbackTask);
34};
35
36}  // namespace devtools_instrumentation
37}  // namespace android_webview
38
39#endif  // ANDROID_WEBVIEW_COMMON_DEVTOOLS_INSTRUMENTATION_H_
40