Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question
I think you've answered your own question here... – John T Jan 22 '11 at 9:03
@John T: Indeed. I'm just creating Google fodder for others with the same problem, but if anyone has any better suggestions, they are certainly welcome. – Joey Adams Jan 22 '11 at 9:16
This is not an exact duplicate. The referenced question's top answers require installing a plugin, which does not help the user if they already lost the form. – Joey Adams Apr 30 '12 at 2:15

marked as duplicate by Daniel Beck, studiohack, random Jan 24 '11 at 3:43

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

3 Answers

Here you go:

This jQuery code may work, if Firefox supports HTML5's localStorage method. Please keep in your mind that this script reiles on the existence of the ID attribute, so it won't work if that's missing.

$(function() {
    $('form input:text').keyup(function() {
        localStorage.setItem('formData-' + this.id, this.value);
    }).each(function() {
        var fData = localStorage.getItem('formData-' + this.id);
        // If there's a saved text for that form, restore it.
        if (fData) $(this).val(fData);
    });
});
share|improve this answer
"I really don't understand why can't just install Lazarus before typing the text." Can I borrow your time machine? :-) – Joey Adams Jan 22 '11 at 17:13
I'd really like to have one… :P – nyuszika7h Jan 22 '11 at 17:17
1  
Anyway, wouldn't you need to invoke this before losing your text? Also, I don't know how to execute arbitrary JavaScript code on an active page other than through the address bar's limited javascript: facility, which – Joey Adams Jan 22 '11 at 17:36
Anyway, wouldn't you need to invoke this before losing your text? By the way, the selector is incorrect, there's a syntax error (? not followed by :), and a C++-style comment foils being able to run the code from the address bar. Other than that, pretty cool. – Joey Adams Jan 22 '11 at 17:53
Now really, is it a challenge or so? Install Lazarus, restart Firefox and you won't have to worry about this anymore! If you meant that a forum is broken and you can't post something important, copy it into Notepad and paste it back after restarting FF. – nyuszika7h Jan 22 '11 at 18:26

Do not restart your browser!

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:

alt text

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.

share|improve this answer

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).

share|improve this answer
Actually, the core dump technique turned out to be easier than I expected. – Joey Adams Jan 22 '11 at 9:42
@Joey, It did for you and then you declared it the solution for your own problem. I wonder how well it will fare for everyone hitting the same problem -- should they install things like Lazarus or wait to get a core-dump and try their luck? If so, it would be worthwhile to keep in mind how the two things work. – nik Jan 23 '11 at 5:21

Not the answer you're looking for? Browse other questions tagged or ask your own question.