Эта статья, немного выбивающая из основной концепции сайта, посвящена способам восстановления предыдущей сессии с открытыми вкладками в горячо любимом браузере Mozilla Firefox. На данный опус меня натолкнула уже несколько раз встречающаяся проблема потери всех открытых вкладок вследствие некорректного завершения (по разным причинам: начиная от отключения электричества, кончая исчерпанием доступной памяти и зависанием системы) работы браузера Mozilla Firefox
Механизм автоматического восстановления предыдущей сессии (Session Restore) появился еще во 2-ой версии браузера. Firefox в специальном файле (sessionstore.js) сохраняет все открытые окна и вкладки, в том числе url страницы, размер и позицию окна/вкладки и набранную в текстовых полях информацию. После аварийного завершения работы на основании данных в файле, Firefox автоматически пытается восстановить предыдущую сессию, восстанавливая все открытые окна и вкладки, которые были открыты до неожиданного падения браузера. Если падение происходит во второй раз, то при старте Firefox появляется окно с надписью:
Firefox может восстанавливать все окна и вкладки, которые были открыты при последнем закрытии или неожиданном падении Firefox.
Вы можете попытаться:
- Удалить одну или несколько вкладок, которые, по вашему мнению, могут вызывать проблемы
- Начать совершенно новую сессию
Если отметить ранее открытые вкладки, которые нужно восстановить и нажать кнопку «Восстановить» Firefox откроет эти веб-страницы.
Если окно «Восстановление сессии» автоматически не появится, его можно попытаться вызвать, выбрав пункт меню Журнал -> Восстановить предыдущую сессию.
Если меню «Восстановить предыдущую сессию» неактивно (как на скриншоте), скорее всего что-то пошло не таки придется перейти к более «продвинутым» способам восстановления вкладок.
В первую очередь расскажем про механизм резервного копирования открытых вкладок и окон в Firefox. Информацию о текущей сессии Firefox сохраняет в файле sessionstore.js, который находится в каталоге профиля пользователя (C:\Users\username\AppData\Roaming\Mozilla\Firefox\Profiles\xxx.default — в Windows 7 и 8, или c:\Documents and Settings\username\Application Data\Mozilla\Firefox\xxx.default в XP). Если в процесс работы с Firefox проследить за изменением его размера, можно заметить что при открытии новой вкладки/окна его размер увеличивается, а при закрытии – уменьшается.
После «падения» Firefox пытается автоматически загрузить информацию об открытых вкладках и окнах из файла sessionstore.js. В том случае, если файл поврежден, недоступен, имеет некорректный формат или браузер по какой-то непонятной причине его «не видит»– Firefox запускает новую «чистую» сессию, а пункт меню «Восстановить предыдущую сессию» становится недоступен. Однако не стоит отчаиваться – есть еще несколько способов восстановить список ранее открытых файлов.
Дело в том, что в этом же каталоге профиля, в папке sessionstore-backups, находится файл recovery.js (recovery.bak), который содержит информацию о предыдущей сессии Firefox. Этот файл представляет собой копию файла sessionstore.js, который автоматически создается в том случае, если последний раз работа Firefox была завершена с ошибкой.
Закройте Firefox и переименуйте файл recovery.js (recovery.bak) в sessionstore.js (с заменой), после этого попытайтесь запустить Firefox. Посмотрите, удалось ли восстановить данные о предыдущей сессии.
Если и этот способ не помог, можно попытаться извлечь список URL из файлов sessionstore.js. Формат файла довольно специфичный – при желании, конечно, можно и вручную проаналищировать содержимое файла, и найти все открытые страницы, которые содержатся в конструкциях начинающихся с «url»:»http, но этот путь довольно утомительный и трудоемкий.
Попытаемся немного автоматизировать методу извлечения url из файла:
- В первую очередь нужно установить расширение Firefox для веб-разработчиков: Firebug (Firefox -> Дополнения — > Поиск среди дополнений -> Firebug — > Установить).
- Затем найдите ранее скопированный файл sessionstore.js и переименуйте его в sessionstore.txt.
- Откройте этот файл с помощью браузера (Firefox->Новая вкладка ->Открыть файл, указываете путь к txt файлу).
- Запустите консоль Firebug (Firefox->Веб-разработка->Firebug-> Открыть Firebug)
- В самом низу окна имеется консольная строка (на скриншоте отмечена красным прямоугольником). Скопируйте в нее следующий 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. - После чего должна открыться новая вкладка, на которой будут присутствовать все ссылки, который скрипт «вытащит» из файла восстановления сессии Firefox ( как победить кодировку с русскими title – я разобраться не смог 🙁 ) .
- Откройте нужные вам ссылки.