new nsOnDataAvailableEvent(this, context);
new nsOnDataAvailableEvent(this, channel, context);
nsAsyncStreamListener::OnDataAvailable(nsISupports* context,                                       nsIBufferInputStream *aIStream,                                        PRUint32 aSourceOffset,                                       PRUint32 aLength){    nsresult rv = GetStatus();    if (NS_FAILED(rv)) return rv;    nsOnDataAvailableEvent* event =         new nsOnDataAvailableEvent(this, context);    if (event == nsnull)        return NS_ERROR_OUT_OF_MEMORY;    rv = event->Init(aIStream, aSourceOffset, aLength);    if (NS_FAILED(rv)) goto failed;    rv = event->Fire(mEventQueue);    if (NS_FAILED(rv)) goto failed;    return rv;  failed:    delete event;    return rv;}