bug #65777 (r=valeski, sr=mscott) - Window targeting fixes...

git-svn-id: svn://10.0.0.236/trunk@94842 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rpotts%netscape.com
2001-05-14 02:16:27 +00:00
parent 3a374455ca
commit 9c40a95650
30 changed files with 948 additions and 846 deletions

View File

@@ -774,11 +774,12 @@ nsWebShell::HandleLinkClickEvent(nsIContent *aContent,
nsIInputStream* aPostDataStream,
nsIInputStream* aHeadersDataStream)
{
nsCAutoString target; target.AssignWithConversion(aTargetSpec);
nsresult rv;
nsAutoString target(aTargetSpec);
switch(aVerb) {
case eLinkVerb_New:
target = "_blank";
target.AssignWithConversion("_blank");
// Fall into replace case
case eLinkVerb_Undefined:
// Fall through, this seems like the most reasonable action
@@ -799,7 +800,6 @@ nsWebShell::HandleLinkClickEvent(nsIContent *aContent,
nsCOMPtr<nsIURIContentListener> listener = do_QueryInterface(mContentListener);
nsCAutoString spec; spec.AssignWithConversion(aURLSpec);
PRBool abort = PR_FALSE;
nsresult rv;
uri = do_CreateInstance(kSimpleURICID, &rv);
NS_ASSERTION(NS_SUCCEEDED(rv), "can't create simple uri");
if (NS_SUCCEEDED(rv))
@@ -808,14 +808,22 @@ nsWebShell::HandleLinkClickEvent(nsIContent *aContent,
NS_ASSERTION(NS_SUCCEEDED(rv), "spec is invalid");
if (NS_SUCCEEDED(rv))
{
listener->OnStartURIOpen(uri, target, &abort);
listener->OnStartURIOpen(uri, &abort);
}
}
return;
}
InternalLoad(uri, mCurrentURI, nsnull, PR_TRUE, PR_FALSE, target, aPostDataStream,
aHeadersDataStream, LOAD_LINK, nsnull);
rv = InternalLoad(uri, // New URI
mCurrentURI, // Referer URI
nsnull, // No onwer
PR_TRUE, // Inherit owner from document
PR_FALSE, // Do not stop active document
target.GetUnicode(),// Window target
aPostDataStream, // Post data stream
aHeadersDataStream, // Headers stream
LOAD_LINK, // Load type
nsnull); // No SHEntry
}
break;
case eLinkVerb_Embed:
@@ -1120,8 +1128,16 @@ nsresult nsWebShell::EndPageLoad(nsIWebProgress *aProgress,
{
postDataRandomAccess->Seek(PR_SEEK_SET, 0);
}
InternalLoad(url, referrer, nsnull, PR_TRUE, PR_FALSE, nsnull, inputStream,
nsnull, LOAD_RELOAD_BYPASS_PROXY_AND_CACHE, nsnull);
InternalLoad(url, // URI
referrer, // Refering URI
nsnull, // Owner
PR_TRUE, // Inherit owner
PR_FALSE, // Do not stop active Doc
nsnull, // No window target
inputStream, // Post data stream
nsnull, // No headers stream
LOAD_RELOAD_BYPASS_PROXY_AND_CACHE,// Load type
nsnull); // No SHEntry
}
}