Ok, here is a test case that I cut down from my extension.
Please forgive any newbie errors in the .xul or JavaScript, and give me any hints you feel appropriate.
The attached .xul needs to be run as registered chrome. The output is sent to the JavaScript Console 'Messages' tab. I start this extension first, then start Firefox to see status events from the home page load. It should get status events from any browser window or tab in that instance of Firefox.
This browser engine trys to reduce the work done on the network whenever possible. So it will only resolve a host name once, then remember it until it expires. It will also try to reuse open connections with a host whenever possible. Because of these optimizations there should be three different status sequences seen in onStatusChange for each request going over the network.
When the browser must resolve the host, the sequence should be this.
STATUS_RESOLVING STATUS_CONNECTING_TO STATUS_CONNECTED_TO STATUS_SENDING_TO STATUS_WAITING_FOR STATUS_RECEIVING_FROM etc...
When the browser knows the host, but needs a new connection.
STATUS_CONNECTING_TO STATUS_CONNECTED_TO STATUS_SENDING_TO STATUS_WAITING_FOR STATUS_RECEIVING_FROM etc...
When the browser already has an open connection to the host.
STATUS_SENDING_TO STATUS_WAITING_FOR STATUS_RECEIVING_FROM etc...
These sequences are valid for any one request. In the JavaScript Console messages, the requests will be interspersed, but are reported in the order they are received.
Please give it a try if you have time and let me know if you are missing status events in the console log.
Thanks,
LeRoy
onStatusChangeTest.xul
Description: application/vnd.mozilla.xul
