Greasemonkey: privacy.firstparty.isolateを設定すると、スクリプトストレージが壊れます

作成日 2019年07月09日  ·  23コメント  ·  ソース: greasemonkey/greasemonkey

こんにちは、みんな、

FF 68にアップグレードする前に誰かがそれを読んだ場合:スクリプトのバックアップを作成します。

自動更新後、すべてのスクリプトがなくなりました。 例外はまだ含まれていますが(GMは私の過去の設定の一部をプルしているようです)、すべてのスクリプトが欠落しています。

GMは現在どこにデータを保存していますか? browser-extension-dataフォルダー内で、GMファイルは変更されませんでした。 まだ調査中ですが、これはまったく奇妙なようです。

最も参考になるコメント

OK、見つけました。

問題は、「privacy.firstparty.isolate; true」の設定です。 通常、GMはその設定を次の2つのフォルダーに保存します。

  • profile \ storage \ default \ moz-extension +++ MYGMID
  • profile \ storage \ default \ moz-extension +++ MYGMID ^ userContextId = MYCONTID

ファーストパーティの分離が有効になっていて、FF 68にアップグレードすると、サードパーティのフォルダが作成されます。

  • profile \ storage \ default \ moz-extension +++ MYGMID ^ firstPartyDomain = MYGMID

ファーストパーティの分離( "privacy.firstparty.isolate; false")を無効にしてから、上記のサードパーティで作成されたフォルダを削除すると、スクリプトが再び表示されます。

全てのコメント23件

だから私はこれを見て、今私のバージョンをチェックしました:67。しかし、それは適用するためのアップデートを持っていたので、私はしました。 今、私は68歳で、すべてのスクリプトが適切に配置されています。

スクリプトはIndexedDBに保存されます。 これに対する簡単な答えはありません。ランダムなIDが関係しています(私たちの制御を超えています)。

OK、それは一般的な問題ではないようです。

アップグレード後に変更したのは、設定>セキュリティ>カスタム>ブロック識別トラッカーを更新することだけでした(正確な英語の翻訳はわかりません)。 しかし、元に戻すとスクリプトは元に戻りませんでした:/

IndexedDBの場所(about:supportからIDを知っていますが、ディレクトリはわかりません)といくつかのバックアップを検索します。

"プロファイル>ストレージ>デフォルト> about + newtab ^ firstPartyDomain = about.MYGMID> idb> 3312185054sbndi_pspte.sqlite"->ファイルのタイムスタンプによると1か月以降ファイルが変更されていません

"プロファイル>ストレージ>永続的> moz-safe-about + home ^ firstPartyDomain = about.MYGMID> idb> 818200132aebmoouht.sqlite"->ファイルのタイムスタンプによると1か月以降ファイルが変更されていません

しかし、これらのファイルのどちらにも私のスクリプトはもう含まれていません。

これは私にも起こりました。 macOS上のFirefox68.0。 さまざまなプロファイルで問題が確認されました。

これは私にも起こりました。 macOS上のFirefox68.0。 さまざまなプロファイルで問題が確認されました。

古いプロファイルをFF68にコピーするだけでは、スクリプトは復元されないことがわかりました。 FF 67 Portableをダウンロードし、そこに古いプロファイルのバックアップをコピーして、FF 67からスクリプトをエクスポートする必要がありました(FF68に再インポートしようとしませんでした)。 したがって、FFはスクリプトをプロファイルフォルダ内のどこかに保存しているように見えますが、FF68はこれを読み取ることができないか、FF67から正しく移行しません。

更新:GMはスクリプトを「profile \ storage \ default \ moz-extension +++ MYGMID \ idb \ XXX.sqlite」内に保存します。 これは、about:supportに示されているものとは異なるIDです。 すべてのスクリプトがまだ存在しているようですが、一部の構成でFF68がスクリプトを読み取れなくなったのは興味深いことです;)

更新2:バックアッププロファイルを使用して定期的に複製することもできます。 残念ながら、このプロファイルを共有することはできず、クリーンなFFポータブルインストールで再現することはできませんでした。

@daleeiddこれをarantiusでも再現可能にするために共有できる、より詳細な説明または「空の」プロファイルがありますか?

調査すべきだと思います。 これは最悪のケースであり、ユーザーの1%だけであっても、発生しないはずです。

これは、アドオンIDが更新間で変更された可能性があるようです。

about:debugging :内で同じアドオンIDと内部UUIDが表示されていることを確認しました。

OK、見つけました。

問題は、「privacy.firstparty.isolate; true」の設定です。 通常、GMはその設定を次の2つのフォルダーに保存します。

  • profile \ storage \ default \ moz-extension +++ MYGMID
  • profile \ storage \ default \ moz-extension +++ MYGMID ^ userContextId = MYCONTID

ファーストパーティの分離が有効になっていて、FF 68にアップグレードすると、サードパーティのフォルダが作成されます。

  • profile \ storage \ default \ moz-extension +++ MYGMID ^ firstPartyDomain = MYGMID

