nsISupports* aContext, nsresult aStatus)
nsISupports* aContext)
nsresult nsPluginStreamListenerPeer::ServeStreamAsFile(nsIRequest *request,                                                         nsISupports* aContext,                                                        nsresult aStatus){  if (!mInstance)    return NS_ERROR_FAILURE;  // mInstance->Stop calls mPStreamListener->CleanUpStream(), so stream will be properly clean up   mInstance->Stop();  mInstance->Start();        nsPluginInstancePeerImpl *peer;  mInstance->GetPeer(NS_REINTERPRET_CAST(nsIPluginInstancePeer **, &peer));  if (peer) {    nsCOMPtr<nsIPluginInstanceOwner> owner;    peer->GetOwner(*getter_AddRefs(owner));    if (owner) {      nsPluginWindow    *window = nsnull;      owner->GetWindow(window);      if (window->window)        mInstance->SetWindow(window);    }    // because we are starting plugin using existing peer     // it'll get one extra RefCnt, release it here.    NS_RELEASE(peer);  }    mPluginStreamInfo->SetSeekable(0);  mPStreamListener->OnStartBinding((nsIPluginStreamInfo*)mPluginStreamInfo);  mPluginStreamInfo->SetStreamOffset(0);#if !defined(CACHE_SUPPOPTS_FILE_EXTENSION)  // check out if we already saving the stream into plugins cache  nsCOMPtr<nsIOutputStream> outStream;  mPluginStreamInfo->GetLocalCachedFileStream(getter_AddRefs(outStream));  if (outStream) {    outStream->Close();    mPluginStreamInfo->SetLocalCachedFileStream(nsnull);  }    nsCOMPtr<nsIChannel> channel = do_QueryInterface(request);  nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(channel);  if (httpChannel) {    SetupPluginCacheFile(channel);  }#endif  return NS_OK;}