Как восстановить форму в Firefox * без * установки плагина? [Дубликат]

33

Возможный дубликат:
Как восстановить информацию формы для веб-страницы в Firefox

Я набрал пару абзацев на доске обсуждений, но когда я нажал кнопку «Отправить», сайт проходил (не) плановое обслуживание, и кнопка «Назад» решила обновить страницу, отправив мои абзацы в забвение.

Быстрый поиск в сети показал, что Lazarus обеспечивает восстановление формы для Firefox. Однако для установки плагина требуется перезапуск Firefox, и даже после перезапуска Firefox (что я еще не сделал) Lazarus не может восстановить формы, для которых он еще не создал резервную копию.

Теперь, когда лошадь вышла из сарая, я хочу сделать невозможное: восстановить часть или весь набранный текст без перезагрузки браузера.


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

Джои Адамс
источник
1
Я думаю, что вы ответили здесь на свой вопрос ...
Джон Т
2
@ Джон Т: Действительно. Я просто создаю Google фураж для других с такой же проблемой, но если у кого-то есть предложения получше, они, безусловно, приветствуются.
Джои Адамс
8
Это не точный дубликат. Лучшие ответы на указанный вопрос требуют установки плагина, который не поможет пользователю, если он уже потерял форму.
Джои Адамс
Я столкнулся с той же ситуацией. Решение было бы очень хорошо. Даже в случае потери данных в будущем , я также ищу решение. Лазарь многообещающий, но у него есть небольшая слабость: он вообще не работает.
Николас Барбулеско
1
superuser.com/questions/512669/… является актуальным и предоставил мне рабочее решение с помощью инструментария веб-разработчика.
pbhj

Ответы:

57

Не перезагружайте браузер и не нажимайте кнопку «Назад»!

В Linux:

Это решение работает без ошибок и работает в Linux. Вкратце: выгрузите память процесса Firefox и найдите в нем фрагменты вашего текста. Это некрасиво, но это ваше последнее средство.

Сначала создайте дамп ядра с помощью gcoreутилиты, для которой требуется установить gdb (отладчик GNU):

$ ps -e | grep firefox
 7089 ?        00:02:23 firefox
$ gcore 7089
[New Thread 0xa8ffeb70 (LWP 8924)]
[New Thread 0xb25feb70 (LWP 8531)]
[New Thread 0x9d7feb70 (LWP 8527)]
... snip ...
[New Thread 0xb5ffeb70 (LWP 7099)]
[New Thread 0xb67ffb70 (LWP 7098)]
[New Thread 0xb72f8b70 (LWP 7097)]
Saved corefile core.7089

Обратите внимание, что дамп памяти может занимать несколько сотен мегабайт дискового пространства.

Если это удалось, теперь вы можете вздохнуть с облегчением. Если ваш текст случайно задержался в памяти, он был записан в дамп памяти.

Теперь попробуйте запомнить фразу из вашего эссе (например, «глубокий эффект») и используйте, grepчтобы увидеть, присутствует ли она в документе:

$ grep 'a profound effect' core.7089 
Binary file core.7089 matches

Если вы получили «Двоичный файл ... совпадения», хорошо, оно есть! Если нет, попробуйте больше фраз. Если все ваши grepпопытки приводят к пустым выводам, то, вероятно, ваше эссе пропало навсегда, и вы ничего не можете с этим поделать. (Можно попробовать grep -R 'a profound effect' ~/.mozilla, но я сомневаюсь, что это сработает)

Предполагая, что вы получите совпадение, следующая задача будет вырезать кусочки основного дампа, содержащего текст, который вы ищете, и использовать lessего для визуального просмотра:

$ grep -B 20 -A 20 -a 'a profound effect' core.7089 > /tmp/out
$ less /tmp/out

(Вы можете опустить первую строку и просто сказать less core.7089, но я обнаружил, что lessпри поиске в таком большом двоичном файле наблюдается тенденция к увеличению использования памяти.)

Теперь введите /a profound effect, нажмите Enter, подождите и пролистайте страницу, пока не увидите что-то узнаваемое:

альтернативный текст

Бам! Если вам не нравится этот результат, посмотрите, есть ли другие, набрав 'n'. Кроме того, не забудьте вычитать мусор, чтобы не оставлять сообщения:

мой ум часто будет генерировать идеи, выраженные на этом языке.

Я полагаю, что это забито так, потому что память, содержащая ваши фрагменты эссе, больше не выделяется и вытесняется последующими выделениями.

В Windows:

Процедура такая же. Сначала создайте дамп ядра Firefox. Это можно сделать в диспетчере задач. На английском языке пункт меню « Создать файл дампа» .

Сброс ядра Firefox

Сброс занимает несколько секунд.

Место основной свалки

Затем используйте шестнадцатеричный редактор, например http://mh-nexus.de/en/hxd/, чтобы открыть дамп и найти потерянный текст.

HxD для поиска дампа

Джои Адамс
источник
1
Работал у меня на Windows даже после нажатия кнопки назад. Теперь это стало еще более трудоемким, учитывая множество процессов, созданных Firefox, но после сохранения всех из них и использования инструмента (FAR-менеджера) для одновременного поиска по нескольким кодировкам это сработало (в моем случае результат был прямым порядком байтов UTF-16).
alexandroid
Работал с хромом в Linux. Пришлось обновить страницу, чтобы выяснить, какой процесс осуществлял мониторинг страницы htop(кажется, что chrome создает много потоков).
passerby51
1

Первое - формы обычно не кэшируются. Итак, все, что вы отправили, уходит на сайт, и если оно было удалено, все готово; Вы должны перепечатать это.

Lazarus использует базу данных SQLite для хранения данных формы (конечно, только после ее установки).

PS: дамп памяти - это милая попытка сделать все необходимое, однако мне интересно, есть ли в этом преимущество, связанное с затратами на усилия (это было бы более полезно в качестве метода шпионского / вредоносного ПО - здесь без обид Joey).

Nik
источник
1
На самом деле, метод дампа ядра оказался проще, чем я ожидал.
Джои Адамс
@Joey, это сделало для тебя, а потом ты объявил это решением для своей проблемы. Интересно, насколько хорошо это будет для всех, сталкивающихся с одной и той же проблемой - должны ли они установить такие вещи, как Lazarus или подождать, чтобы получить дамп ядра и попытать счастья? Если так, то стоило бы помнить, как эти две вещи работают.
Ник
1
На самом деле, метод дампа для ядра был очень полезен для меня, и его было очень просто сделать.
13
2
Несмотря на потерю данных в будущем , Lazarus является многообещающим, но у него есть небольшая слабость: он вообще не работает.
Николас Барбулеско