ファーストパーティの分離( "privacy.firstparty.isolate; false")を無効にしてから、上記のサードパーティで作成されたフォルダを削除すると、スクリプトが再び表示されます。

@kekkcありがとうございます。 指示に従って、エクスポート用のスクリプトを回復します。 よくできた!

素晴らしい診断。 ただし、Greasemonkey内からこれをどうすればよいかわかりません。

どういうわけか、GMに回避策がある可能性があるという希望がありました。 同じストレージを使用する他のすべての拡張機能(https://addons.mozilla.org/de/firefox/addon/textnotes/?src=searchなど)では、アップグレード中にFFが新しいフォルダーを作成することはありませんでした。パーティの分離がオンになりました。

その拡張機能はIndexedDBを使用しません。

ファーストパーティの分離を無効にし(このアドオンを介して有効にした、単純な切り替え)、FFを再起動すると、スクリプトが再び表示されることを確認できます。 フォルダを削除する必要はありませんでした。

スクリプトを安全にエクスポートし、ファーストパーティの分離を再度有効にしてからスクリプトを再インポートすると問題が解決したため、FPIがGreasemonkeyを永続的または永続的に破壊することはないようです。 (私が正しく思い出せば)これは、ユーザーが最初にファーストパーティの分離を有効にしたときにすべての(拡張されていない)ブラウジングデータに起こることと同じであることに注意する価値があるかもしれません。したがって、FF68が通常のFPI動作を拡張して適用した可能性があります拡張機能にも。

少し調べてみると、このバグは、FPIを脇に置いたアドオンの破損について言及しています。この問題について、特に確認された別のバグを一目で見つけることはできませんでした。

Thx、bugzillaのバグについて言及しました。 たぶんhttps://bugzilla.mozilla.org/show_bug.cgi?id=1564593もFPIを参照する必要があります(FPIはTorBrowser Upliftの一部として導入され、MozillaにとってはUserScript APIと同じくらい大きかった)

私たち(Mozilla)がこれを見たことに注意してください。 最も関連性の高いBugzillaバグ1554805だと思います。

残念ながら、現時点でこれに積極的に取り組んでいる人は誰もいませんが、これを修正するためのいくつかのサイクルを見つけることができるかもしれません。 残念ながら、「修正」はすべてを再び削除する可能性があります。 ただし、少なくともFPIを有効/無効にしても、拡張機能のストレージは切り替えられません...

GMをインストールしていないので、泣き言を言う場所ではありませんが、同じことが起こり、何も機能しません。 FPIをインストールしましたが、無効にしました。 FF 68にアップグレードすると、onetabとスタイラスの両方でデータが失われました。

私はこれについてここで続けました: https ://github.com/openstyles/stylus/issues/747

@kekkcどのFF67ポータブルソリューションを使用しましたか? ポータブルアプリFFとFFESRを試しましたが、どちらも古いFFプロファイルを使用してはいけないと言っています...そしてそのダイアログボックスをオーバーライドする方法がわかりません。 どういうわけか、FF 68へのアップデートは私のプロファイルに何かをし、FF66.0.4以前は新しいプロファイルを使用するように言い続けています。

@ b16r05は休暇中だった、おそらくあなたはすでにそれを理解している。 プロファイルフォルダをコピーしたばかりで、以前はFF 67Portableを起動していませんでした。 同じエラーメッセージを覚えていますが、この方法は最後に機能したと思います。

この動作は確認できません。 (FF68)を無効にしました。
スクリプトが表示されないだけでなく、新しいスクリプトを作成したり、何かをインストールしたりすることもできません。
何もしません。

新しいスクリプトをインストールすると、最後のダイアログに「未定義」と表示されます。
「新しいスクリプトを追加」をクリックすると、コンソールに次のエラーメッセージが表示されます。

IndexedDB UnknownErr: ActorsParent.cpp:581
Error opening user-scripts DB! <unavailable> user-script-registry.js:57:15
undefined
Error: undefined

アンインストールして、フォルダstorage\default\moz*を削除し、 gm_scriptsフォルダの名前を変更して、再インストールしてみました。それでも機能しません。

これはFF71で修正されたようですhttps://bugzilla.mozilla.org/show_bug.cgi?id=1554805

FF70からFF71にアップグレードすると、2019年に2度目のすべてのスクリプトとスタイラススタイルが失われました。privacy.firstparty.isolateが有効になっています。 しかし今回は、アップグレードする前にプロファイルのバックアップを作成しました。

インストールを一時的に70にダウングレードし、バックアップを解凍して、スクリプトとスタイルをエクスポートすることができます。これは、以前に他のデータが失われたためにやり直したものです。

これは、私のすべての作業の外部コピーを保持することを教えてくれます。 次に、それらをバージョン管理にチェックインし、適切なエディターで作業できます。 コピーペースト以外に、外部で変更したファイルをGM + Firefoxに自動的にデプロイするための手間のかからない方法をお勧めしますか?

このページは役に立ちましたか?
0 / 5 - 0 評価