"RetargetOutput called when the two types are the same!");
"ConvertData called when the two types are the same!");
nsDocumentOpenInfo::ConvertData(nsIRequest *request,                                const nsACString& aSrcContentType,                                const nsACString& aOutContentType){  NS_PRECONDITION(aSrcContentType != aOutContentType,                  "RetargetOutput called when the two types are the same!");  nsresult rv = NS_OK;  nsCOMPtr<nsIStreamConverterService> StreamConvService =     do_GetService(kStreamConverterServiceCID, &rv);  if (NS_FAILED(rv)) return rv;  NS_ConvertASCIItoUCS2 from_w(aSrcContentType);  NS_ConvertASCIItoUCS2 to_w(aOutContentType);        // When applying stream decoders, it is necessary to "insert" an   // intermediate nsDocumentOpenInfo instance to handle the targeting of  // the "final" stream or streams.  //  // For certain content types (ie. multi-part/x-mixed-replace) the input  // stream is split up into multiple destination streams.  This  // intermediate instance is used to target these "decoded" streams...  //  nsCOMPtr<nsDocumentOpenInfo> nextLink =    new nsDocumentOpenInfo(m_originalContext, mIsContentPreferred);  if (!nextLink) return NS_ERROR_OUT_OF_MEMORY;  // Make sure nextLink starts with the contentListener that said it wanted the  // results of this decode.  nextLink->m_contentListener = m_contentListener;  // Also make sure it has to look for a stream listener to pump data into.  nextLink->m_targetStreamListener = nsnull;  // The following call sets m_targetStreamListener to the input end of the  // stream converter and sets the output end of the stream converter to  // nextLink.  As we pump data into m_targetStreamListener the stream  // converter will convert it and pass the converted data to nextLink.  return StreamConvService->AsyncConvertData(from_w.get(),                                              to_w.get(),                                              nextLink,                                              request,                                             getter_AddRefs(m_targetStreamListener));}