feat: Identify webContents
of renderers via custom protocol
#762
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Electron SDK supports two ways for the renderers to send envelopes and scope to the main process.
sender: WebContents
toProtocolRequest
electron/electron#31718)This has meant custom protocol has not supported all the same context as Electron IPC because we're missing the reference to the
webContents
.This is a problem for renderer ANR detection. We should be able to use the Electron debugger API to capture stack traces but once a renderer stops sending us mesages, we need to know which
webContents
to attach to!This PR adds a means for us to identify renderers over a custom protocol:
window.__SENTRY_RENDERER_ID__
is set to a uuidexecuteJavaScript
to fetch the id and save the mapping between id andwebContents
webContents
the message came from