gdh1995 / vimium-c

A keyboard shortcut browser extension for keyboard-based navigation and tab operations with an advanced omnibar
https://chrome.google.com/webstore/detail/vimium-c/hfjbmagddngcpeloejdejnfgbamkjaeg
Other
3.17k stars 253 forks source link

[Feature request] 允许从自身调用 sendMessage #1142

Open endereyewxy opened 4 weeks ago

endereyewxy commented 4 weeks ago

我了解到,第三方插件能够通过 chrome.runtime.sendMessage(#236) 来执行 Vimium-C 命令。然而,Vimium-C 目前只实现了 onMessageExternal 事件。这意味着只有来自其它插件的消息会被处理,而来自 Vimium-C 本身的消息却会被忽略

如果能够同时实现 onMessage 事件,就可以解决这个问题。这应该不会对 Vimium-C 的安全性产生影响。

P.S. 我的目标是通过 Chrome DevTools Protocol 操作 Vimium-C。鉴于 CDP 拥有远程执行 JavaScript 的能力,目前,可以通过在任意第三方扩展的上下文中执行 chrome.runtime.sendMessage 来实现这一目标,但如果这个 issue 能被实现,将会更加方便。

gdh1995 commented 2 weeks ago

请问一定要用 onMessageExternal 的处理逻辑吗?如果不是,那可以试试这样:

image

====

或者直接定位到 Vimium C 后台进程(MV2 是 html,Manifest V3 以后会是 service worker),调用 define.run_commands.executeExternalCmd(...)