Closed
Bug 292954
Opened 19 years ago
Closed 19 years ago
bfcache/fastback doesn't play nicely with existing loads
Categories
(Core :: DOM: Navigation, defect)
Core
DOM: Navigation
Tracking
()
VERIFIED
FIXED
People
(Reporter: bzbarsky, Assigned: bryner)
References
()
Details
Attachments
(1 file, 2 obsolete files)
6.49 KB,
patch
|
darin.moz
:
review+
darin.moz
:
superreview+
asa
:
approval1.8b3+
|
Details | Diff | Splinter Review |
See bug 274784, the "resuming network activity on back" testcase. Basically, loads that are in-progress when we leave a page are stopped and not restarted on fastback.
Reporter | ||
Updated•19 years ago
|
Blocks: blazinglyfastback
Comment 1•19 years ago
|
||
*** Bug 293752 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 2•19 years ago
|
||
Ok, it seems that the reason that the testcase fails is that by the time we do the _second_ CanSavePresentation check (the one that happens from CreateContentViewer), the request in the iframe document's load group has already been removed. This seems like a pretty good argument for finding a way to only do the CanSavePresentation check once, in InternalLoad(), storing the result off somewhere. Once we've called Stop(), it's probably too late.
Assignee | ||
Comment 3•19 years ago
|
||
Only call CanSavePresentation once, before we call Stop(). Use mSavingOldViewer to retain the result. I also discovered that when loading the iframe, mOSHE == mLSHE for the initial load (with both of them pointing to the SHEntry for the newly-loading document). I'm not sure whether this is correct or not, but in any case, we probably shouldn't try to save state in this case since we'll be saving state into a session history entry which we're still going to be displaying.
Attachment #186706 -
Flags: superreview?(bzbarsky)
Attachment #186706 -
Flags: review?(bzbarsky)
Reporter | ||
Comment 4•19 years ago
|
||
I won't be able to do a thorough review until I get back in July (have to catch a plane within the next 12 hours, and no email till I get back after that), but that patch looks wrong -- a load that starts after the initial InternalLoad but before we actually load the new document will be killed off by the Stop() we do when the new data starts coming in and not restarted on back. I also suspect the patch doesn't handle cases when InternalLoad is called before the previous load "completes" (or even returns from server) well.
Assignee | ||
Comment 5•19 years ago
|
||
Ok, so perhaps we save the presentation only if there were no pending requests in InternalLoad and there are also no pending requests when the new data arrives. That's easy enough. What's important is that we not lose the fact that there were pending requests before the first Stop(). Note: the entire extent to which I'm planning to resolve this right now is to avoid caching the presentation if there is anything to be loaded, restarting things is too difficult given the time constraints. I'll check out that approach and have Darin review, I think he has a good handle on DocShell loading.
Assignee | ||
Comment 6•19 years ago
|
||
Check for pending loads again when new data arrives, but only go ahead with saving the presentation if there were also no pending loads before calling Stop().
Attachment #186706 -
Attachment is obsolete: true
Attachment #186963 -
Flags: superreview?(darin)
Attachment #186963 -
Flags: review?(darin)
Assignee | ||
Updated•19 years ago
|
Attachment #186706 -
Flags: superreview?(bzbarsky)
Attachment #186706 -
Flags: review?(bzbarsky)
Assignee | ||
Comment 7•19 years ago
|
||
Ok, this actually addresses a couple of additional issues: 1. fixed the reload on assert (bug 292950) 2. fixed a problem where we were examining the previous load type instead of the current load type when determining whether to cache. this leads to the page not being cached if you had just reloaded it before leaving. This is all rolled into one patch because it all touches the same methods and I don't want to spend time untangling it.
Assignee | ||
Updated•19 years ago
|
Attachment #186963 -
Attachment is obsolete: true
Attachment #186974 -
Flags: superreview?(darin)
Attachment #186974 -
Flags: review?(darin)
Assignee | ||
Updated•19 years ago
|
Attachment #186963 -
Flags: superreview?(darin)
Attachment #186963 -
Flags: review?(darin)
Comment 8•19 years ago
|
||
Comment on attachment 186974 [details] [diff] [review] patch r+sr=darin
Attachment #186974 -
Flags: superreview?(darin)
Attachment #186974 -
Flags: superreview+
Attachment #186974 -
Flags: review?(darin)
Attachment #186974 -
Flags: review+
Assignee | ||
Comment 9•19 years ago
|
||
Comment on attachment 186974 [details] [diff] [review] patch requesting approval, only affects fastback
Attachment #186974 -
Flags: approval1.8b3?
Updated•19 years ago
|
Attachment #186974 -
Flags: approval1.8b3? → approval1.8b3+
Assignee | ||
Comment 10•19 years ago
|
||
checked in
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 11•19 years ago
|
||
Brian, thanks for fixing this! Verified on the testcase in a current trunk build.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•