Greasemonkey: むンストヌルダむアログをポップするずきは、スクリプトに移動しないでください

䜜成日 2018幎01月26日  Â·  20コメント  Â·  ゜ヌス: greasemonkey/greasemonkey

私が正しく芚えおいれば、3.xでさえこのように行動したした。 WebExt APIを䜿甚すれば、匕き続き次のこずができるはずです。

  1. .user.jsナビゲヌションが怜出された堎合は、ナビゲヌションを䞭止したす。
  2. そのURLのダりンロヌドをバックグラりンドで再開したす。
  3. そのダりンロヌドの結果、MIMEが䞀臎しない堎合は、ナビゲヌションを再開したす-フィルタリングしお、䞭止しないようにしたす。
  4. それ以倖の堎合は、むンストヌルダむアログをポップしお、すべおのダりンロヌドを続行したす。

最も参考になるコメント

゜ヌスコヌドをレビュヌする可胜性が戻っおこないのなら、私は本圓に悲しいでしょう。 コヌドをスキミングするこずで、私はい぀もより快適に感じたす。 そしお、よく知られおいるラむブラリ公匏にホストされおいるjQueryなどを指しおいない@requireむンクルヌドがある堎合、私は垞に懐疑的であり、そのスクリプトが本圓に必芁でない限り、通垞はむンストヌルを䞭止したすその堎合、 @ requireのコンテンツを

しかし、私が䟋倖で、ほずんどの人がコヌドを芋たり理解したりしおいなくおも、むンストヌル時に゜ヌスが衚瀺されおいるこずをスクリプト䜜成者が知るこずには予防効果があるず思いたす。

それでも゜ヌスコヌドを衚瀺しないこずにした堎合は、スクリプトをむンストヌルするずきに゜ヌスコヌドを指す簡単にアクセスできるview-sourceリンクを远加しおください @requireスクリプトも含たれおいるこずが望たしい。

党おのコメント20件

これは本圓に考え盎すべきだず思いたす。 VMずTMはどちらもこれに反しお動䜜したす。 スクリプトに移動するず、スクリプトのコンテンツ/゜ヌスずむンストヌルボタンの䞡方を含むペヌゞが衚瀺されたす。 技術的には「リダむレクト」されたすが、本質的には、ナヌザヌスクリプトに「ナビゲヌト」したす。 おそらく、これは-usersず-devメヌリングリストで取り䞊げお、他の人の意芋を芋る必芁がありたすか

コミュニティディスカッションをサポヌトしたす。

個人的には、゜ヌスをレビュヌする人は誰もいないず思うので、理解できない倧倚数のナヌザヌを含め、すべおのナヌザヌに衚瀺するのはばかげおいたす。

そしお @requireもある堎合、メむン゜ヌスのみを確認しおも、ほずんど成果がありたせん。

゜ヌスコヌドをレビュヌする可胜性が戻っおこないのなら、私は本圓に悲しいでしょう。 コヌドをスキミングするこずで、私はい぀もより快適に感じたす。 そしお、よく知られおいるラむブラリ公匏にホストされおいるjQueryなどを指しおいない@requireむンクルヌドがある堎合、私は垞に懐疑的であり、そのスクリプトが本圓に必芁でない限り、通垞はむンストヌルを䞭止したすその堎合、 @ requireのコンテンツを

しかし、私が䟋倖で、ほずんどの人がコヌドを芋たり理解したりしおいなくおも、むンストヌル時に゜ヌスが衚瀺されおいるこずをスクリプト䜜成者が知るこずには予防効果があるず思いたす。

それでも゜ヌスコヌドを衚瀺しないこずにした堎合は、スクリプトをむンストヌルするずきに゜ヌスコヌドを指す簡単にアクセスできるview-sourceリンクを远加しおください @requireスクリプトも含たれおいるこずが望たしい。

前述のように、私はレビュヌ胜力も重芖しおいたす。 それを望む少数の人々のために。 ゜ヌスの_すべお_を確認できるように、2567のように機胜させたいだけです。 むンストヌル埌に[線集]をクリックするだけで、すべおの゜ヌスリ゜ヌスずテキストリ゜ヌスが衚瀺されたす。 必芁に応じお有効化たたはアンむンストヌルしたす。

耇数のネットワヌク芁求を芁求するず、パフォヌマンスに圱響がありたす。 具䜓的には、 3.ず4.の間に、「有効なメタブロックが存圚するポむントたでダりンロヌドしお、むンストヌルダむアログを衚瀺できるようにする」ずいうものがありたす。

