From 774de1119c834f7bc53e4948d892ba8157be6a3e Mon Sep 17 00:00:00 2001 From: Vitali Zaidman Date: Wed, 20 Aug 2025 11:56:41 +0100 Subject: [PATCH] [DevTools][Protocol Manager] Fixed Protocol Manager displaying events with no params as "(pending)". MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CDP events pending doesn't make sense, since events can't be updated after they arrive (since they don't have an id anyway): https://github.com/ChromeDevTools/devtools-frontend/blob/3201a3630665afd30e0a879f4ebeae6fcc4f3806/front_end/panels/protocol_monitor/ProtocolMonitor.ts#L562-L587 Also, events are allowed to have no params based on: * JSON-RPC 2.0 Specification: https://www.jsonrpc.org/specification#:~:text=This%20member%20MAY%20be%20omitted * and CDP Wire Format: https://chromium.googlesource.com/chromium/src/+/master/third_party/blink/public/devtools_protocol/#:~:text=CDP%20is%20designed%20with%20JSON%2DRPC%202.0%20as%20the%20primary%20wire%20format The two events that caught my eye are: * Debugger.resumed https://chromedevtools.github.io/devtools-protocol/tot/Debugger/#event-resumed * and Runtime.executionContextsCleared https://chromedevtools.github.io/devtools-protocol/tot/Runtime/#event-executionContextsCleared Both are expected to be sent without params, however Chrome does send an empty object params for them. I work on the DevTools branch for React Native- https://github.com/facebook/react-native-devtools-frontend We've omitted "params" for these events as per the CDP docs, resulting in "(pending)" displayed in the Protocol Monitor. We thought we made a mistake at first, but it turns out it's just the Protocol Monitor's UI. Screenshots of the issue and the fix are attached in https://issues.chromium.org/issues/440012466. Fixed: 440012466 Change-Id: I34e2472287d66b7cbe9146deae27fac138535425 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6862800 Reviewed-by: Alex Rudenko Reviewed-by: Simon Zünd Reviewed-by: Danil Somsikov Reviewed-by: Ergün Erdoğmuş Commit-Queue: Alex Rudenko --- front_end/panels/protocol_monitor/ProtocolMonitor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front_end/panels/protocol_monitor/ProtocolMonitor.ts b/front_end/panels/protocol_monitor/ProtocolMonitor.ts index d085ca872222..eccd4dc541be 100644 --- a/front_end/panels/protocol_monitor/ProtocolMonitor.ts +++ b/front_end/panels/protocol_monitor/ProtocolMonitor.ts @@ -277,7 +277,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => { ${message.result ? html`${JSON.stringify(message.result)}` : message.error ? html`${JSON.stringify(message.error)}` : - '(pending)'} + 'id' in message ? '(pending)' : ''} ${!('id' in message) ? '' :