Greasemonkey: Nightlyは一致パターンを解析できません

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

以下のスクリプトは次のエラーで失敗します: Error: <strong i="5">@match</strong> could not parse pattern

// ==UserScript==
// <strong i="8">@name</strong>        match test
// <strong i="9">@namespace</strong>   https://github.com/an-electric-sheep/
// <strong i="10">@version</strong>     1
// <strong i="11">@match</strong>       *://*.twitter.com/*
// <strong i="12">@grant</strong>       none
// ==/UserScript==

FF安定で動作します。 すぐに多くのスクリプトが壊れるのではないかと思います。

最も参考になるコメント

最後の良い点:Firefox 54.0a1(2017-02-09)
https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8accaから構築

最初の悪い点:Firefox 54.0a1(2017-02-10)
https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7から構築

プッシュログ
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b772e0f4138540113e91a46c99bb0d14ecc8acca&tochange=25a94c1047e793ef096d8556fa3c26dd72bd37d7

バグ#1337629が容疑者です。

__再現する手順:__
1)スクラッチパッドを開く
2)メニュー:「環境-ブラウザ」
3)コードを挿入します:

var url = "http://*.twitter.com/*";
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
    .getService(Components.interfaces.nsIIOService);
alert(ioService.newURI(url, null, null));

4)実行
5)結果:

__Firefox 54.0a1(2017-02-09)__

アラート: http://*.twitter.com/*

__Firefox 54.0a1(2017-02-10)__

Exception: [Exception... "Component returned failure code: 0x804b000a
(NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]"  nsresult: "0x804b000a
(NS_ERROR_MALFORMED_URI)"
location: "JS frame :: Scratchpad/1 :: <TOP_LEVEL> :: line 15"  data: no]

全てのコメント11件

最後の良い点:Firefox 54.0a1(2017-02-09)
https://hg.mozilla.org/mozilla-central/rev/b772e0f4138540113e91a46c99bb0d14ecc8accaから構築

最初の悪い点:Firefox 54.0a1(2017-02-10)
https://hg.mozilla.org/mozilla-central/rev/25a94c1047e793ef096d8556fa3c26dd72bd37d7から構築

プッシュログ
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b772e0f4138540113e91a46c99bb0d14ecc8acca&tochange=25a94c1047e793ef096d8556fa3c26dd72bd37d7

バグ#1337629が容疑者です。

__再現する手順:__
1)スクラッチパッドを開く
2)メニュー:「環境-ブラウザ」
3)コードを挿入します:

var url = "http://*.twitter.com/*";
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
    .getService(Components.interfaces.nsIIOService);
alert(ioService.newURI(url, null, null));

4)実行
5)結果:

__Firefox 54.0a1(2017-02-09)__

アラート: http://*.twitter.com/*

__Firefox 54.0a1(2017-02-10)__

Exception: [Exception... "Component returned failure code: 0x804b000a
(NS_ERROR_MALFORMED_URI) [nsIIOService.newURI]"  nsresult: "0x804b000a
(NS_ERROR_MALFORMED_URI)"
location: "JS frame :: Scratchpad/1 :: <TOP_LEVEL> :: line 15"  data: no]

こんにちは、これはURIを悪用しているように見えます。 そのパターンを使用してURIを作成する特定の理由はありますか? 実際のURIとパターンURIをどのように一致させていますか。
これを理解すると、バグ1337629をバックアウトするかどうかを決定するのに役立ちます。

@valentingは、URIを使用して、個々の部分に正規表現を適用する前に、さまざまなURI部分(スキーム、ホスト、パス)を安全に抽出します。 一致パターンにカスタムURIパーサーを実装することを避けるという考えだったと思います。

MatchPattern.jsm

また、私にとって、これには、すでにインストールされているスクリプトをサイレントに削除したり、ロードに失敗したりする効果があったことにも注意してください。 これはかなり驚くべきことであり、それから回復できたかどうか、つまり、スクリプトが再インストールされるまでスクリプトが削除されなかったかどうかはわかりません。

テストブランチ:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_matchPattern

私はまだプルリクエストをしていません(十分にテストされていません)...

私は昨夜Firefox開発者と同じ問題を抱えていました。 GMは、スクリプト内の2つの@match行に解析エラーがあるため、FBPスクリプトを削除しました。 2行を削除し、ディスクからスクリプトをロードして再インストールすることができました。
GMは、純度スクリプトとともにFFの更新から再起動したときに、無効にされたスクリプトも欠落していました。 削除された無効なものは、エラーなしでクリップボードから再ロードされました。 ありがたいことに、どちらのスクリプトもgm_scriptsフォルダーから削除されませんでしたが、読み込まれませんでした。 あなたが私を必要とするならば、これのどれかが助けになることを願っています。
これら2つのエラーを解析します。
// @match http:// .facebook.com /
// @match https:// .facebook.com /

ベータ版は正常に機能しているようです。

ベータ版はまだ更新されていません。 もうすぐです。

2017年2月17日04:24、DanaMWチェスター[email protected]
書きました:

ベータ版は正常に機能しているようです。


あなたが言及されたので、あなたはこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/greasemonkey/greasemonkey/issues/2480#issuecomment-280539445
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/ABYyOVjQCE0xIK_k-M2OecXJ6tXrpr0Vks5rdRL1gaJpZM4L-WHI

arantius / gearmonkey @ 9cb94670994ea326e81ad6df4ec083d56e595166がこれを修正すると思います。 確認がいいと思います。

私はそれをarantius / gearesmonkey @ 1531f342d512e9a0981897194bf3bf7ced09a1c7に書き直し、現在ベータチャネルにプッシュしています。

#2481に記載されているプロファイルを確認することはできません。機能させるしかなかったため、スクラッチして最初からやり直す必要があり、時間の無駄でした。

私が見つけたプロセスでは言うまでもなく、スクリプトを削除/削除しても実際にはスクリプトが削除/削除されないようです。プロファイル内のドライブでは、スクリプトがすべて保持されます。これを行っている理由はわかりません。これらを削除したためです。理由のためのスクリプト、なぜあなたはそれらを集めているのですか?

新しいスクリプトが、削除しなかった古いスクリプトと同じ名前(削除されたが実際には削除されていない)である場合に発生するエラーについて説明し、問題を引き起こします。 ここで扱われている問題に直接関係していなくても、これは実際に調査する必要があります。

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