nsIWebShell* shell = GetTarget(target.GetUnicode()); if (nsnull != shell) {  PRUnichar* str = mURL.ToNewUnicode(); nsresult rv = NS_OK;
nsCOMPtr<nsIURI> uri; NS_NewURI(getter_AddRefs(uri), nsDependentString(aURLSpec), nsnull);
nsWebShell::HandleLinkClickEvent(nsIContent *aContent,                                 nsLinkVerb aVerb,                                 const PRUnichar* aURLSpec,                                 const PRUnichar* aTargetSpec,                                 nsIInputStream* aPostDataStream){  nsAutoString target(aTargetSpec);  switch(aVerb) {    case eLinkVerb_New:      target.SetString("_blank");      // Fall into replace case    case eLinkVerb_Replace:      {        nsIWebShell* shell = GetTarget(target.GetUnicode());        if (nsnull != shell) {          // Allocate since mURL may change beneath us          PRUnichar* str = mURL.ToNewUnicode();          nsresult rv = NS_OK;          NS_WITH_SERVICE(nsIPref, prefs, kPrefServiceCID, &rv);           PRBool useURILoader = PR_FALSE;          if (NS_SUCCEEDED(rv))            prefs->GetBoolPref("browser.uriloader", &useURILoader);          if (useURILoader)          {              // for now, just hack the verb to be view-link-clicked              // and down in the load document code we'll detect this and              // set the correct uri loader command            (void)shell->LoadURL(aURLSpec, "view-link-click", aPostDataStream,                                PR_TRUE, nsIChannel::LOAD_NORMAL,                                 0, nsnull, str);          }          else          {            (void)shell->LoadURL(aURLSpec, aPostDataStream,                                 PR_TRUE, nsIChannel::LOAD_NORMAL,                                 0, nsnull, str);          }          Recycle(str);          NS_RELEASE(shell);        }      }      break;    case eLinkVerb_Embed:    default:      ;      // XXX Need to do this  }}