Firefox addon 如何在firefox中查看或调试chrome内容脚本(webextensions)
尝试将一个正常工作的chrome扩展移植到Firefox Nightly 46.0a1,并提出一个简单的问题!如何让内容脚本执行或查看它 当后台脚本执行且弹出框可见时,除内容脚本seam之外的所有内容都将正常运行。我能够调试这部分代码 但是内容脚本不会以任何方式运行 据我所知,它应该是正常页面javascript环境的一部分,并且在调试器中可见,但事实并非如此。无法在任何地方看到任何错误消息等 可能错误地使用了一些不受支持的API,但奇怪的是,我没有收到任何警告,也看不到任何东西 有关于如何进行的建议吗 清单文件如下:Firefox addon 如何在firefox中查看或调试chrome内容脚本(webextensions),firefox-addon,content-script,firefox-addon-webextensions,Firefox Addon,Content Script,Firefox Addon Webextensions,尝试将一个正常工作的chrome扩展移植到Firefox Nightly 46.0a1,并提出一个简单的问题!如何让内容脚本执行或查看它 当后台脚本执行且弹出框可见时,除内容脚本seam之外的所有内容都将正常运行。我能够调试这部分代码 但是内容脚本不会以任何方式运行 据我所知,它应该是正常页面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"
}
}
}
据我所知,它应该是正常页面javascript环境的一部分,并且在调试器中可见,但事实并非如此
不,他们不是。它们在与页面环境分离的特权稍高的上下文中运行,因此可以访问webextension API
如果您已关闭E10,则可以使用。如果启用,则需要使用浏览器内容工具箱。您也可以尝试
about:debugging
,尽管我不确定这是否适用于webextensions。了解调试WebExt所需的一切,包括内容脚本。您建议的一切都可以,但我在哪里可以找到我的内容文件?只有背景文件和弹出文件!假设您谈论的是inject.js,我想它只会显示在调试器打开后应用到页面的情况。在浏览器内容工具箱中发现我的文件似乎由于以下错误而未运行:。例如,我使用chrome.runtime.sendMessage开始从内容脚本到后台脚本。在Firefox45中(不是每晚),我可以在浏览器工具箱中找到我的内容脚本。我必须在全局设置中启用远程调试和浏览器工具箱选项(请参阅答案中的链接)。当您浏览运行内容脚本的页面时,要获取浏览器工具箱,请点击菜单按钮图标(三个水平条),然后点击“开发者”(扳手),然后点击“浏览器工具箱”。此外,CTRL-Shift-Alt-i将打开工具箱。我发现使用“debugger;”语句非常有用,可以避免挖掘百万个核心脚本,并使工具箱动态中断。