我可以使用Chrome调试协议设置工作人员的脚本来源吗?

时间:2017-01-29 20:06:57

标签: javascript google-chrome google-chrome-devtools

我想编辑在Chrome中加载的脚本来源。

我已成功收听调试程序域的事件scriptParsed,如Chrome调试协议中所述。我使用它来调用Debugger.setScriptSource来修改脚本。这一切都很好,除了工作人员,我没有得到相应的scriptParsed

是否有可能为工人做同样的事情?

1 个答案:

答案 0 :(得分:3)

这是一个理论上的尝试答案,因为我还没有编写任何代码来测试这个想法。

协议中有Target域应该处理工作人员事件。我花了一段时间才搞清楚。我注意到old fork Chrome Debugging Protocol Viewer commits,其中有一个Worker域,但它不在实时域中。我后来在here中发现它已合并到Target域中,这对我来说并不是很明显。

targetCreated事件可能是侦听新工作器实例的事件。这在它的回调中提供了TargetInfo对象,它具有targetId,type,其值可能与'Web Worker'或'Worker'一致(尽管总猜测)

然后,您可以使用attachToTarget方法附加到工作进程,并提供targetId。成功附加后,您可以向其发送消息。在您的情况下,您可以发送命令来监听scriptParsed事件,回调为Debugger.setScriptSource

我不太确定所有这些事件的时间安排。完全有可能所有这一切都会发生得太晚,但这个想法值得一试。

当我得到片刻时,我会玩这个游戏。如果它有效,我会发布一些有关它的内容。如果没有,将进一步调查。