From MozillaZine Knowledge Base
Starting in Firefox 2, a built-in Session Store feature saves your session data, including open windows and tabs, window size and position, and text typed in forms. Session data is stored in the sessionstore.js file, located in the profile folder.
Firefox will automatically restore your session after an automatic update, or when using the restart button from the Add-ons Manager. Firefox will offer to restore your session after a crash or other unexpected close.
Starting in Firefox 3.5, Firefox automatically restores your session after one crash. If it crashes again, Firefox displays an error page offering to restore the previous session or start a new session. 
Always restore sessions on start
By default this feature is off, but can be turned on from the Options/Preferences menu. In the Main panel, under Startup, set "When Firefox starts" to "Show my windows and tabs from last time". This will have Firefox restore your tabs and form data to their state when Firefox closed (the related preference is browser.startup.page).
If you want Firefox to restore multiple windows you need to close Firefox via "File -> Exit" ("File -> Quit" on Linux, "Firefox -> Quit Firefox" on Mac OS). Closing the windows one at a time will cause Firefox to only restore the last window that was closed.
Restoring a session once
Restoring a session after a crash
If a site's content caused your crash (e.g., a plugin is crashing) restoring your session may restore that page and cause Firefox to crash again. If Firefox keeps crashing after choosing "Restore Session," choose "Start New Session."
Starting in Firefox 3.5, Firefox automatically restores your previous session after one crash (or unexpected close). If Firefox crashes a second time, a "Restore Session" error page is displayed, asking whether to restore the last session or start a new session. If you do not want Firefox to automatically restore your session after one crash, set the preference browser.sessionstore.max_resumed_crashes to 0 (default is 1).  
If neither your old session nor the Restore Session error page appears after a crash, or you accidentally click on “Start New Session”, you can enter about:sessionrestore in the Location Bar (address bar) to force the Restore Session page to appear, after first restoring a backup file to restore the old session data. The session data is stored in sessionstore.js; this file can be restored (while Firefox is not running) from backups, including "sessionstore.bak". The file "sessionstore.bak" is created if you launch Firefox after a crash has occurred. It is a copy of the current sessionstore.js that gets lost otherwise, if you restart Firefox. 
Disabling crash recovery
Completely disabling session store
Firefox 3.5 and above: Starting in Firefox 3.5 the preference browser.sessionstore.enabled is no longer used.  Instead, you can set the preferences browser.sessionstore.max_tabs_undo and browser.sessionstore.max_windows_undo to 0.
Session Restore will restore connections to services which use session cookies to maintain login state, such as GMail. If someone else uses your computer after you, that person could access your personal information on those sites. If this is a concern, you should not enable the "Show my windows and tabs from last time" option described above.
You may also wish to disable the Session Restore crash recovery feature by changing the value of browser.sessionstore.resume_from_crash from true (default) to to false (explained above). This will prevent another user from restoring a previous session when Firefox is opened after a crash or other unexpected close, such as system shutdown while Firefox is running.
Related bug reports