chrome-protocol-proxy is small reverse websocket proxy designed for
chrome debugging protocol. It's purpose is to capture messages written to and received from Chrome Debugging Protocol, coalesce requests with responses, unpack messages from Target domain and provide easy to read, colored output. This tool is a fork of (and heavily inspired by) chromedp-proxy.
- colored output,
- protocol frames filtering,
- request-response coalescing,
- interprets Target.sendMessageToTarget requests,
- interprets Target.receivedMessageFromTarget responses and events with both targetId and newly introduced sessionId,
- calculates and displays time delta between consecutive frames,
- writes logs and splits them based on connection id and target/session id.
go get -u github.com/wendigo/chrome-protocol-proxy
Usage of chrome-protocol-proxy: -d write logs file per targetId -delta show delta time between log entries -exclude value exclude requests/responses/events matching pattern (default exclude = ) -i include request frames as they are sent -include value display only requests/responses/events matching pattern (default include = ) -l string listen address (default "localhost:9223") -log-dir string logs directory (default "logs") -m display time in microseconds -once debug single session -q do not show logs on stdout -r string remote address (default "localhost:9222") -s shorten requests and responses
tips & tricks
When using Headless Chrome navigate to inspectable pages and open inspector pane for url of your choosing. Then replace port in
?ws= query param and point it to running
chrome-protocol-proxy instance (default port is 9223). Now you're able to see what Chrome Debugger is exactly doing. Enjoy!