1

尝试将工作的 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"
    }
  }
}
4

2 回答 2

2

据我了解,它应该是正常页面 javascript 环境的一部分,并且在调试器中可见 - 但事实并非如此。

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

如果您关闭了 e10s,您可以使用浏览器工具箱。如果它打开,您需要改用浏览器内容工具箱。你也可以试试about:debugging,虽然我不确定这是否已经适用于 webextensions。

于 2016-01-23T07:04:54.903 回答
0

MDN 文档包含您需要了解的有关调试 WebExt 的所有信息,包括内容脚本。

于 2016-01-23T15:21:03.867 回答