Record JavaScript calls in DevTools timeline on Node/ipc callback
This commit is contained in:
parent
f1f73eff04
commit
a7a06a483e
2 changed files with 16 additions and 0 deletions
|
@ -17,6 +17,8 @@
|
||||||
#include "base/files/file_path.h"
|
#include "base/files/file_path.h"
|
||||||
#include "base/message_loop/message_loop.h"
|
#include "base/message_loop/message_loop.h"
|
||||||
#include "base/path_service.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/browser/browser_thread.h"
|
||||||
#include "content/public/common/content_paths.h"
|
#include "content/public/common/content_paths.h"
|
||||||
#include "native_mate/dictionary.h"
|
#include "native_mate/dictionary.h"
|
||||||
|
@ -239,8 +241,17 @@ void NodeBindings::UvRunOnce() {
|
||||||
v8::MicrotasksScope script_scope(env->isolate(),
|
v8::MicrotasksScope script_scope(env->isolate(),
|
||||||
v8::MicrotasksScope::kRunMicrotasks);
|
v8::MicrotasksScope::kRunMicrotasks);
|
||||||
|
|
||||||
|
if (!is_browser_)
|
||||||
|
TRACE_EVENT_BEGIN1("devtools.timeline", "FunctionCall", "data",
|
||||||
|
std::unique_ptr<base::trace_event::TracedValue>(
|
||||||
|
new base::trace_event::TracedValue()));
|
||||||
|
|
||||||
// Deal with uv events.
|
// Deal with uv events.
|
||||||
int r = uv_run(uv_loop_, UV_RUN_NOWAIT);
|
int r = uv_run(uv_loop_, UV_RUN_NOWAIT);
|
||||||
|
|
||||||
|
if (!is_browser_)
|
||||||
|
TRACE_EVENT_END0("devtools.timeline", "FunctionCall");
|
||||||
|
|
||||||
if (r == 0)
|
if (r == 0)
|
||||||
message_loop_->QuitWhenIdle(); // Quit from uv.
|
message_loop_->QuitWhenIdle(); // Quit from uv.
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
#include "atom/renderer/atom_renderer_client.h"
|
#include "atom/renderer/atom_renderer_client.h"
|
||||||
#include "base/command_line.h"
|
#include "base/command_line.h"
|
||||||
#include "base/strings/string_number_conversions.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 "content/public/renderer/render_view.h"
|
||||||
#include "ipc/ipc_message_macros.h"
|
#include "ipc/ipc_message_macros.h"
|
||||||
#include "native_mate/dictionary.h"
|
#include "native_mate/dictionary.h"
|
||||||
|
@ -102,6 +104,9 @@ void AtomRenderViewObserver::EmitIPCEvent(blink::WebFrame* frame,
|
||||||
|
|
||||||
v8::Local<v8::Object> ipc;
|
v8::Local<v8::Object> ipc;
|
||||||
if (GetIPCObject(isolate, context, &ipc)) {
|
if (GetIPCObject(isolate, context, &ipc)) {
|
||||||
|
TRACE_EVENT1("devtools.timeline", "FunctionCall", "data",
|
||||||
|
std::unique_ptr<base::trace_event::TracedValue>(
|
||||||
|
new base::trace_event::TracedValue()));
|
||||||
auto args_vector = ListValueToVector(isolate, args);
|
auto args_vector = ListValueToVector(isolate, args);
|
||||||
// Insert the Event object, event.sender is ipc.
|
// Insert the Event object, event.sender is ipc.
|
||||||
mate::Dictionary event = mate::Dictionary::CreateEmpty(isolate);
|
mate::Dictionary event = mate::Dictionary::CreateEmpty(isolate);
|
||||||
|
|
Loading…
Reference in a new issue