Closed
Bug 618151
Opened 14 years ago
Closed 14 years ago
Overwriting state can lead to unrestored tabs
Categories
(Firefox :: Session Restore, defect)
Firefox
Session Restore
Tracking
()
VERIFIED
FIXED
Firefox 4.0b9
Tracking | Status | |
---|---|---|
blocking2.0 | --- | betaN+ |
People
(Reporter: zpao, Assigned: zpao)
References
Details
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
dietrich
:
review+
|
Details | Diff | Splinter Review |
Apparently browser.stop is async so we can still get load events from a tab that's being overwritten with a new state.
If a load event happens after we set __SS_data on the browser (in restoreHistoryPrecursor) but before we call restoreTab on that tab, we'll enter onTabLoad, where we delete __SS_data. __SS_data is used by restoreTab (and is expected to be there) so we then break.
I've somehow managed to reproduce this reliably in my test for bug 615394, so making that into a simpler test should be easy enough. Simply bailing out in onTabLoad if __SS_restoreState is truthy seems to do the trick. Patch sometime soon.
Assignee | ||
Comment 1•14 years ago
|
||
Other sources (read: gavin) say stop isn't async, but that load might still be
triggered after stop has been called. Regardless of how it's happening, it's happening.
Assignee | ||
Comment 2•14 years ago
|
||
Reduced the tests from bug 615394 that was causing the issue. The test times out without the change.
Attachment #497389 -
Flags: review?(dietrich)
Assignee | ||
Comment 3•14 years ago
|
||
Blocks a blocker so just making blocking explicit.
This is causing a consistent timeout with browser_600545.js... looking into it.
blocking2.0: --- → ?
Assignee | ||
Comment 4•14 years ago
|
||
Fixed the timeout issue. We only want to bail out of onTabLoad if __SS_restoreState == TAB_STATE_NEEDS_RESTORE, not TAB_STATE_RESTORING. Fixed the timeout issue.
Attachment #497389 -
Attachment is obsolete: true
Attachment #498646 -
Flags: review?(dietrich)
Attachment #497389 -
Flags: review?(dietrich)
Assignee | ||
Updated•14 years ago
|
Whiteboard: [has patch][needs review dietrich]
Updated•14 years ago
|
blocking2.0: ? → betaN+
Comment 5•14 years ago
|
||
Comment on attachment 498646 [details] [diff] [review]
Patch v0.2
r=me. file a bug on the unidentified-and-uncool load events that are happening after stop?
Attachment #498646 -
Flags: review?(dietrich) → review+
Updated•14 years ago
|
Whiteboard: [has patch][needs review dietrich] → [has patch]
Assignee | ||
Comment 6•14 years ago
|
||
Pushed http://hg.mozilla.org/mozilla-central/rev/98b8d44e0096 and filed bug 621586.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: [has patch]
Target Milestone: --- → Firefox 4.0b9
Assignee | ||
Updated•14 years ago
|
Flags: in-testsuite+
Assignee | ||
Comment 8•14 years ago
|
||
I haven't hit this in real life, but maybe calling setBrowserState while in the middle of restoring would do it. Otherwise the test is passing.
You need to log in
before you can comment on or make changes to this bug.
Description
•