如何在 firefox nightly (webextensions) 中查看或调试 chrome 内容脚本

How to see or debug chrome content script in firefox nightly (webextensions)

正在尝试将一个有效的 chrome 扩展移植到 Firefox Nightly 46.0a1 并有一个简单的问题!我如何让内容脚本执行或完全看到它?

除了内容脚本之外的所有其他内容都运行在后台脚本执行并且弹出框可见时正常。我可以调试这部分代码。

但是内容脚本不会以任何方式接缝到 运行!

据我所知,它应该是正常页面 javascript 环境的一部分,并且在调试器中可见 - 但事实并非如此。无法在任何地方看到任何错误消息等

可能错误地使用了一些不受支持的 API,但仍然很奇怪我没有收到任何警告并且看不到任何东西。

关于如何进行的任何建议?

清单文件如下:

{
  "name": "Bla Bla",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "A description",
  "homepage_url": "https://aaa.org",
  "icons": 
  {
    "16": "icons/lock_red16.png",
    "48": "icons/lock_red48.png",
    "128": "icons/lock_red128.png"
  },
  "default_locale": "en",
  "background": 
  {
    "scripts": 
    [      
      "js/lib/jserror/jserror.js",
      "js/lib/lang/languagedb.js",

      "js/lib/lz77.js",
      "js/lib/pcrypt.js",
      "js/lib/pcryptapi.js",

      "js/lib/forge.bundle.js",
      "js/lib/elliptic.js",

      "js/lib/srp6a/biginteger.js",
      "js/lib/srp6a/isaac.js",
      "js/lib/srp6a/random.js",
      "js/lib/srp6a/sha256.js",
      "js/lib/srp6a/thinbus-srp6client.js",
      "js/lib/srp6a/thinbus-srp-config.js", 
      "js/lib/srp6a/thinbus-srp6a-config-sha256.js",

      "js/pcrypt_shared.js",      
      "js/pcrypt_extension.js",

      "src/bg/background.js"
    ],
    "persistent": true
  },
  "browser_action": 
  {
    "default_icon": 
    {
      "16": "icons/lock_red16.png",
      "48": "icons/lock_red48.png",
      "128": "icons/lock_red128.png"    
    },
    "default_title": "Password Crypt",
    "default_popup": "src/browser_action/popup.html"
  },
  "permissions": 
  [
    "clipboardWrite",
    "storage"
  ],
  "content_scripts": 
  [
    {
      "matches": 
      [
        "http://*/*",
        "https://*/*"
      ],
      "js": 
      [
        "js/pcrypt_extension.js",

        "src/inject/inject.js"
      ]
    }
  ],
  "externally_connectable":
  {
    "matches": 
    [
        "https://*.aaa.dk/*",
        "https://*.aaa.org/*"
    ]
  },
  "web_accessible_resources": 
  [
    "icons/*.png"
  ],
  "applications": 
  {
    "gecko": 
    {
      "id": "benny@aaa.dk",
      "strict_min_version": "40.0.0",
      "strict_max_version": "50.*",
      "update_url": "https://aaa.org/addon"
    }
  }
}

As far as I understand it is supposed to be part of the normal page javascript environment and visible in the debugger - but it is not.

不,他们不是。他们 运行 在与页面环境分开的稍微更特权的上下文中,因此他们可以访问 webextension API。

如果您关闭了 e10,则可以使用 browser toolbox。如果它打开,您需要改用浏览器内容工具箱。您也可以尝试 about:debugging,尽管我不确定它是否已经适用于 webextensions。

MDN docs 拥有调试 WebExt 所需的一切知识,包括内容脚本。