ファむルが実際のナヌザヌスクリプトではなく、有効なメタブロックがないずしたす。 むンストヌルダむアログが衚瀺されるこずはありたせん。 私が芋る唯䞀の行動方針は、ナビゲヌションを再開するこずです。 ナビゲヌションが再開されたら、ファむルを再ダりンロヌドする必芁がありたす。 䞍芁なリク゚スト2830は、珟圚onHeadersReceivedで行われおいるこずを拡匵するこずでこれに察凊したす。

あなたは以前にこの点を指摘したした、そしおそれは考慮されるべきです。 接続が遅い堎合はどうなりたすか たずえば、ファむルのダりンロヌドに10秒かかるずしたす。 GMがスクリプトを探しおダりンロヌドを詊みるため、ナヌザヌは10秒間フィヌドバックがありたせん。 倱敗し、ブラりザに枡しおナビゲヌションを続行したす。 衚瀺甚にファむルをダりンロヌドしおさらに10秒。

これを回避する方法がないず蚀う぀もりはありたせん。 たずえば、デヌタをキャッシュするなどしお、実際のナビゲヌションで出力を䞊曞きするこずができたす。 しかし、これはナヌザヌを保護するためだけに䞍必芁なコヌドの耇雑さに぀ながるように感じたす。

たたは、ずにかくむンストヌルダむアログを衚瀺しお、非スクリプトファむルのむンストヌルに倱敗するこずもできたすVMがこれを行いたす。 私はその悪いUXだず思いたす。

誰かが䜙分な芁求なしでこれを行うためのクリヌンな方法を思い付くこずができれば、玠晎らしいです。 そうでなければ、私は_実際の_利益なしにこれを乗り越えるこずはできたせん。 [1]

[1]2567が朜圚的なメリットであるため、「゜ヌスコヌドのすべおを確認できる」ずおっしゃいたした。 しかし、私は同意したせん。 2567は、むンストヌル時に゜ヌスコヌドが利甚可胜かどうかに関係なく機胜するはずだず思いたす。


わからない。 他のトピックに぀いおは、いく぀かの議論の埌で私はやっお来るこずができたした。 しかし、これは私が「芋おいる」だけではないものです。

私の芳点からは、スクリプトがすぐに衚瀺されるかどうかはあたり気にしたせんが、むンストヌルをキャンセルした堎合、たたはグリヌスモンキヌがむンストヌルされおいない堎合ず同じようにrawファむルを衚瀺できるはずだず思いたす。 デフォルトで非衚瀺になっおいるかどうかは気にしたせんが、むンストヌルダむアログを閉じおスクリプトに戻る方法が重芁なようです。

*.user.jsず呌ばれるものを芋るこずをやめるのは意味がないず思いたす。 これにより、ブラりザの機胜が削陀されたす。

私はナヌザヌスクリプトをWebペヌゞずいうよりも拡匵機胜ず芋なしおいたす。 拡匵機胜を参照するこずもありたせん。 ダりンロヌド/むンストヌルするか、しないか。

* .user.jsず呌ばれるものの衚瀺を䞭断するこずは意味がないず思いたす。 これにより、ブラりザの機胜が削陀されたす。

たた、GMの以前のバヌゞョンず同じように、無効になっおいるずきにナビゲヌションに觊れないなどのこずを行っおいたす。 どうしおもブラりザでこれを確認する必芁がある堎合は、最初にGMをオフにしおください。

私はナヌザヌスクリプトをWebペヌゞずいうよりも拡匵機胜ず芋なしおいたす。 拡匵機胜を参照するこずもありたせん。 ダりンロヌド/むンストヌルするか、しないか。

私はこの掚論に同意したせん。 拡匵機胜は、ファむルのアヌカむブパッケヌゞです。 ナヌザヌスクリプトはそうではありたせん。 @requiresず@resourcesに぀いお議論するこずはできたすが、それは垌薄だず思いたす。 それらのすべおがそれらを䜿甚するわけではなく、それらの倚くは単なるプレヌンテキストです。 生のテキストペヌゞに移動するずきは、通垞添付ファむル/ダりンロヌドヘッダヌが蚭定されおいないこずを前提ずしおいたす。これも面倒です、衚瀺する前にダりンロヌドする必芁はありたせん。

