Below are two general listener categories: Content and Progress.
ContentContent listeners provide the ability to intercept/override, and block URI loads.
Provides the ability for content loading interception and re-direction. Registration is done via nsIWebBrowser::ParentURIContentListener()
ProgressProgress listeners provide feedback about URI loading. These listeners can be further broken out into two categories: broadcast and per-call.
broadcastBroadcast listeners are registered once, per top-level window, and they receive callbacks for the lifetime of the window they register with. This registration is done via nsIWebBrowser::AddWebBrowserListener().
Provides detailed progress information about a load (including any inline loading that occurs; img src= for example). This listener can be used to present "throbber" status, progress bar status, number of items downloaded status, etc.
Provides callbacks for session (per window url loads) history management.
per-callPer-call listeners are registered once, per method call, and they receive more focused callbacks that pertain only to the action the caller initiated, for the duration of that "load."
Provides detailed progress information about a load which includes any inline loads that occur as a result of the top-level load.
registration method: nsIHelperAppLauncher::SetWebProgressListener()
Provides the progress of a "save-as" operation.
registration method: nsIWebBrowserPersist::SetProgressListener()
Provides the progress of a "print" operation.
registration method: nsIWebBrowserPrint::Print()