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 10 namespace android_webview { 11 namespace devtools_instrumentation { 12 13 namespace internal { 14 const char kCategory[] = "Java,devtools,disabled-by-default-devtools.timeline"; 15 const char kEmbedderCallback[] = "EmbedderCallback"; 16 const char kCallbackNameArgument[] = "callbackName"; 17 } // namespace internal 18 19 class ScopedEmbedderCallbackTask { 20 public: ScopedEmbedderCallbackTask(const char * callback_name)21 ScopedEmbedderCallbackTask(const char* callback_name) { 22 TRACE_EVENT_BEGIN1(internal::kCategory, 23 internal::kEmbedderCallback, 24 internal::kCallbackNameArgument, 25 callback_name); 26 } ~ScopedEmbedderCallbackTask()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