diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index e869d2a7031c..25d9db4af9c3 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -17,6 +17,8 @@ #include "base/files/file_path.h" #include "base/message_loop/message_loop.h" #include "base/path_service.h" +#include "base/trace_event/trace_event.h" +#include "base/trace_event/trace_event_argument.h" #include "content/public/browser/browser_thread.h" #include "content/public/common/content_paths.h" #include "native_mate/dictionary.h" @@ -239,8 +241,17 @@ void NodeBindings::UvRunOnce() { v8::MicrotasksScope script_scope(env->isolate(), v8::MicrotasksScope::kRunMicrotasks); + if (!is_browser_) + TRACE_EVENT_BEGIN1("devtools.timeline", "FunctionCall", "data", + std::unique_ptr( + new base::trace_event::TracedValue())); + // Deal with uv events. int r = uv_run(uv_loop_, UV_RUN_NOWAIT); + + if (!is_browser_) + TRACE_EVENT_END0("devtools.timeline", "FunctionCall"); + if (r == 0) message_loop_->QuitWhenIdle(); // Quit from uv. diff --git a/atom/renderer/atom_render_view_observer.cc b/atom/renderer/atom_render_view_observer.cc index 6ca8b3e1dc03..5e030b6285d6 100644 --- a/atom/renderer/atom_render_view_observer.cc +++ b/atom/renderer/atom_render_view_observer.cc @@ -18,6 +18,8 @@ #include "atom/renderer/atom_renderer_client.h" #include "base/command_line.h" #include "base/strings/string_number_conversions.h" +#include "base/trace_event/trace_event.h" +#include "base/trace_event/trace_event_argument.h" #include "content/public/renderer/render_view.h" #include "ipc/ipc_message_macros.h" #include "native_mate/dictionary.h" @@ -102,6 +104,9 @@ void AtomRenderViewObserver::EmitIPCEvent(blink::WebFrame* frame, v8::Local ipc; if (GetIPCObject(isolate, context, &ipc)) { + TRACE_EVENT1("devtools.timeline", "FunctionCall", "data", + std::unique_ptr( + new base::trace_event::TracedValue())); auto args_vector = ListValueToVector(isolate, args); // Insert the Event object, event.sender is ipc. mate::Dictionary event = mate::Dictionary::CreateEmpty(isolate);