Skip to content
Jan Odvarko edited this page Sep 1, 2015 · 15 revisions

This page serves as a central place for collecting information about required WebSocket platform API. The goal is extending RDP inspector to track also WebSocket connections and data sent over it.

Requirements

  • Get list of existing WS connections (we need to filter per tab)
  • Track opening and closing of WS connections (we need to filter per tab)
  • Intercept all sent/received frames for specific connection
  • Access full frame data (both frame meta data as well as the payload)

Questions:

  • Why tracking messages isn't enough?

Bugzilla

List of existing bugzilla reports

  • Bug 885508 - Allow developers to inspect websocket connections
    • Patch monkey patching WebSocket JS API availble, but it's dead end, platform API needed
    • Comment #28, great WS background introduction
  • Bug 927481 - observe in-content WebSocket frames
    • Request to observer WS frames. Observing messages doesn't seem to be enough (a message can span more frames).
  • Bug 977858 - Should be able to attach an nsiWebSocketListener to a web socket that's already open
    • Suggested API: .SetObserver(nsIWebsocketListener, nsIEventTarget);
    • Comment #3 suggests that only a single observer will be supported. No way, there can be more extensions observing the WS connections.
  • Bug 720176 - WebConsole should be able to log WebSocket messages
  • Bug 765651 - WebSocket connections are listed with the "http:" protocol in the console.
  • Jim: Bug 1103189 - WebSockets should allow developer tools code to observe socket activity
    • This is very much like bug 977858, although that suggests a very different approach.
    • Mentored by Jim, but doesn't seem to be finished
  • Jim: Bug 1103257 - The Firefox Devtools need a WebSockets inspector panel
    • Suggesting a new WS panel, but original idea was to put WS into Network panel, but a comment in bug 885508 says that Network panel isn't suitable.
  • Jim: Bug 1103263 - The DevTools needs WebSocket Manager and Inspector actors.
    • Suggested new RDP protocol packet types (the architecture: Panel <--> Actors <--> Web Socket Objects)

Articles

Further Resources

Clone this wiki locally