在 gecko 中枚举已安装的包

Enumerating installed packages in gecko

我试图让 conkeror 与 firefox 54 一起工作,发现在 conkeror application.ini 下 运行 时似乎缺少 devtools。要提供一些上下文 conkeror 可以从 conkeror repo 目录中 运行 使用:

XUL_APP_FILE="$(pwd)/application.ini" firefox

特别是,我试图访问浏览器控制台和 Web 控制台,但 chrome://devtools/content/webconsole/webconsole.xulchrome://devtools/content/debugger/debugger.xul 似乎从 conkeror 中丢失,但它们在 firefox 54 中存在。

是否有可能因为某种原因在 conkeror 中禁用了 devtools,有没有办法 inspect/enumerate 安装的软件包?

编辑:我试过 conkeror

Cc["@mozilla.org/chrome/chrome-registry;1"]
  .getService(Ci.nsIChromeRegistry)
  .convertChromeURL(
    Cc["@mozilla.org/network/io-service;1"]
      .getService(Ci.nsIIOService)
      .newURI("chrome://devtools/content/", "UTF-8")).spec

它在终端上产生:

NS_ERROR_FILE_NOT_FOUND: Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIChromeRegistry.convertChromeURL]

同时

Cc["@mozilla.org/chrome/chrome-registry;1"]
  .getService(Ci.nsIChromeRegistry)
  .convertChromeURL(
    Cc["@mozilla.org/network/io-service;1"]
      .getService(Ci.nsIIOService)
      .newURI("chrome://global/content/", "UTF-8")).spec

产量

jar:file:///Applications/FirefoxNightly.app/Contents/Resources/omni.ja!/chrome/toolkit/content/global/global.xul

老实说,我不知道如何在 vanilla firefox 上 运行 浏览器级别 javascript。

目前无法通过这种方式从随机 XUL 应用程序中使用 DevTools。有关详细信息,请参阅 bug 1244163

目前,需要构建时标志才能使 DevTools 正常工作。因此,SeaMonkey 和 Thunderbird 能够发布 DevTools,因为它们重建了所有 mozilla-central 并且可以在构建时设置标志。

DevTools 团队正在探索将 DevTools 作为 add-on 交付,因此假设发生这种情况,您可以在 XUL 应用程序中安装 add-on。