mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 15:52:07 +00:00
Bug 135679 Form submit doesn't work if target is same page and current url has anchor
patch by ere@atp.fi r=jkeiser sr=attinasi a=rjesup
This commit is contained in:
parent
71e038854c
commit
e958546d80
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user