2013-12-17 124 views
0

FF25.0,Fedora 18.安装Crossrider扩展的调试扩展失败 - Firefox

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

我怀疑这是由于我的代码中的错误,但似乎没有办法调试它。当我注释了侧边栏时,它仍然在另一次安装后短暂显示,这让我怀疑代理/缓存正在阻碍,但在扩展URL上添加额外的GET参数并没有帮助。我试过把debugger加到extension.js。控制台是空的。没有错误报告的萤火虫。扩展在Chrome中运行正常,我真的不想回到空白扩展名,并尝试添加一点点,直到失败。必须有一个更简单的方法,例如制作firefox,只需说,“这是你的问题,就在X号线上”。有任何想法吗?

[编辑]
打开一些调试选项后,我已经得到了在控制台中的错误,但点击问题的文件/行号刚打开“来源:...”窗口。在谷歌浏览器中,我在调试器中获取文件,可以达到中断点,刷新并捕获错误。更妙的是,如何运作的“突破例外”选项,但实际上的作品。

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

回答

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

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

[编辑]
This答案也提到了“Web开发技术>浏览器调试器”(这是目前空白 - “无源” - 我不知道)和“Web开发技术>浏览器控制台”窗口(只是似乎与窗内控制台具有相同的输出)。

1
  1. 抛出一个巨大的的try/catch各地ALL您的扩展代码。至少这可以让crossrider“staging”扩展程序安装并被识别。

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

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

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

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

  6. 重复步骤4直到找到错误。

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

+0

+1为您的努力。这很痛苦。 –