Closed Bug 806180 Opened 12 years ago Closed 12 years ago

"Restore Previous Sessions" missing from start page until reload of the page on Linux

Categories

(Firefox :: General, defect)

x86
All
defect
Not set
major

Tracking

()

RESOLVED FIXED
Firefox 19

People

(Reporter: wgianopoulos, Assigned: dao)

References

Details

(Keywords: regression, Whiteboard: fixed by bug 756313)

Attachments

(1 obsolete file)

For the last few days, I have noticed the "Restore Previous Session" button does not appear on the start page under Linux, even with a clean profile.

I do not see this issue under Windows.

I suspect bug 715402 as the cause.
Severity: normal → major
After backing out the fix for bug 715402, I am no longer able to reproduce this issue.
Blocks: 715402
(In reply to Bill Gianopoulos [:WG9s] from comment #0)
> I do not see this issue under Windows.

Same here.
and what is up with the new lame blocking flags so that most of us contributors can't figure out how to set blocking flags anymore?????
(In reply to Bill Gianopoulos [:WG9s] from comment #3)
> and what is up with the new lame blocking flags so that most of us
> contributors can't figure out how to set blocking flags anymore?????

OK maybe tracking and affected is easier it is just the kilimanjaro and basecamp that i could not decipher.
I imagine there are probably race conditions here that affect the reproducibility of this.

IIRC the button on about:home only appears when sessionstore.canRestoreLastSession is true, which can only occur after we've initialized sessionstore, which can sometimes happen in delayedStartup (see bug 654388 for a related issue). So it seems likely that bug 715402 changed timing such that we're now losing that race.
Attached patch patch (obsolete) — Splinter Review
Assignee: nobody → dao
Status: NEW → ASSIGNED
Attachment #676804 - Flags: review?(gavin.sharp)
Loading the home page in _delayedStartup (bug 756313) would fix this too, although it's not quite clear to me that we'll want to do this.
(In reply to Dão Gottwald [:dao] from comment #6)
> Created attachment 676804 [details] [diff] [review]
> patch

This patch fixes the issue for me.
Comment on attachment 676804 [details] [diff] [review]
patch

This will push session restore initialization into the startup path for some users, and undo most of the benefits of bug 715402 for them. A better solution that would avoid that problem is having BrowserOnAboutPageLoad check the session store service's initialization state somehow (I don't know if that is easily exposed at the moment), and if it's not yet initialized, add an observer for when it is which then checks canRestoreLastSession and unhides the button as needed.

(The underlying issue here is that we're loading the page before the window is painted, which I guess is bug 756313.)
Attachment #676804 - Flags: review?(gavin.sharp) → review-
(In reply to :Gavin Sharp (use gavin@gavinsharp.com for email) from comment #9)
> Comment on attachment 676804 [details] [diff] [review]
> patch
> 
> This will push session restore initialization into the startup path for some
> users, and undo most of the benefits of bug 715402 for them.

Really? The service shouldn't do much in case we're loading the homepage, right?

> A better
> solution that would avoid that problem is having BrowserOnAboutPageLoad
> check the session store service's initialization state somehow (I don't know
> if that is easily exposed at the moment), and if it's not yet initialized,
> add an observer for when it is which then checks canRestoreLastSession and
> unhides the button as needed.

This seems significantly more complex for questionable gain.

> (The underlying issue here is that we're loading the page before the window
> is painted, which I guess is bug 756313.)

Right, see comment 7.
So, summarizing the above.  Doesn't this only make it slower in the case where we lost the race?
(In reply to Dão Gottwald [:dao] from comment #10)
> Really? The service shouldn't do much in case we're loading the homepage,
> right?

Session store pretty much always does the same amount of startup work, regardless of whether we're actively restoring the session, AFAIK (to support after-the-fact session restoring from the menu or about:home). Given that this affects the behavior of canRestoreLastSession, I assume when this happens that we're triggering initService() from within init(), which does a non-trivial amount of work.

> This seems significantly more complex for questionable gain.

An observer isn't that complex. Let's not make guesses here, let's figure out exactly what the gain is.
I can reproduce in Windows7
Steps to reproduce:
  1. Start Firefox with minimize window mode
  2. After several seconds, Click Firefox taskbar button so that Firefox make normal size.

OR
Steps to reproduce:
  1. Start IE or any app and maximized it
  2. Start Firefox
  3. Click IE window immediately so that a window of IE becomes the front
  4. After several seconds, Click Firefox taskbar button so that Firefox to the front.

Actual results
  NO "Restore Previous Sessions" in about:home
OS: Linux → All
bug 756313 fixes the problem of comment 13.

http://hg.mozilla.org/mozilla-central/rev/e35f252ca573
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0 ID:20121101140125
No longer blocks: 715402
Depends on: 756313
Whiteboard: fixed by bug 756313
Target Milestone: --- → Firefox 19
Attachment #676804 - Attachment is obsolete: true
Now that the patch for bug 756313 is in today's nightly, I have been unable to reproduce this.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: