【问题标题】:Failure installing the debug extension of your Crossrider Extension - Firefox安装 Crossrider 扩展的调试扩展失败 - Firefox
【发布时间】:2013-12-17 15:35:37
【问题描述】:

FF25.0,Fedora 18。

这只是一直在转圈。登台扩展安装,它的一部分是活动的,因为扩展修改了一些 dom(我认为即使是后台脚本也在运行,因为本地存储被初始化)。并非所有扩展都有效,例如侧边栏和其他 应该 在页面加载时运行的 dom 注入。但是crossrider中的调试模式页面无法识别正在运行的扩展。

我怀疑这是由于我的代码中的错误,但似乎没有办法调试它。当我注释掉侧边栏时,它在另一次安装后仍然短暂显示,这让我怀疑代理/缓存正在妨碍但在扩展 URL 上添加额外的 GET 参数并没有帮助。我尝试将debugger 添加到extension.js。控制台是空的。 firebug 不会报告任何错误。该扩展在 chrome 中运行良好,我真的不想回到空白扩展并尝试一点一点添加,直到失败。必须有一种更简单的方法,例如让 firefox 只说,“这是你的问题,就在第 X 行”。有什么想法吗?

[编辑]
打开 一些 调试选项后,我在控制台中遇到错误,但单击有问题的文件/行号只会打开“来源:...”窗口。在谷歌浏览器中,我在调试器中获取文件,可以在错误发生时打断点、刷新并捕获错误。更好的是,“异常中断”选项既有效又实际上有效。

[编辑]
我终于让浏览器调试器工作了。第一个错误是NS_ERROR_XPC_BAD_OP_ON_WN_PROTO

【问题讨论】:

    标签: javascript firefox crossrider


    【解决方案1】:

    好吧,要开始实际接收消息,您需要在此处列出的“about:config”中设置一些标志:Setting_up_extension_development_environment

    我会复制一些...

    • javascript.options.showInConsole = true(这对我来说已经启用了)
    • browser.dom.window.dump.enabled = true
    • javascript.options.strict = true(我也打开了调试版)
    • devtools.chrome.enabled = true(与谷歌浏览器无关)
    • devtools.debugger.remote-enabled = true重要的,允许Firefox->Web Developer->Browser Debugger,确保允许远程调试器否则它会撤消配置更改)
    • devtools.errorconsole.enabled = true
    • extensions.logging.enabled = true

    看起来很多选项也被删除了。这至少让我开始了。

    [EDIT]
    This 答案还提到了“Web Developer->Browser Debugger”(目前为空白 - “无来源” - 我不知道)和“Web Developer->Browser Console" 窗口(似乎与窗口内控制台具有相同的输出)。

    【讨论】:

      【解决方案2】:
      1. 在你的扩展代码周围ALL抛出一个巨大的try/catch。至少这可以让 crossrider “登台”扩展程序安装并被识别。

      2. 打印异常(我假设必须设置所有愚蠢的 about:config 东西才能使其工作)

        appAPI.ready(function($) {
            try {
            ...rest of extension code
            }
            catch (e)
            {
                console.log("#################", e);
            }
        }
        
      3. 在控制台中找到错误,然后单击[object exception]。注意行号(由于注入了其他代码,它不会是正确的)。另请注意,我们已经设法打印了一个异常,并且 firefox failed 打破了它。 FFFFFFFFFFFFFFFFFFFF

      4. 大约在代码中间添加一些换行符。

      5. 重新加载。注意行号。如果已更改,则错误在换行符之后。如果不是,则错误在之前。

      6. 从第 4 步开始重复,直到发现错误。

      7. 花点时间反思一下这个过程的愚蠢。 (这并不完全是针对 crossrider 的评论,更多的是针对当前严重缺乏简单的 Web 开发工具和 API)

      【讨论】:

        猜你喜欢
        • 2011-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-24
        • 2016-01-16
        相关资源
        最近更新 更多