Networking/Archive/Necko/Dashboard

From MozillaWiki
Jump to navigation Jump to search
ARCHIVED
This page has been archived and its contents may be out of date.

The goal for this feature is to provide an in-browser dashboard to monitor network activity, similar to Chrome's <about:net-internals>.

Usage

Install the following add-on: https://github.com/valenting/networking-dashboard/raw/master/networking%40dashboard.xpi

Go to about:networking

Information to Display

Already implemented by Jiten:

  • HTTP(Hostname, Port, SPDY, SSL, Active, Idle)
  • WebSocket(Hostname, SSL, Msgs Sent, Msgs Received, Data sent, Data received)
  • Sockets(Host, Port, Tcp, Active, Idle)
  • DNS(Hostname, Family, Adress, Expires)
  • Timeline( Total Sent, Total Received

TODO:

  • RTT
  • Cache status
  • Protocol version (1.0 vs 1.1, spdy/2 vs spdy/3 etc..)
  • half open connections
  • time left before idle expiration for http

Diagnostic Tools

We'd like to have some diagnostic tools built into the dashboard. In prioritized order:

  • Can we ping this host? (icmp, tcp, tls levels)
  • DNS Lookup
  • Failed URL test
  • Proxy Settings Test

Tracing/Debugging

  • Basic support for events
  • Event Listener for capturing events
  • Capture events to file
  • Add listeners only for certain events -> B2G monitoring

Progress and Ideas

  • Implement an event system that allows you to capture the events in the networking stack.
    • Should we use nsIObserver or implement a different model?
    • Networking components should fire events when needed (Data sent, Channel close, etc)
    • Events can be received by 0-many observers
    • Should be very lightweight (many events with minimal data, as well as rare events with lots of data)
      • Pushing events probably means we shouldn't use JSON for the format.
    • Should report AppID (for B2G)
  • Does the WebSocket API use the nsSocketTransportService so we can log it?