How do I recover a form in Firefox *without* installing a plugin? [duplicate]
Possible Duplicate:
How to recover form information for a webpage in Firefox
I typed a couple of paragraphs on a discussion board, but when I clicked the submit button, the site was undergoing (un)scheduled maintenance, and the back button decided to refresh the page, sending my paragraphs into oblivion.
A quick web search revealed that Lazarus provides form recovery for Firefox. However, installing a plugin requires restarting Firefox, and even after restarting Firefox (which I haven't done yet), Lazarus can't recover forms it hasn't backed up yet.
Now that the horse is out of the barn, I want to do the impossible: restore some or all of the text I typed, without restarting my browser.
Edit: I should clarify. Lazarus is a wonderful solution for preventing future form data loss. This question is for people who have already navigated away from their form and lost its contents, but hope there is some way to salvage the situation. My solution was to get a core dump of the process and grep through it, but there might be a layman's way to do it (for example, somehow get Firefox to load the cached version of the previous page). Thus, solutions that only solve the problem in the future, without addressing the present, are off-topic in this question.
Do not restart your browser or press the back button!
On Linux:
This solution is hit or miss, and works on Linux. In short: dump the memory of the Firefox process, and search through it for fragments of your text. It's ugly, but it's your last resort.
First, dump core using the gcore
utility, which requires gdb (the GNU debugger) to be installed:
$ 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
Note that a core dump may take several hundred megabytes of disk space.
If it succeeded, you can now breathe a sigh of relief. If your text was lingering in memory by chance, it has been captured in the core dump.
Now, try to remember a phrase from your essay (for example, "a profound effect"), and use grep
to see if it's present in the document:
$ grep 'a profound effect' core.7089
Binary file core.7089 matches
If you get "Binary file ... matches", good, it's there! If not, try more phrases. If all of your grep
attempts produce empty output, then your essay is probably gone forever, and there is nothing you can do about it. (You can try grep -R 'a profound effect' ~/.mozilla
, but I doubt it will work)
Assuming you do get a match, the next task will be to slice out pieces of the core dump containing the text you're looking for, and use less
to look at it visually:
$ grep -B 20 -A 20 -a 'a profound effect' core.7089 > /tmp/out
$ less /tmp/out
(You could omit the first line and just say less core.7089
, but I've found that less
tends to blow up in memory usage when searching through such a large binary file.)
Now, type /a profound effect
, hit enter, wait, and page down until you see something recognizable:
Bam! If you don't like this result, see if there are any others by typing 'n'. Also, be sure to proofread the garbage so you don't end up posting:
my mind will often generate mush express ideas in that language.
I imagine it gets clobbered like this because the memory holding your essay fragments is no longer allocated and gets trampled by subsequent allocations.
On Windows:
The procedure is the same. First, create a core dump of Firefox. This can be accomplished in the Task Manager. In English, the menu entry is Create Dump File.
Dumping takes a few seconds.
Then, use a hex editor like http://mh-nexus.de/en/hxd/ to open the dump, and search for the lost text.
First thing -- forms are usually not cached. So, whatever you submitted is gone to the site and if it dropped it you are done; you need to re-type it.
Lazarus uses a SQLite DB to store your form data (of course, only after it is installed).
ps: the core-dump is a cute attempt to do the needful, however I wonder if there is a cost-to-effort benefit on that (this would be more useful as a spyware/malware technique -- no offense to Joey
here).