Como faço para recuperar um formulário no Firefox * sem * instalar um plugin? [duplicado]

31

Digitei alguns parágrafos em um quadro de discussão, mas quando cliquei no botão enviar, o site estava passando por uma (in) manutenção agendada, e o botão voltar decidiu atualizar a página, enviando meus parágrafos para o esquecimento.

Uma rápida pesquisa na web revelou que Lazarus fornece recuperação de formulários para o Firefox . No entanto, a instalação de um plug-in requer a reinicialização do Firefox e, mesmo após a reinicialização do Firefox (que ainda não fiz), o Lazarus não pode recuperar formulários que ainda não foram submetidos a backup.

Agora que o cavalo está fora do celeiro, quero fazer o impossível: restaurar alguns ou todos os textos que eu digitei, sem reiniciar meu navegador.

Editar : devo esclarecer. Lazarus é uma solução maravilhosa para prevenir o futuro perda de dados de formulário. Essa pergunta é para pessoas que já navegaram para longe de sua forma e perderam seu conteúdo, mas esperam que haja alguma maneira de salvar a situação. Minha solução foi obter um core dump do processo e fazer o grep através dele, mas pode haver uma maneira leiga de fazê-lo (por exemplo, fazer com que o Firefox carregue a versão em cache da página anterior). Assim, soluções que só resolvem o problema no futuro, sem abordar o presente, estão fora do tema nesta questão.

    
por Joey Adams 22.01.2011 / 09:56

2 respostas

55

Não reinicie o navegador ou pressione o botão de voltar!

No Linux:

Esta solução é imprevisível e funciona no Linux. Resumindo: despeje a memória do processo do Firefox e procure por fragmentos do seu texto. É feio, mas é seu último recurso.

Primeiro, faça o dump core usando o utilitário gcore , que requer que o gdb (o depurador GNU) seja instalado:

$ 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

Observe que um dump principal pode levar várias centenas de megabytes de espaço em disco.

Se for bem sucedido, agora você pode respirar aliviado. Se o seu texto permaneceu na memória por acaso, ele foi capturado no dump principal.

Agora, tente lembrar uma frase da sua redação (por exemplo, "um efeito profundo") e use grep para ver se ela está presente no documento:

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

Se você receber "Arquivo binário ... correspondências", bom, está lá! Se não, tente mais frases. Se todas as suas grep tentativas produzirem resultados vazios, então seu trabalho provavelmente terá desaparecido para sempre, e não há nada que você possa fazer sobre isso. (Você pode tentar grep -R 'a profound effect' ~/.mozilla , mas duvido que funcione)

Supondo que você receba uma correspondência, a próxima tarefa será dividir partes do dump principal que contêm o texto que você está procurando e usar less para visualizá-lo visualmente:

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

(Você pode omitir a primeira linha e apenas dizer less core.7089 , mas descobri que less tende a aumentar o uso de memória ao pesquisar por um arquivo binário tão grande.)

Agora, digite /a profound effect , aperte enter, wait e page down até ver algo reconhecível:

Bam!Sevocênãogostardesteresultado,vejaseháoutrosdigitando'n'.Alémdisso,nãoseesqueçaderevisarolixoparaquevocênãoacabepostando:

mymindwilloftengeneratemushexpressideasinthatlanguage.

Euimaginoqueissoéumabesteiraporqueamemóriaquecontémseusfragmentosdeensaionãoémaisalocadaeépisoteadaporalocaçõessubseqüentes.

NoWindows:

Oprocedimentoéomesmo.Primeiro,crieumdumpprincipaldoFirefox.IssopodeserfeitonoGerenciadordeTarefas.Eminglês,aentradadomenuéCriararquivodedespejo.

Dumping leva alguns segundos.

Emseguida,useumeditorhexadecimalcomohttp://mh-nexus.de/en/hxd/paraabrirodespejoeprocurarotextoperdido.

    
por 22.01.2011 / 10:32
1

Primeira coisa - os formulários geralmente não são armazenados em cache. Então, o que você enviou é ido para o site e se ele caiu você está feito; você precisa redigitá-lo.

Lazarus usa um DB SQLite para armazenar seus dados de formulário (claro, somente depois de instalado).

ps: o core-dump é uma tentativa fofa de fazer o necessário, no entanto, pergunto-me se há um benefício de custo para esforço nisso (isso seria mais útil como uma técnica de spyware / malware - sem ofensa para Joey aqui).

    
por 22.01.2011 / 10:33

Tags