Reposting when expired from cache should make sure to use the right history

entry; otherwise docshell is confused about which page it currently has
loaded.  Bug 289301, r=biesi, sr=darin, a=asa


git-svn-id: svn://10.0.0.236/trunk@172476 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bzbarsky%mit.edu
2005-04-20 04:41:48 +00:00
parent 93b3fae332
commit fea41970b2
2 changed files with 24 additions and 0 deletions

View File

@@ -651,6 +651,11 @@ nsresult nsWebShell::EndPageLoad(nsIWebProgress *aProgress,
else
mCharsetReloadState = eCharsetReloadInit;
// Save a pointer to the currently-loading history entry.
// nsDocShell::EndPageLoad will clear mLSHE, but we may need this history
// entry further down in this method.
nsCOMPtr<nsISHEntry> loadingSHE = mLSHE;
//
// one of many safeguards that prevent death and destruction if
// someone is so very very rude as to bring this window down
@@ -903,6 +908,15 @@ nsresult nsWebShell::EndPageLoad(nsIWebProgress *aProgress,
if (shInternal)
shInternal->UpdateIndex();
}
// Make it look like we really did honestly finish loading the
// history page we were loading, since the "reload" load we're
// about to kick off will reload our current history entry. This
// is a bit of a hack, and if the force-load fails I think we'll
// end up being confused about what page we're on... but we would
// anyway, since we've updated the session history index above.
mOSHE = loadingSHE;
/* The user does want to repost the data to the server.
* Initiate a new load again.
*/