Closed Bug 1107445 Opened 10 years ago Closed 9 years ago

Tab never finishes restoring if page load fails

Categories

(Firefox :: Session Restore, defect)

34 Branch
defect
Not set
normal

Tracking

()

VERIFIED FIXED
Firefox 38
Iteration:
38.1 - 26 Jan

People

(Reporter: benjarobin, Assigned: billm)

References

Details

User Agent: Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0
Build ID: 20141125180439

Steps to reproduce:

 - Create (for example in the Desktop) 2 directories : "a" and "b".
 - Create inside "a" directory a file named "test.html" with just "Hello" inside it.
 - Double click on the file "test.html" => A new tab is opened, something like : file:///D:/Documents%20and%20Settings/test/Bureau/a/test.html
 - Close Firefox
 - Move "test.html" to the "b" directory
 - Open Firefox, the file is not found which is expected
 - Edit the URL, replace "a" by "b", validate => The "Hello" message is displayed normally.
 - Close Firefox
 - Open Firefox


Actual results:

The file is not found and the URL is the previous one, with the "a" directory...


Expected results:

Firefox should restore the latest URL (with the "b" directory), not the initial (with the "a" directory)...
Component: Untriaged → Session Restore
Can be reproduced in Linux (ArchLinux up to date)
OS: Windows XP → All
I can reproduce this. Steven, do you have ideas what's going on here?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(smacleod)
I reproduced this as well and it looks like it affects any changes to tabs which failed to load on restore.

What's happening here is "SessionStore:restoreDocumentComplete" is never being sent from the content[1][2] to indicate the restore completed. This means "browser.__SS_data" is never deleted. So whenever the tab's state is collected it uses this data (it believes it's still restoring) [3][4].

The end result is we always save the initially restored data, which is now stale since the tab has changed.

I haven't investigated what's going wrong to make us not send the message yet (or whether this is a regression), but I'm taking a break so I thought I'd post what I've found so far.

[1] http://hg.mozilla.org/mozilla-central/file/1813b5782036/browser/components/sessionstore/content/content-sessionStore.js#l102
[2] http://hg.mozilla.org/mozilla-central/file/1813b5782036/browser/components/sessionstore/content/content-sessionStore.js#l155
[3] http://hg.mozilla.org/mozilla-central/file/1813b5782036/browser/components/sessionstore/TabState.jsm#l168
[4] http://hg.mozilla.org/mozilla-central/file/1813b5782036/mobile/android/components/SessionStore.js#l516
Flags: qe-verify+
Flags: needinfo?(smacleod)
Flags: firefox-backlog+
Summary: Tab URL (Local file) not saved after edit → Tab never finishes restoring if page load fails
FTR, this might be fixed with bug 1114040, depending on what the solution looks like there.
Should've been fixed in today's Nightly (2015-01-24) which will be out in a few hours. Can someone please confirm?
Flags: needinfo?(gijskruitbosch+bugs)
Flags: needinfo?(benjarobin)
Hardware: x86 → All
Yup, seems fixed to me on nightly. Thanks Bill!
Assignee: nobody → wmccloskey
Status: NEW → RESOLVED
Closed: 9 years ago
Depends on: 1114040
Flags: needinfo?(gijskruitbosch+bugs)
Flags: needinfo?(benjarobin)
Resolution: --- → FIXED
Target Milestone: --- → Firefox 38
Iteration: --- → 38.1 - 26 Jan
QA Contact: cornel.ionce
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Firefox/38.0
Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0

Confirming the fix with the STR from description using Nightly, build ID: 20150125030202.
Tested on Windows 7 64-bit, Mac OS X 10.9.5 and Ubuntu 12.04 32-bit.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.