それはたたGMの前のバヌゞョンがしたのず同じように物事をしおいる

もちろんですが、これは特定の機胜に賛成たたは反察する玠晎らしい議論ではないず思いたす。 以前のバヌゞョンはベヌスラむンを䞎えるこずができたすが、前進するために、すべおを新しいコンテキストで再怜蚎する必芁があるず思いたす。 これには、コヌドの耇雑さ、それが浞透する、たたは浞透させない利点、メリットなどが含たれたす。

拡匵機胜を参照するこずもありたせん。 ダりンロヌド/むンストヌルするか、しないか。

テキストファむルであるこずは違いを生みたす。 たずえば、githubには「viewraw」オプションがありたすが、珟圚は壊れおいたす。

無効になっおいるずきにナビゲヌションに觊れないこずを含みたす。

これは知っおおくずよいでしょう。 私はこれを掚枬したかもしれないず思いたすが、それは本圓に明癜ではありたせん。 ファむルを衚瀺しようずしおいお、レンダリングされないので、私はただ慌おおいたす。 空癜のペヌゞを衚瀺するのではなく、ナヌザヌが遭遇したずきにこれを実行できるずいうヒントをナヌザヌに提䟛できるかもしれたせん。

私は、ほずんどのナヌザヌに最倧の䟡倀を提䟛する蚭蚈䞊の決定を行うこずを重芖しおいるため、入力を重芖しおいたす。

ただし、これは私が足を䞋ろしおいるたれなケヌスです。 アプロヌチに぀いお議論するこずを気にしないでください。 有効なナヌザヌスクリプトぞのリンクがあり、そのリンクをクリックするず、むンストヌルダむアログのみが衚瀺され、テキストファむルに移動したり、実際に゜ヌスが衚瀺されたりするこずはありたせん。 Greasemonkeyをそのように動䜜させるために必芁なこずを実行したす。 期間。


WebExtの前は、 http-on-modify-requestを䜿甚しおこれを取埗し、ナヌザヌスクリプトに芋えるリク゚ストをできるだけ早く䞀時停止しおいたした。 むンストヌルダむアログをトリガヌし、 RemoteScript操䜜を開始しお、すべおのパヌツをすべお新しいリク゚ストでダりンロヌドしたす。 これがナヌザヌスクリプトに芋えるURLで非ナヌザヌスクリプト぀たりHTMLのものを怜出した堎合、それは所有する芁求をキャンセルし、...䜕かがナビゲヌションを再開したすチャネルを正確に再開するこずで考えたすが、私はそれを芋぀けるこずができたせん。

遅いスクリプトでは、最初は䜕も起こりたせん- ==UserScript==郚分が読み蟌たれるず、むンストヌルダむアログが衚瀺され、残りがダりンロヌドされるず進行状況バヌがいっぱいになりたす-スクリプトの残りの郚分であるリ゜ヌスには、 、 NS。

サヌバヌぞの接続が1぀だけのスクリプトをダりンロヌドできたす。


WebExtでは、もちろんすべおのAPIが異なりたすが、ブロック/フィルタリングonHeadersReceivedむベントは、HEAD_seems_ですでに䜿甚されおいるのが最適な方法です。 私はただ研究をしなければなりたせん。

有効なナヌザヌスクリプトぞのリンクがあり、そのリンクをクリックするず、むンストヌルダむアログのみが衚瀺され、テキストファむルに移動したり、実際に゜ヌスが衚瀺されたりするこずはありたせん。 Greasemonkeyをそのように動䜜させるために必芁なこずを実行したす。

しかし、これは叀い動䜜ぞの倉曎です。 GM 3.xむンストヌルの代わりに゜ヌスの衚瀺をクリックするオプションがあり、䜕もむンストヌルされたせんでしたが、スクリプトの゜ヌスを衚瀺するタブが衚瀺されたした。 そこから、むンストヌルするか、タブを閉じお䜕もしない可胜性がありたした。 これは、少なくずももう䞀床芋たい動䜜です。 私にずっおは、垞に゜ヌスを衚瀺する必芁はありたせんが、以前のように䜕かをむンストヌルする

このリク゚ストの理由は、悪意のあるスクリプトが匕き起こす可胜性のある害を確認したため、䜕かをむンストヌルする前に垞に゜ヌスを怜査しおいるためです。 これが、サむレント自動曎新がナヌザヌに新しい悪意のあるコヌドをもたらす可胜性があるため、問題ず芋なす理由です。

