Firebug 和 DevTools 集成

您可能已经听说过我们正在努力将 Firefox 原生开发者工具(DevTools)和 Firebug 统一起来。我们一直在努力将所有最受欢迎的 Firebug 功能移植到原生 DevTools 中,使它们兼容多进程,并可用于远程调试(即 e10s 兼容)。我们也一直在努力使从 Firebug 到 DevTools 的过渡路径尽可能简单顺畅。没错,正如我们之前提到的,我们专注于开发一个为开发者打造的优秀工具!

那么,让我们来看看现在的进展。

下一代 Firebug 的主要目标是帮助用户在使用原生 DevTools 时感到宾至如归。这就是 Firebug 3(也称为 Firebug.next)的用武之地。Firebug 3 不是另一个开发者工具,而是在 DevTools 之上构建的一个薄层,提供了一个新的主题,使 DevTools 看起来像 Firebug。还有一些额外的功能,我们将逐步移植到 DevTools 中。

如果您有任何功能缺失(例如,您在以前版本的 Firebug 中使用过的一些功能),您应该期待它们在未来成为 DevTools 的一部分。

Firebug 3

请看下面的截图,它展示了如果您 安装 Firebug 3(第一个测试版)后 DevTools 的样子。看起来眼熟吗?

Firebug 3 (aka Firebug.next)

Firebug 3(也称为 Firebug.next)尚未通过 AMO 发布,因此您可能需要将 xpinstall.signatures.required 选项(通过 about:config)设置为 false。

它是将 Firebug 主题移植到 DevTools 中,以带来一些 UI 和布局优势。Firefox 工具栏中还有著名的 Firebug 启动按钮,它代表了开发者工具箱的入口。

您会看到,Firebug 主题选项当前处于活动状态。

Firebug Start Button

进入您的实用工具的过程与以前完全相同:您可以按下启动按钮或 F12 键。

您可能是 DOM 面板的粉丝,它用于检查您所处页面的文档对象模型。它目前还没有得到原生支持,因此,Firebug 向您提供它。

DOM panel

控制台面板中的 XHR 预览(多次请求)也得到了支持。

XHR Previews

一些最受欢迎的扩展已经在 DevTools 之上重新实现。这不仅使受欢迎的功能保持活力,这些实现还提供了如何为 DevTools 直接创建新扩展的优秀示例。运行这些扩展不需要 Firebug。

如果您是扩展开发者,您可能会对一些 示例 和帮助理解如何扩展 DevTools 的其他资源链接感兴趣。

让我们来看看有哪些扩展可用。

FireQuery 扩展

FireQuery 是一款基于 Firefox 中的 DevTools 构建的 jQuery 开发 Firefox 插件。 Firebug 3 不是必需的,但下面的一些截图展示了 DevTools 启用了 Firebug 主题(也支持其他主题,如 Light 和 Dark)。

jQuery 数据 关联的元素会在控制台面板中显示一个小的信封图标。您可以通过点击图标来检查它。控制台面板工具栏中还有一个 jQuerify 按钮,您可以使用它将 jQuery 加载到当前页面。

FireQuery extension

检查器面板也显示带有 jQuery 数据的元素的信封图标。点击图标将打开一个包含详细信息的弹出窗口。

FireQuery Inspector panel

PixelPerfect 扩展

Pixel Perfect 是一款 Firefox 扩展,允许网络开发人员和设计师轻松地将一个网络构图与半透明图层(图像)叠加。然后,这些图层可以用来进行页面和图层之间的逐像素比较。

有一个 Pixel Perfect 启动按钮,可以快速访问此功能。

PixelPerfect Start Button

这是最终的 Pixel Perfect UI,您可以通过点击上面的按钮来打开它。

PixelPerfect UI

HAR 导出

从网络面板导出 HAR(HTTP 归档格式)现在是内置功能,您无需为此安装扩展。您只需选择网络面板(如果需要,重新加载页面),并使用两个上下文菜单操作

  • 将全部内容复制为 HAR:将收集的数据复制到剪贴板。
  • 将全部内容保存为 HAR:将收集的数据保存到文件。

从网络面板导出数据通常是自动化的(例如,在使用 Selenium 测试 Web 应用程序时)。如果您希望在每次加载页面时自动创建一个 HAR 文件,您需要将以下选项(使用 about:config)设置为 true

devtools.netmonitor.har.enableAutoExportToFile

某些自动化系统需要比每次页面加载后只创建一个 HAR 文件更多的灵活性。有时您需要将数据发送到远程服务器,在两个特定用户操作之间收集和导出 HAR 等。这就是我们引入简单的 HARExportTrigger 扩展的原因,它通过将 HAR API 导出到页面内容中来改进自动化。这使您可以使用小脚本在任何时候触发 HAR。

这是一个从网络面板获取 HAR 数据的示例脚本

var options = {
  token: "test",
  getData: true,
};

HAR.triggerExport(options).then(result => {
  console.log(result.data);
});

在服务器上使用 console.* API

Firebug 社区已经实现了许多扩展,允许开发者在(HTTP)服务器端使用 console.* API,这样您就可以在浏览器中查看后端日志。此功能现在在 Firefox 中得到原生支持,您无需安装额外的扩展。

