nsresult nsPluginStreamListenerPeer::SetUpStreamListener(nsIURI* aURL)
nsresult nsPluginStreamListenerPeer::SetUpStreamListener(nsIChannel* channel, nsIURI* aURL)
nsresult nsPluginStreamListenerPeer::SetUpStreamListener(nsIURI* aURL){  nsresult rv = NS_OK;  // If we don't yet have a stream listener, we need to get   // one from the plugin.  // NOTE: this should only happen when a stream was NOT created   // with GetURL or PostURL (i.e. it's the initial stream we   // send to the plugin as determined by the SRC or DATA attribute)  if(mPStreamListener == nsnull && mInstance != nsnull)	  	   rv = mInstance->NewStream(&mPStreamListener);  if(rv != NS_OK)	   return rv;  if(mPStreamListener == nsnull)    return NS_ERROR_NULL_POINTER;    mSetUpListener = PR_TRUE;  mPluginStreamInfo->SetSeekable(PR_FALSE);  //mPluginStreamInfo->SetModified(??);  char* urlString;  aURL->GetSpec(&urlString);  mPluginStreamInfo->SetURL(urlString);  nsCRT::free(urlString);  rv = mPStreamListener->OnStartBinding((nsIPluginStreamInfo*)mPluginStreamInfo);  if(rv == NS_OK)  {    mPStreamListener->GetStreamType(&mStreamType);    // check to see if we need to cache the file as well    if ((mStreamType == nsPluginStreamType_AsFile) ||         (mStreamType == nsPluginStreamType_AsFileOnly))    rv = SetUpCache(aURL);  }  return rv;}