From 1f3561227d8ec6cdb1e0f26189ec07946bd1eb9f Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Fri, 6 Dec 2019 13:15:23 -0800 Subject: [PATCH] feat: add tracing info to WebContents IPC methods (#21404) --- docs/api/content-tracing.md | 3 +++ shell/browser/api/atom_api_web_contents.cc | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/docs/api/content-tracing.md b/docs/api/content-tracing.md index 2a4a723b9e..f44e474f14 100644 --- a/docs/api/content-tracing.md +++ b/docs/api/content-tracing.md @@ -38,6 +38,9 @@ Get a set of category groups. The category groups can change as new code paths are reached. See also the [list of built-in tracing categories](https://chromium.googlesource.com/chromium/src/+/master/base/trace_event/builtin_categories.h). +> **NOTE:** Electron adds a non-default tracing category called `"electron"`. +> This category can be used to capture Electron-specific tracing events. + ### `contentTracing.startRecording(options)` * `options` ([TraceConfig](structures/trace-config.md) | [TraceCategoriesAndOptions](structures/trace-categories-and-options.md)) diff --git a/shell/browser/api/atom_api_web_contents.cc b/shell/browser/api/atom_api_web_contents.cc index 81034d2ea2..65d23ebf84 100644 --- a/shell/browser/api/atom_api_web_contents.cc +++ b/shell/browser/api/atom_api_web_contents.cc @@ -1035,6 +1035,7 @@ void WebContents::OnElectronBrowserConnectionError() { void WebContents::Message(bool internal, const std::string& channel, blink::CloneableMessage arguments) { + TRACE_EVENT1("electron", "WebContents::Message", "channel", channel); // webContents.emit('-ipc-message', new Event(), internal, channel, // arguments); EmitWithSender("-ipc-message", bindings_.dispatch_context(), InvokeCallback(), @@ -1045,6 +1046,7 @@ void WebContents::Invoke(bool internal, const std::string& channel, blink::CloneableMessage arguments, InvokeCallback callback) { + TRACE_EVENT1("electron", "WebContents::Invoke", "channel", channel); // webContents.emit('-ipc-invoke', new Event(), internal, channel, arguments); EmitWithSender("-ipc-invoke", bindings_.dispatch_context(), std::move(callback), internal, channel, std::move(arguments)); @@ -1054,6 +1056,7 @@ void WebContents::MessageSync(bool internal, const std::string& channel, blink::CloneableMessage arguments, MessageSyncCallback callback) { + TRACE_EVENT1("electron", "WebContents::MessageSync", "channel", channel); // webContents.emit('-ipc-message-sync', new Event(sender, message), internal, // channel, arguments); EmitWithSender("-ipc-message-sync", bindings_.dispatch_context(), @@ -1065,6 +1068,7 @@ void WebContents::MessageTo(bool internal, int32_t web_contents_id, const std::string& channel, blink::CloneableMessage arguments) { + TRACE_EVENT1("electron", "WebContents::MessageTo", "channel", channel); auto* web_contents = gin_helper::TrackableObject::FromWeakMapID( isolate(), web_contents_id); @@ -1076,6 +1080,7 @@ void WebContents::MessageTo(bool internal, void WebContents::MessageHost(const std::string& channel, blink::CloneableMessage arguments) { + TRACE_EVENT1("electron", "WebContents::MessageHost", "channel", channel); // webContents.emit('ipc-message-host', new Event(), channel, args); EmitWithSender("ipc-message-host", bindings_.dispatch_context(), InvokeCallback(), channel, std::move(arguments));