Foxの陥落時のデータ損失の問題の解決策を探しています

過去数日間で、Firefoxが正常に2回閉じられなかったことがありました。 50回以上の拡張機能を搭載した長時間の集中的な作業の後、彼が正直にgaveめた(クラッシュ)、2回目:今日彼が仕事に来て、コンピューターの電源を切った。 電気が切れたことが判明し......



初めてでさえ、そのとき使用していた1つの拡張機能の設定が保存されていないことに気付きました。 再構成する必要がありました。 しかし、今日これらの設定を2回目に復元しなければならなかったとき、これはそうすべきではないと考えました。



少し検索したところ、Firefoxが設定をprefs.jsファイルに保存していることがわかりました

(C:\ Documents and Settings \ User \ Application Data \ Mozilla \ Firefox \ Profiles \ sDgUfwhg.default \ prefs.jsにあります)

定期的な閉鎖の場合のみ(および調査中に浮上した一部の動きでも)。



しかし、今日のブラウザはほとんど閉じません...だから解決策が必要です;)





典型的な状況があります:

そのため、拡張機能の設定を調整しました(たとえば、サイトをBetterCacheのホワイトリストに追加したり、自動再生を停止したりします)。 これらの設定がprefs.jsに保存されていることは確かです。つまり、ブラウザーが閉じられたときに実際にネジに保存されます。 したがって、完了した作業を失わないために、ブラウザを閉じて開く(または再起動する)という要望がありますが、多くのタブが開いており、一般的にブラウザは閉じないはずなので、本当にしたくないです。 何もせずに作業を続けると、そのようなデータが失われる可能性が高くなります。



レジストリにデータを保存するWindowsアプリケーションにも同様の問題が存在します。ごくまれですが、BSODを取得し、ダウンロード後にいくつかのプログラムの設定が最後の変更をすべて「忘れた」ことに気付きました。 つまり、レジストリの変更もすぐにはネジに保存されません。



Firefoxのこのような状況で、私は設定を保存する解決策を探し始めました。つまり、ブラウザーを閉じずに設定をprefs.jsファイルにフラッシュする方法を探し始めました。



既に何らかの拡張機能があるかもしれないと思っていましたが、addons.mozilla.orgでの検索では結果が返されませんでした(検索がないことを確認しました)。



その後、彼はトピック「prefs.js」のフラッシュでグーグルを始め、2つのスマートページを見つけました:

www.softwarepunk.com/blog/firefox-preferences-flush.html

fixunix.com/mozilla/408327-savepreffile-doesnt-really-work.html



だから30分後、私はすでにコードを持っていました:

Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).savePrefFile(null)







しかし、Firebugコンソールで実行すると、次のようになりました。

エラー:<...>がプロパティXPCComponents.classesを取得する権限が拒否されました

任意のサイトの任意のページ。



それから、サイトではなく、Firefoxの内部ページで試すべきだと思いました。 config-特徴的な遅延とエラーメッセージなしで試してください。 prefs.jsを見て-更新しました。

ホワイトリストに追加したドメインの存在をテキスト検索で確認しました-それらが存在するため、最近の変更が正確に保存されます。



次のタスク:保存を便利にする方法は?



最初の考えはブックマークレットです。 ブックマークを作成し、場所でそれを処方します:

javascript:Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).savePrefFile(null)





私はオープンページで試してみてください:config-他のすべてで動作します-許可が拒否されました。



これは私が立ち往生している場所です。



開いているサイトに関係なくボタンを機能させる方法は? (約:スクリプトで設定を行い、そこでコードを実行し、それを閉じますか?許可が拒否されたのと同じ理由で動作しないと思います-セキュリティ違反)。



通常のボタンを作成する方法、またはボタンをまったく必要とせずに、保存コードが定期的に機能するようにする方法 (拡張機能を作成しますか?経験のある人は経験がありません-ヘルプ)。

UPD。 いい人が見つかりました。最初のコメントをご覧ください。



今のところ、私は手動で約構成を開き、アイコンを作成したブックマークレットボタンをクリックします 画像ダウンロード )。

アイコンは、拡張子Favicon Picker 3を使用して設定されました。



斑点

そのようなブックマークレットをクリックすると、設定で何かが実際に変更された場合にのみ保存が行われます。 そうしないと、何も起こりません。prefs.jsは移動せず、ボタンをクリックしても目立った遅延はありません。 これは、何らかの方法でこれを行う場合、バックグラウンドで定期的に保存するのに非常に適しています。



考えを渡す

良い方法では、この拡張機能は、ユーザーではなく設定ウィンドウを閉じるときにフラッシュする必要があります。 同様に、Firefoxは閉じたときだけでなく、ブラウザの設定([オプション]ウィンドウまたは[構成]タブ)の変更により、調査プロセスについて判明したときに定期的にこれを行うことができました。 毎回、設定、またはabout:configテーブルで何かを変更しようとすると、任意のブールパラメータを前後に変更することもオプションですが、それでも...



habrasocietyが一緒になって、私が得たものよりも良い解決策を見つけられるようになることを願っています。






All Articles