Greasemonkey: V4 @matchは、V3およびTamperMonkeyとは異なる動作をします

作成日 2017年11月15日  ·  8コメント  ·  ソース: greasemonkey/greasemonkey

私のスクリプトには次のエントリがあります(これらはイントラネットアドレスでサニタイズされています)。

// <strong i="6">@match</strong>        http://*.some-net.net/*
// <strong i="7">@match</strong>        http://*.some-net.net/*
// <strong i="8">@match</strong>        https://*.some-othernet.net/*
// <strong i="9">@match</strong>        https://*.some-othernet.net/*

V3 / tampermonkeyでは、以下のすべてのアドレスの例(httpとhttpsの両方)で機能します。

[1] service.some-net.net
[2] service.some-othernet.net
[3] service.some-net。 ネット:1234
[4] service.some-othernet。 ネット:1234
[5] service.customer.some-net。 ネット:1234
[6] service.customer.location.some-net.net

V4 [3] [4]および[5]のHovewerは機能しません。 [3]の修正は、ポートに一致するようにそれらを追加することでした。

// <strong i="23">@match</strong>        http://*.some-net.net:*/*
// <strong i="24">@match</strong>        http://*.some-net.net:*/*
// <strong i="25">@match</strong>        https://*.some-othernet.net:*/*
// <strong i="26">@match</strong>        https://*.some-othernet.net:*/*

[5]はこれを試しましたが、それでも役に立たない

// <strong i="30">@match</strong>        http://*.*.some-net.net:*/*
// <strong i="31">@match</strong>        http://*.*.some-net.net:*/*
// <strong i="32">@match</strong>        https://*.*.some-othernet.net:*/*
// <strong i="33">@match</strong>        https://*.*.some-othernet.net:*/*

そして、これは私には意味がありません。[6]最初の(元の)ルールセットだけで作業するからです。

全てのコメント8件

公式ドキュメントは簡潔で、ポートについてはまったく言及されていません。 リグレッションを防ぐために、修正時に必ずテストを含めます。

つまり、新旧のコードを比較すると、次のようになります。

これがどのように起こったのかはわかりませんが、変わりませんでした。

さて、現在のURLを取得するために使用されるメソッドで何かが変更された可能性があります。 新しいFirefoxを使用している人は誰でもこの問題を抱えていますが、古いFF / Chromeを使用している人はそれが機能しています。
残念ながら、XPIを変更していくつかのプリントを追加したいとき、署名する必要があることがわかりました。

一致とポートに関するBugzillaがあります。 解像度がわからない。 私がそれを見つけることができるかどうかを確認します。

マッチとポートのBuzilla。 ここに。

さて、3.x日に戻って、 nsIURIを使用しました。これには、 hostport 、およびhostportが別々に含まれていました。 ここで、 hostという名前のURLを使用する必要がありますが、これはhostportを意味します。 hostnameを使用する必要があります。

問題のある機能とは直接関係ありませんが、FF実装との互換性を保証します。 上記のAPIを実装する必要があります。

https://bugzilla.mozilla.org/show_bug.cgi?id=1395278

この修正は4.1beta6にあるはずです。 これをテストして確認していただければ幸いです。

https://addons.mozilla.org/firefox/downloads/file/800957/greasemonkey-4.1beta6-an+fx.xpi?src=devhub

今すぐ確認し、正常に動作しているようです。 ありがとう!

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