printf("\n+++ OpenObserver::OnStopRequest (status = %x) +++." "\tContext = %p\n", aStatus, context); return NS_OK;
NS_ASSERTION(!gTestAsyncOpen || mAsyncOpenCompleted, "AsyncOpen failed");  URLLoadInfo* info = (URLLoadInfo*)context;  if (info) { double connectTime; double readTime; PRUint32 httpStatus; PRBool bHTTPURL = PR_FALSE;  info->mTotalTime = PR_Now() - info->mTotalTime;  connectTime = (info->mConnectTime/1000.0)/1000.0; readTime    = ((info->mTotalTime-info->mConnectTime)/1000.0)/1000.0;  nsCOMPtr<nsIHTTPChannel> pHTTPCon(do_QueryInterface(channel)); if (pHTTPCon) { pHTTPCon->GetResponseStatus(&httpStatus); bHTTPURL = PR_TRUE; }  printf("\nFinished loading: %s  Status Code: %x\n", info->Name(), aStatus); if (bHTTPURL) printf("\tHTTP Status: %u\n", httpStatus); if (NS_ERROR_UNKNOWN_HOST == aStatus) { printf("\tDNS lookup failed.\n"); } printf("\tRead: %d bytes.\n", info->mBytesRead); printf("\tTime to connect: %.3f seconds\n", connectTime); printf("\tTime to read: %.3f seconds.\n", readTime); if (readTime > 0.0) { printf("\tThroughput: %.0f bps.\n", (info->mBytesRead*8)/readTime); } else { printf("\tThroughput: REAL FAST!!\n"); } } else { printf("\nFinished loading: UNKNOWN URL. Status Code: %x\n", aStatus); }  gKeepRunning -= 1; return NS_OK;
OpenObserver::OnStopRequest(nsIChannel* channel,                             nsISupports* context,                            nsresult aStatus,                            const PRUnichar* aMsg){    printf("\n+++ OpenObserver::OnStopRequest (status = %x) +++."           "\tContext = %p\n",            aStatus, context);    return NS_OK;}