vimium-c icon indicating copy to clipboard operation
vimium-c copied to clipboard

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

Open endereyewxy opened this issue 1 year ago • 1 comments

我了解到,第三方插件能够通过 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 能被实现,将会更加方便。

endereyewxy avatar May 30 '24 12:05 endereyewxy

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

  • 对于当前标签页,切换到 Vimium C content scripts 的 isolate
  • VApi.p({ H: /* kFgReq.key */ 19, k: "<mapped_key>", l: 0, e: null }) 来执行特定键<mapped_key>
  • 这样,只要你提前 map 好,就能执行相应功能了

image

====

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

gdh1995 avatar Jun 12 '24 15:06 gdh1995