Understanding WebSocket/gRPC Support in DevTools Network Panel

10 views
Skip to first unread message

Shrinath LR

unread,
Mar 9, 2026, 11:16:27 AM (yesterday) Mar 9
to dart-gsoc
Hi Elliott Brooks and Samuel Rawlins,

I have been reading through the project idea and understanding how the Network panel currently works — it shows HTTP and HTTPS traffic clearly, but when a developer uses WebSocket connections, there is no way to see what messages are being sent and received, how large they are, or when they happened. The goal of this project is to close that gap by making WebSocket traffic as visible in DevTools as HTTP traffic is today.

My question before I begin drafting the full proposal:

The project description mentions extending dart:io, dart:developer, and the VM Service to record and expose WebSocket traffic. For the approach of recording WebSocket frames — is the intent to instrument the existing WebSocket implementation inside dart:io itself (so all WebSocket traffic is captured automatically), or is the preferred approach to create a separate wrapper or package that developers would opt into, similar to how the http_profile package works for third-party HTTP clients?

Understanding this will help me plan the right approach for the proposal and avoid going in the wrong direction early.

Thank you for your time.

Best regards,
Shrinath L R

Samuel Rawlins

unread,
Mar 9, 2026, 11:24:16 AM (yesterday) Mar 9
to Shrinath LR, dart-gsoc
On Mon, Mar 9, 2026 at 8:16 AM Shrinath LR <shrina...@gmail.com> wrote:
Hi Elliott Brooks and Samuel Rawlins,

I have been reading through the project idea and understanding how the Network panel currently works — it shows HTTP and HTTPS traffic clearly, but when a developer uses WebSocket connections, there is no way to see what messages are being sent and received, how large they are, or when they happened. The goal of this project is to close that gap by making WebSocket traffic as visible in DevTools as HTTP traffic is today.

My question before I begin drafting the full proposal:

The project description mentions extending dart:io, dart:developer, and the VM Service to record and expose WebSocket traffic. For the approach of recording WebSocket frames — is the intent to instrument the existing WebSocket implementation inside dart:io itself (so all WebSocket traffic is captured automatically), or is the preferred approach to create a separate wrapper or package that developers would opt into, similar to how the http_profile package works for third-party HTTP clients?

Great question! The idea is to instrument the existing WebSocket implementation. Whether the instrumentation is "active" would depend on a bool setting, such as HttpClient.enableTimelineLogging. This is the existing bool used by DevTools to toggle "timeline logging" on and off, but since it is in "user space," I think that a user app could flip that property in it's main method, in order to turn on logging. Not that I would recommend any user doing that, but it might be helpful for debugging the timeline logging functionality.

Understanding this will help me plan the right approach for the proposal and avoid going in the wrong direction early.

Thank you for your time.

Best regards,
Shrinath L R

--
You received this message because you are subscribed to the Google Groups "dart-gsoc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dart-gsoc+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dart-gsoc/81f20819-316b-4467-9b71-1d19507e6937n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages