if(mGotProgress == PR_TRUE)
if(mGotProgress == PR_TRUE && mSetUpListener == PR_FALSE)
NS_IMETHODIMP nsPluginStreamListenerPeer :: OnStartBinding(nsIURL* aURL, const char *aContentType){  nsresult  rv = NS_OK;  if (nsnull != aContentType)  {#ifdef NEW_PLUGIN_STREAM_API	   mPluginStreamInfo->SetContentType(aContentType);#else    PRInt32   len = PL_strlen(aContentType);    mMIMEType = (char *)PR_Malloc(len + 1);    if (nsnull != mMIMEType)      PL_strcpy(mMIMEType, aContentType);    else      rv = NS_ERROR_OUT_OF_MEMORY;#endif  }  nsPluginWindow    *window = nsnull;  // if we don't have an nsIPluginInstance (mInstance), it means  // we weren't able to load a plugin previously because we  // didn't have the mimetype.  Now that we do (aContentType),  // we'll try again with SetUpPluginInstance()  if ((nsnull == mInstance) && (nsnull != mOwner))  {    mOwner->GetInstance(mInstance);    mOwner->GetWindow(window);    if ((nsnull == mInstance) && (nsnull != mHost) && (nsnull != window))    {      rv = mHost->SetUpPluginInstance(aContentType, aURL, mOwner);      if (NS_OK == rv)      {		// GetInstance() adds a ref        mOwner->GetInstance(mInstance);        if (nsnull != mInstance)        {          mInstance->Start();          mOwner->CreateWidget();          mInstance->SetWindow(window);        }      }    }  }#ifdef NEW_PLUGIN_STREAM_API  // only set up the stream listener if we have both the mimetype and  // have mLength set (as indicated by the mGotProgress bool)  if(mGotProgress == PR_TRUE)	   rv = SetUpStreamListener(aURL);#else  if ((PR_TRUE == mGotProgress) && (nsnull == mPeer) && (nsnull != mInstance))	   rv = SetUpStreamPeer(aURL, mInstance, aContentType);#endif  mOnStartBinding = PR_TRUE;  return rv;}