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

  • Jeff: 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
  • Jeff: 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).
    • But Comment #6 from bug 885508 done later says that observing messages could be actually enough.
  • Nick: 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)
  • Axel: Bug 1197900 - Protocol handlers for protocol upgraded websocket connections
    • It should be possible to register specific protocol parsers (e.g. socket.io)
    • All protocol identifiers are necessarily registered with iana registration for websocket protocols.
  • Axel: Bug 1197903 - Protocol independent payload parsing of websocket traffic
    • Basic JSON parser should be built-in

Articles

Further Resources

Clone this wiki locally