Bug 135679: fixes form submit when target url is same page and current url has anchor.
r=jkeiser sr=attinasi a=rjesup git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_0_BRANCH@118619 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -755,6 +755,11 @@ nsHTMLFormElement::DoSubmit(nsIPresContext* aPresContext, nsEvent* aEvent)
|
||||
nsCOMPtr<nsIWebProgress> webProgress = do_GetInterface(docShell);
|
||||
NS_ASSERTION(webProgress, "nsIDocShell not converted to nsIWebProgress!");
|
||||
rv = webProgress->AddProgressListener(this);
|
||||
NS_ENSURE_SUBMIT_SUCCESS(rv);
|
||||
}
|
||||
else {
|
||||
// in case we didn't do anything, reset mIsSubmitting
|
||||
mIsSubmitting = PR_FALSE;
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
||||
@@ -5132,12 +5132,17 @@ nsDocShell::ScrollIfAnchor(nsIURI * aURI, PRBool * aWasAnchor, PRUint32 aLoadTyp
|
||||
newSpec.BeginReading(urlStart);
|
||||
newSpec.EndReading(refEnd);
|
||||
|
||||
// hasAnchor is used to check if the new URI really has anchor
|
||||
// We can't always scroll, it would break submitting a form that has
|
||||
// same target page.
|
||||
PRBool hasAnchor = PR_FALSE;
|
||||
PRInt32 hashNew = newSpec.FindChar(kHash);
|
||||
if (hashNew == 0) {
|
||||
return NS_OK; // Strange URI
|
||||
}
|
||||
else if (hashNew > 0) {
|
||||
// found it
|
||||
hasAnchor = PR_TRUE;
|
||||
urlEnd = urlStart;
|
||||
urlEnd.advance(hashNew);
|
||||
|
||||
@@ -5254,7 +5259,8 @@ nsDocShell::ScrollIfAnchor(nsIURI * aURI, PRBool * aWasAnchor, PRUint32 aLoadTyp
|
||||
}
|
||||
}
|
||||
else {
|
||||
*aWasAnchor = PR_TRUE;
|
||||
// Tell there was an anchor only if there really was one (bug 135679)
|
||||
*aWasAnchor = hasAnchor;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
||||
Reference in New Issue
Block a user