您需要做的就是启用来自服务器的日志,这些日志位于控制台面板中。

Server side logging

此功能支持现有的协议(在 Chrome Logger 中使用),该协议通过 HTTP 标头将日志发送到客户端。随后,日志会显示在控制台面板中,就好像它们是由页面上的 JavaScript 生成的。许多服务器端库在各种语言(NodeJS、Ruby、Python、PHP、.NET、Java 等)中提供相应的服务器端 API。

这是一个 示例,它展示了服务器端日志记录。

var chromelogger = require('chromelogger');
var http = require('http');
var server = http.createServer();

server.on('request', chromelogger.middleware);
server.on('request', function(req, res) {
  res.chrome.log('Hello from Node.js %s', process.version);
  res.end();
});

server.listen(7357);

下面是服务器端日志在控制台面板中的样子

Server log

最后的话

正如我在文章开头提到的,我们一直在努力将 Firefox 原生开发者工具(DevTools)和 Firebug 统一起来,因为我们相信这是为网络开发者提供优秀工具的有效策略。未来还有更多内容,但这篇文章应该让您了解我们的计划和未来方向。敬请期待!

请在 Firebug 群组 中发布反馈,谢谢。

Jan ‘Honza’ Odvarko

关于 Jan Honza Odvarko

Honza 正在开发 Firefox 开发者工具

更多 Jan Honza Odvarko 的文章……


7 条评论

  1. Thomas

    祝贺发布以及所有辛勤工作!
    看来我们可以在控制台中检查各种请求,而不仅仅是 XHR。我太喜欢了!

    2015 年 10 月 28 日 13:28

    1. Jan Honza Odvarko

      是的,目前控制台中对所有 HTTP 请求启用了检查功能。我们现在正在收集反馈,如果反馈积极,我们可能会保持这种方式。

      2015 年 10 月 28 日 23:52

  2. Jeffrey Jose

    祝贺!你们 Mozilla 的人真是鼓舞人心。谈论对事业的奉献。

    2015 年 10 月 28 日 21:43

  3. Sebastian Zartner

    祝贺 Firebug 团队为新一代开发工具铺平道路!

    2015 年 10 月 29 日 04:51

  4. xpete

    很棒的工作,但是…
    我是一名网页开发者,我经常使用 Firebug 和 DevTools,但我认为应该从 Firefox 中移除它们,并将其作为扩展发布,或者与 Firebug 合并。
    大多数 Firefox 用户不需要它,我已经看到一个用户误打开 DevTools 时惊慌失措,他不知道这是什么以及如何关闭它。
    我记得 Phoenix/Firebird/Firefox 的诞生是为了成为一个没有非必要额外功能的 Mozilla 版本。

    2015 年 10 月 29 日 下午 6:12

  5. jeff

    总的来说,Firebug 是一款很棒的工具集,我对 Honza 和任何为其做出贡献的人表示敬意。即使我只使用 javascript 调试器和检查器,它也仍然物超所值,价值 10 倍以上。

    但是…我的两分钱。我大部分时间都在调试器、检查器和控制台中度过。这里对既有功能的更改是最“痛苦”的。以下的一些内容可能在你们进行 beta 测试的过程中逐步完善,但其他一些问题似乎是 Firefox 开发工具造成的。这些是我在测试 Firebug 3 时遇到的,烦人到让我继续使用 FB 2.X,直到它们被修复。

    1) 调试器搜索。我的天啊。你做了什么?#linenumber 已经刻在我的指纹上了。现在要查找当前文件中的内容需要一个前缀(原谅我…“运算符”?)。这个运算符是什么?哦,等等,只有搜索框为空时才能看到前缀。

    2) 调试脚本时在文件中的导航。Ctrl-Home 和 Ctrl-End 在哪里?

    3) 监视消失了。哦,等等,不是消失,只是默认隐藏。而且显然不能默认取消隐藏。控制台选项卡上的多行命令窗口也是如此。

    4) 断点。伙计,它们真的会搞乱可用文件的列表,不是吗?还有,移除所有断点?不,不。除非你正好右键单击到那个神奇的位置。

    5) 显然也消失了——记住你上次打开此页面上的调试窗口时打开的源文件。

    6) 检查器盒子模型选项卡——无法编辑检查项目的 height/width。其他所有都可以,但 h&w 不行。

    7) 回到高中时你永远不会听到我说这些,但“我想念历史”。特别是控制台命令编辑器历史菜单形式的历史。

    但也许这只是我。

    2015 年 11 月 2 日 下午 12:12

    1. Jan Honza Odvarko

      这是一个很棒的必要功能列表,Jeff!所有这些功能都应该在内置的开发者工具(而不是 Firebug)中修复/实现,而让这一切发生的最佳方式是在 Bugzilla 中提交新的问题。

      这里有一个链接
      https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Developer%20Tools

      Bugzilla 是这种反馈的最佳场所,否则很容易在野外被遗忘。

      Honza

      2015 年 11 月 3 日 上午 8:56

本文评论已关闭。