Восстановление предыдущей сессии (вкладок) в Mozilla Firefox

Эта статья, немного выбивающая из основной концепции сайта , посвящена способам восстановления предыдущей сессии с открытыми вкладками в горячо любимом браузере Mozilla Firefox . На данный опус меня натолкнула уже несколько раз встречающаяся проблема потери всех открытых вкладок вследствие некорректного завершения (по разным причинам: начиная от отключения электричества, кончая исчерпанием доступной памяти и зависанием системы) работы браузера Mozilla Firefox

Механизм автоматического восстановления предыдущей сессии (Session Restore) появился еще во 2-ой версии браузера. Firefox в специальном файле ( sessionstore.js ) сохраняет все открытые окна и вкладки, в том числе url страницы, размер и позицию окна/вкладки и набранную в текстовых полях информацию. После аварийного завершения работы на основании данных в файле, Firefox автоматически пытается восстановить предыдущую сессию, восстанавливая все открытые окна и вкладки, которые были открыты до неожиданного падения браузера. Если падение происходит во второй раз, то при старте Firefox появляется окно с надписью:

Firefox может восстанавливать все окна и вкладки, которые были открыты при последнем закрытии или неожиданном падении Firefox.

Ой, вот ведь незадача При восстановлении ваших окон и вкладок у Firefox возникла проблема. Обычно это вызвано недавно открытой веб-страницей.

Вы можете попытаться:

  • Удалить одну или несколько вкладок, которые, по вашему мнению, могут вызывать проблемы
  • Начать совершенно новую сессию

firefox - восстановление предыдущей сессии

Если отметить ранее открытые вкладки, которые нужно восстановить и нажать кнопку «Восстановить» Firefox откроет эти веб-страницы.

Если окно «Восстановление сессии» автоматически не появится, его можно попытаться вызвать, выбрав пункт меню Журнал -> Восстановить предыдущую сессию.

Примечание . Это же окно можно вызвать, набрав в адресной строке браузера about:sessionrestore .

about:sessionrestore в firefox

Если меню «Восстановить предыдущую сессию» неактивно (как на скриншоте), скорее всего что-то пошло не таки придется перейти к более «продвинутым» способам восстановления вкладок.

В первую очередь расскажем про механизм резервного копирования открытых вкладок и окон в Firefox. Информацию о текущей сессии Firefox сохраняет в файле sessionstore.js , который находится в каталоге профиля пользователя ( C:UsersusernameAppDataRoamingMozillaFirefoxProfilesxxx.default — в Windows 7 и 8, или c:Documents and SettingsusernameApplication DataMozillaFirefoxxxx.default в XP). Если в процесс работы с Firefox проследить за изменением его размера, можно заметить что при открытии новой вкладки/окна его размер увеличивается, а при закрытии – уменьшается.

После «падения» Firefox пытается автоматически загрузить информацию об открытых вкладках и окнах из файла sessionstore.js . В том случае, если файл поврежден, недоступен, имеет некорректный формат или браузер по какой-то непонятной причине его «не видит»– Firefox запускает новую «чистую» сессию, а пункт меню «Восстановить предыдущую сессию» становится недоступен. Однако не стоит отчаиваться – есть еще несколько способов восстановить список ранее открытых файлов.

Дело в том, что в этом же каталоге профиля, в папке sessionstore-backups, находится файл recovery.js (recovery.bak), который содержит информацию о предыдущей сессии Firefox. Этот файл представляет собой копию файла sessionstore.js, который автоматически создается в том случае, если последний раз работа Firefox была завершена с ошибкой.

Важно . Прежде чем переходить к ручным методам восстановления, обязательно создайте резервную копию файлов и sessionstore.js и папки sessionstore-backups, скопировав их в произвольный каталог.

Закройте Firefox и переименуйте файл recovery.js (recovery.bak) в sessionstore.js (с заменой), после этого попытайтесь запустить Firefox. Посмотрите, удалось ли восстановить данные о предыдущей сессии.

Совет . В этой же папке находятся файлы формата upgrade.js-ГГГГММXXXXXXXX – это более ранние копии открытых сессии. Посмотрите на дату создания этих файлов, если вам устроит восстановление сессии за эту дату – попробуйте переименовать файл upgrade.js-ГГГГММXXXXXXXX в sessionstore.js и запустить Firefox.

Если и этот способ не помог, можно попытаться извлечь список URL из файлов sessionstore.js. Формат файла довольно специфичный – при желании, конечно, можно и вручную проаналищировать содержимое файла, и найти все открытые страницы, которые содержатся в конструкциях начинающихся с «url»:»http , но этот путь довольно утомительный и трудоемкий.

Извлечение URL из файла sessionstore.js

Попытаемся немного автоматизировать методу извлечения url из файла:

  1. В первую очередь нужно установить расширение Firefox для веб-разработчиков: Firebug (Firefox -> Дополнения — > Поиск среди дополнений -> Firebug — > Установить).
  2. Затем найдите ранее скопированный файл sessionstore.js и переименуйте его в sessionstore.txt.
  3. Откройте этот файл с помощью браузера (Firefox->Новая вкладка ->Открыть файл, указываете путь к txt файлу).
  4. Запустите консоль Firebug (Firefox->Веб-разработка->Firebug-> Открыть Firebug) Firefox: запускаем Firebug
  5. В самом низу окна имеется консольная строка (на скриншоте отмечена красным прямоугольником). Скопируйте в нее следующий js код: javascript:(function(){var D=document,H,i=j=0,P=D.getElementsByTagName('PRE'),t='',R=/[^:]{"entries":[{("url":"([^"]*)"),("title":"([^"]*)"){0,1}/g,T,U;for(j=0;E=P[j];j++){H=E.innerHTML;while(R.exec(H)){U=RegExp.$2;T=RegExp.$4;if(T.length==0){T=U;}t+='<b>['+(++i)+']</b> <a href='+U+'>'+T+' ('+U+')</a><br>';}}with(window.open().document){write(t);close()}})(); И нажмите Enter. firebug console
  6. После чего должна открыться новая вкладка, на которой будут присутствовать все ссылки, который скрипт «вытащит» из файла восстановления сессии Firefox ( как победить кодировку с русскими title – я разобраться не смог ) . Список ранее открытых веб-страниц Firefox, восстановленных из файла sessionstore.js
  7. Откройте нужные вам ссылки.
EnglishRussianUkrainian