webextensions 如何在内部与浏览器通信?

How do webextensions internally communicate with the browser?

Webextensios 在浏览器命名空间下公开 Javascript API。例如 Javascript 中的 browser.topSites() 将 return 由浏览器编辑的 return 访问次数最多的网站列表。

我感兴趣的是这如何在内部与浏览器对象(大概是 C++ class)对话以调用适当的方法来获取可能存储在某些 SQL Lite 数据库中的顶级站点列表。

那么来自 Javascript 的调用如何从架构上映射到适当的 C++ 调用?

JavaScript APIs 个为此目的而制作。

JavaScript APIs for WebExtensions can be used inside the extension's background scripts and in any other documents bundled with the extension, including browser action or page action popups, sidebars, options pages, or new tab pages. A few of these APIs can also be accessed by an extension's content scripts (see the list in the content script guide).

评论更新:

Firefox 有自己的 SpiderMonkey: The Mozilla JavaScript runtime