nsCOMPtr<nsIContentViewer> cv; NS_ENSURE_SUCCESS(GetContentViewer(getter_AddRefs(cv)), NS_ERROR_FAILURE); if (cv) { nsCOMPtr<nsIMarkupDocumentViewer> muDV = do_QueryInterface(cv); if (muDV) { nsCharsetSource hint; muDV->GetHintCharacterSetSource((PRInt32 *)(&hint)); if( aSource > hint ) { muDV->SetHintCharacterSet(NS_ConvertASCIItoUCS2(aCharset).get()); muDV->SetHintCharacterSetSource((PRInt32)aSource); if(eCharsetReloadRequested != mCharsetReloadState) { mCharsetReloadState = eCharsetReloadRequested; return Reload(LOAD_FLAGS_CHARSET_CHANGE); } } } }  return NS_ERROR_WEBSHELL_REQUEST_REJECTED;
mHintCharset = aCharset; mHintCharsetSource= aSource; mViewSource = (0==PL_strcmp("view-source", aCmd)); return Reload(nsIChannel::LOAD_NORMAL);
nsWebShell::ReloadDocument(const char* aCharset,                           nsCharsetSource aSource){  // XXX hack. kee the aCharset and aSource wait to pick it up  nsCOMPtr<nsIContentViewer> cv;  NS_ENSURE_SUCCESS(GetContentViewer(getter_AddRefs(cv)), NS_ERROR_FAILURE);  if (cv)  {    nsCOMPtr<nsIMarkupDocumentViewer> muDV = do_QueryInterface(cv);      if (muDV)    {      nsCharsetSource hint;      muDV->GetHintCharacterSetSource((PRInt32 *)(&hint));      if( aSource > hint )       {         muDV->SetHintCharacterSet(NS_ConvertASCIItoUCS2(aCharset).get());         muDV->SetHintCharacterSetSource((PRInt32)aSource);         if(eCharsetReloadRequested != mCharsetReloadState)          {            mCharsetReloadState = eCharsetReloadRequested;            return Reload(LOAD_FLAGS_CHARSET_CHANGE);         }      }    }  }  //return failer if this request is not accepted due to mCharsetReloadState  return NS_ERROR_WEBSHELL_REQUEST_REJECTED;}