2017-01-29 18 views
0

スクリプトソースがChromeに読み込まれたときに編集したいと考えています。Chrome Debugging Protocolを使用してワーカーのスクリプトソースを設定できますか?

Chromeデバッグプロトコルの説明に従って、デバッガドメインのイベントscriptParsedを正常に受信しています。これを使用してDebugger.setScriptSourceを呼び出してスクリプトを変更します。これは、私が対応するscriptParsedを取得していない労働者以外のすべてがうまくいきます。

ワーカーにとっても同じことが可能ですか?

答えて

3

私はこのアイデアをまだテストするコードを書いていないので、これは理論的に試された答えのビットです。

ワーカーイベントを処理するプロトコルには、Targetというドメインがあります。それを理解するにはしばらく時間がかかりました。私は、Workerドメインを持っていたChrome Debugging Protocol Viewerold forkに気づいたが、それはライブのものではない。私は後でcommitsで、それがTargetドメインに統合されていることがわかりましたが、それはすぐにわかりませんでした。

targetCreatedイベントは、おそらく新しいワーカーインスタンスをリッスンするイベントです。これにより、コールバックにはTargetInfoというオブジェクトがあり、そのコールバックにはtargetId,typeという値があり、「Webワーカー」または「ワーカー」の行に沿った値になっている可能性があります。

targetIdを指定して、attachToTargetメソッドを使用してワーカープロセスにアタッチすることができます。正常に接続されると、メッセージを送信できます。あなたの場合、コールバックがDebugger.setScriptSourceであるscriptParsedイベントをリスンするコマンドを送信できます。

これらのすべてのイベントのタイミングについてはあまりよく分かりません。これはすべてが遅すぎる可能性がありますが、そのアイデアは価値があります。

私は瞬間を取るとこれで遊びます。それが動作すれば、私はそれについて何かを公開するでしょう。そうでない場合は、さらに調査します。

+0

これは正解である必要があります。残念ながら、私はChrome 53(Electronを使用する必要があります)で動作させることはできません。私はTarget.enableとTarget.setDiscoverTargetsを試してみましたが、イベントはありませんでした。おそらく、まだテストできなかった新しいChromeバージョンが動作するかもしれません。しかし、プロトコルとそのビューアはJSON仕様に基づいている必要があるため、ドキュメントの欠如はちょっと変わっています。この機能が存在する場合、プロダクション対応にはなりません。 – Pat

関連する問題