Greasemonkey: Firefox <FF57(FF56や52ESRなど)をGreasemonkey4に自動「アップグレード」しないでください

作成日 2017年12月13日  ·  13コメント  ·  ソース: greasemonkey/greasemonkey

GM 4.1のstrict_min_version52.0です。 これにより、レガシー拡張機能(FF56や52ESRなど)をサポートするバージョンのFirefoxを使用しているユーザーは4.1に「アップグレード」されます。 FF 52ESRを使用している、またはFF55 / 56を引き続き使用している多くの人々は、特にそうしているので、レガシー拡張機能を引き続き使用できます。

従来のバージョンのGreasemonkeyは、4.xバージョンよりもはるかに機能的であり、常に機能します。 Firefox <FF57のバージョンを実行している人は、Greasemonkey4.xに自動「アップグレード」しないでください。

したがって、 manifest.jsonには次のものが必要です。

"strict_min_version": "57.0"

ユーザーはGMの自動更新、または一般的な拡張機能を無効にすることを選択できますが(つまり、このstrict_min_version設定はプロファイルごとに回避できます)、GM4は実際には「アップグレード」ではありません。 ほとんどのユーザーは、それをダウングレードと見なしています。 使用しているFirefoxバージョンでレガシー拡張機能がサポートされていないためにGM4を使用する必要がない場合、ユーザーはGM4に自動アップグレードしないでください。

最も参考になるコメント

必要なバージョンのGreasemonkeyをインストールしてから、自動更新をオフにすることが推進力になっていると思います。

全てのコメント13件

最小バージョン設定は、スクリプトの移行を容易にするために3.xバージョンにWebExtensionが組み込まれている期間の成果物だと思います。 それを下げないと、アドオンが正しくインストールされないと思います。

4.1は、より低い最小バージョン_oops?_でプッシュされました。 これは、人々を4.xに「意図的に強制する」ために行われたとは思わず、投稿の敵意は求められていません。

@Sxderp敵意は意図されていませんでした。 そのように聞こえてすみません。 私が書いたものを読み直しても、あなたが敵対的だと考えている部分が完全にはわかりません。 それで、私はそれを編集しました、あなたが不快に感じたものを(部分的に)推測しました。

「強制」(ユーザーに何が起こるかを説明するためだけに意図したもの)とは言いましたが、「意図的に強制」とは言いませんでした。やろうとしない)。 [あなたは私に2番目に自分自身を推測させました。 「わざと強制する」とは思いませんが、元のコメントを編集したので、投稿者として内容がメールで届かないため、100%確認できません。 もしそうなら、ごめんなさい。 意図されていませんでした。]

注:私は、WebExtensionsのみへのカットオーバーを取り巻くMozillaに対して否定的な感情を抱いていますが、GMに関係する人々は、Mozillaがそれらを配置した状況をうまく処理していると感じています。 これには、完全にMozillaのせいであることに拡張機能の作成者を非難する多数の人々に対処しなければならないことが含まれます。

ええと、私はv56でFFを「凍結」しましたが、GM4.1では、非常に単純なスクリプトで"Error: Permission denied to access property "nodeType""のようないくつかのあいまいなエラーが発生します。

私は次のようないくつかのあいまいなエラーを取得しています

ユーザースクリプトは、「コンテンツスクリプト」コンテキストで実行されます。 オブジェクト/関数がこのコンテキストで宣言されている場合、ウィンドウがそれらにアクセスする前に、それらをウィンドウに複製する必要があります。 Mozillaはこのセキュリティ機能を実装し、ページスコープへの漏洩を防ぎます。

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Sharing_content_script_objects_with_page_scripts

@Sxderpええ、私はすでに更新ノートを読んで、 unsafeWindowはどういうわけか異なった働きをし、 exportFunction() or cloneInto()を使用して、あなたが行ったのと同じ記事にリンクする必要があります(ユーザースクリプトではなく拡張機能の書き方を説明しています))。 ユーザースクリプトで実際にそれを行う方法の例を示している人は誰もいません。 しかし、それは重要なことではありません。 ポイントは、FF <= 56はこの全体的な遅延の影響を受けないため、強制する理由はありません。

ユーザースクリプトで実際にそれを行う方法の例を示している人は誰もいません。

ほぼ同じです。 誰かが「コンテンツスクリプト」と言ったら、それを「ユーザースクリプト」に置き換えます。 通常どおりに続行します。

たとえば、これは私が少し前に投稿したものです。

さらに、 window.eval()を使用すると、エクスポートを処理しなくても、引数がページスコープで直接実行されます。

ありがとう。 eval()に関しては、evalは悪であり、evalを使用する最初のルールは「evalを使用しない」です。

@Spown IMO、 exportFunction()およびcloneInto()はFirefoxのみであるため、避ける必要があります。 userscriptsとWebExtensionsの両方の重要な利点は、さまざまな異なるブラウザーで実行できることです。 ページコンテキストでコードを実行するには、さまざまな方法があります。 ユーザースクリプトとコンテンツスクリプトの両方でそれを行う方法は、関数executeInPage()です。これは、StackOverflowのこの回答にあります。 これにより、呼び出している関数にパラメーターを渡し、それらのパラメーターをページコンテキストに複製できます。 ウィンドウコンテキスト( window[variableName]など)で変数に渡されるパラメーター値を割り当てる単純な関数を使用すると、 cloneInto()と同じように簡単に実行できます。

ObjectArrayfunctionRegExpDateのみを処理するため、 cloneInto()ほど柔軟ではありません。 、および/または他のプリミティブ( Booleannull 、未定義、 Number 、およびString 、ただしSymbolではありません)。

@Sxderpこれはすべて真実かもしれませんが、FF> 56に更新しないことでこのすべてに参加しないことを選択したので、私は本当に気にしません。 しかし、それでもこの場合のように浸透します。

ところで、例で行ったように、スクリプトでページのjQueryを再利用しようとすると(前述のエラーが返されます)、同じエラーが発生します。 nvm

必要なバージョンのGreasemonkeyをインストールしてから、自動更新をオフにすることが推進力になっていると思います。

Greasemonkey 4にアップグレードした場合、Greasemonkey 3をインストールしてダウングレードし、必要に応じて引き続き使用することはできますか? または、Greasemonkey 4は元に戻せない変更を加えますか?

@garykingは問題なくダウングレードできるはずです。 スクリプトファイルはそのままにしておく必要があります。

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