安装Crossrider扩展的调试扩展失败-Firefox

Failure installing the debug extension of your Crossrider Extension - Firefox

本文关键字:扩展 失败 -Firefox 调试 Crossrider 安装      更新时间:2023-09-26

FF25.0,Fedora 18。

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

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

[编辑]
在打开一些调试选项后,我在控制台中出现了错误,但单击有问题的文件/行号只会打开"Source of:…"窗口。在谷歌chrome中,我在调试器中获取文件,可以点击断点,刷新并在错误发生时捕获错误。更好的是,"中断异常"选项既有效,但实际上也有效。

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

要开始实际获取消息,您需要在此处列出的"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(与谷歌chrome无关)
  • devtools.debugger.remote-enabled = true重要的一个,允许Firefox->Web Developer->Browser Debugger,确保允许远程调试器,否则将取消配置更改)
  • devtools.errorconsole.enabled = true
  • extensions.logging.enabled = true

看起来有相当多的选项也被删除了。这至少让我开始了。

[编辑]
这个答案还提到了"Web Developer->Browser Debugger"(目前为空-"没有来源"-我不知道)和"Web Developer->Browser Console"窗口(似乎与窗口内控制台的输出相同)。

  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未能对其进行破坏。ffffffffff

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

  5. 重新加载。记下行号。如果它已更改,则错误出现在换行符之后。如果不是,则错误在之前。

  6. 从步骤4开始重复,直到找到错误为止。

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