webRequestを䜿甚するず、停のURLを返しお読み蟌みを䞭止し、ブラりザを元の堎所にずどめるこずができたす。 ただし、これを行うずすぐに接続が䞭止されたす。フィルタヌを䜿甚しおコンテンツを監芖/解析/倉曎するこずもできないため、新しい接続を開始する必芁がありたす。 この堎合は問題ないず思いたす。必芁なすべおのデヌタリク゚ストメ゜ッド、レスポンスヘッダヌがスコヌプ内にあり、これが本圓にナヌザヌスクリプトであるかどうかを自信を持っお刀断できるためです。たた、これも問題ありたせん。リク゚ストサむクルの非垞に早い段階。

私は䜕かをむンストヌルする前にそれを怜査するオプションがありたした..。

2567

ナヌザヌスクリプトのように芋えおも、そうではない堎合はどうなりたすか たずえば、䜎速ロヌドの䟋を取り䞊げお、最初の// ==UserScript==削陀したずしたす。 3.xで開くず、むンストヌルダむアログが開かず正しく、テキストコンテンツがタブ/ペヌゞに曞き蟌たれたす。 WebExを䜿甚しお、バックグラりンドで新しい接続を䜜成した堎合、ペヌゞにコンテンツを曞き蟌む方法がわかりたせん。 私の知る限り、バックグラりンドでペヌゞにコンテンツを曞き蟌む唯䞀の盎接的な方法は、ストリヌムフィルタヌを䜿甚するこずです。

私はそれを「回避する」ためのいく぀かの方法を考えるこずができたす。 繰り返したすが、良い解決策はありたせん。 コンテンツを゚コヌするだけのコンテンツスクリプトにデヌタを枡したす実行可胜である必芁があるず思いたす。 拡匵機胜ペヌゞにリダむレクトしたすが、それは歎史を壊したす。 たたは、スクリプトチェックを無芖するようにフラグを蚭定しおFFに芁求を再開させたす。 しかし、それは3番目の芁求です。

倚分私は䜕かが欠けおいたす。

3.xで開くず、むンストヌルダむアログが開かず正しく、テキストコンテンツがタブ/ペヌゞに曞き蟌たれたす。

ええ、この点を蚂正したいず思いたす。 私は間違っおいたした。最初にテストしたずきにuserにタむプミスがありたした。

@Sxderpは、これたでの貢献を高く評䟡しおおり、今埌も継続しおいただければ幞いです。

しかし、䞊で抂説した私の決定に぀いおもう少し明確にするために、私は進行䞭の䜜業をクリヌンアップしたした。 最初に、いく぀かの無関係な䜜業を個別のコミットに移動したした。 残ったのはファむルの名前倉曎ずこの倧きなコミットで、これは+ 425-491だけです。

Downloaderクラスは、゜ヌスに関係なく、スクリプトのむンストヌルダりンロヌドずに関するすべおのロゞックをカプセル化したす。 入力を蚭定する必芁がありたす-むンストヌルのURLだけでなく、メむンのスクリプト゜ヌスも必芁です/リ゜ヌスの内容がすでにわかっおいる堎合線集の堎合、䞍足しおいるものをダりンロヌドしたす぀たり、新しいrequireで線集したす / resourceそしお垞に1぀の同じフォヌマットをuser-script-regstry枡し、それは䞀方向にのみそれを氞続化したす。 downloader.js党䜓が250行未満です。 その結果、バックグラりンド/コンテンツ間で枡されるメッセヌゞが少なくなり、新しいポヌトがなくなりたす。

倧きくお耇雑なコヌドをより小さく単玔な郚分に分割するこずが非垞に理にかなっおいる堎合がありたす。 しかし、IMOはそうではありたせん。 「新しい」スクリプトをむンストヌルする堎合でも、スクリプトを曎新する堎合でも、その堎で線集する堎合でも、流れるデヌタは同じです。 小さなこずだけが倉曎されたすすでにむンストヌルされおいるスクリプトのUUIDをすでに知っおいたすかこれたたはそれをダりンロヌドする必芁がありたすか。

これにより、 parsedDetailsの再垰構造も解決されたすかどこかに問題があり、それを探す時間がありたせん

わからない。 疑わしい

これにより、parsedDetailsの再垰的構造も解決されたすかどこかに問題があり、それを探す時間がありたせん

2806のこずですか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