about:debugging

about:debugging 页面提供了一个中心位置,您可以从中将 Firefox 开发者工具附加到多个调试目标。目前,它支持三种主要类型的目标:无需重启的附加组件、标签页和工作线程。

这也是远程调试 Firefox,特别是 Android 版 Firefox 的主要入口点。

打开 about:debugging 页面

有两种方法可以打开 about:debugging

  • 在 Firefox URL 地址栏中键入 about:debugging

  • 在**工具** > **浏览器工具** 菜单中,单击**远程调试**。

about:debugging 打开时,在左侧,您会看到一个侧边栏,其中包含两个选项以及有关您的远程调试设置的信息

设置

使用“设置”选项卡配置与远程设备的连接。

此 Firefox

提供有关您为调试而加载的临时扩展、安装在 Firefox 中的扩展、您当前打开的标签页以及 Firefox 上运行的服务工作线程的信息。

../../_images/about_debugging_setup.png

如果您的 about:debugging 页面与此处显示的不同,请转到 about:config,查找并设置选项 devtools.aboutdebugging.new-enabled 为**true**。

设置选项卡

连接到远程设备

Firefox 支持使用 USB 连接 Android 设备进行调试,使用 about:debugging 页面。

连接前

  1. 确保在 about:debugging 首页中单击一次“启用 USB 设备”。

../../_images/about_debugging_home.png
  1. 在您的 Android 设备上启用开发者选项。在设备设置应用程序中的“关于手机”中,按 7 次“内部版本号”。

  2. 在 Android 开发者选项中启用“USB 调试”。1. 和 2. 的详细指南

../../_images/android_usb_debugging.png
  1. 在 Android 设备上的 Firefox 中的“高级设置”中启用**通过 USB 进行远程调试**。

../../_images/android_firefox_debugging_option.png
  1. 使用 USB 数据线将 Android 设备连接到您的计算机。如果 USB 数据线不可用,通过 Wi-Fi 连接到 Android

如果您的设备未出现在 about:debugging 页面的左侧,请尝试单击**刷新设备**按钮。

**如果仍然未出现**,可能是因为您的 Android 设备和计算机之间的链接尚未授权。首先确保您已安装了 Android Debug Bridge(来自计算机上的 Android Tools),以便它能够连接到您的设备。接下来,禁用已激活的每个调试设置并重复之前描述的步骤。您的设备应显示一个弹出窗口,以授权您的计算机连接到它 - 接受此操作,然后再次单击**刷新设备**按钮。该设备应该会出现。

注意

您不需要安装完整的 Android Studio SDK。只需要 adb。

要开始调试会话,首先打开要调试的页面,然后单击设备名称旁边的**连接**以打开与它的连接。如果连接成功,您现在可以单击设备名称以切换到包含有关该设备信息的标签页。

Screenshot of the debugging page for an Android device

此页面上的信息与**此 Firefox**选项卡上的信息相同,但它不是显示计算机的信息,而是显示远程设备的信息,并添加了一个**标签页**部分,其中包含远程设备上每个打开的标签页的条目。

注意:如果远程设备上 Firefox 的版本比计算机上运行的版本早一个主要版本以上,您可能会看到如下消息

The connected browser has an old version (68.2.0). The minimum supported version (69.0a1). This is an unsupported setup and may cause DevTools to fail. Please update the connected browser.

在 Firefox 76 及更高版本中,消息可能如下所示

This version of Firefox cannot debug Firefox for Android (68). We recommend installing Firefox for Android Nightly on your phone for testing. More details

有关更多信息,请参阅 Android 版 Firefox 68 的连接。

在上图中,打开了三个标签页:“网络或缓存食谱”、“Nightly 主页”和“关于 Nightly”。要调试其中一个标签页的内容,请单击其标题旁边的**检查**按钮。当您这样做时,开发者工具将在一个新标签页中打开。

Screenshot showing the remote debugging window, with the editable URL bar

在通常的工具列表上方,您可以看到有关您连接到的设备的信息,包括您(在此示例中)通过 USB 连接到 Pixel 2 上的 Firefox Preview 的事实,以及您正在调试的页面的标题和页面的地址。

从 Firefox 78 开始,URL 地址栏是可编辑的,因此您可以通过在桌面版 Firefox 中键入来更改浏览器在远程设备上使用的 URL。您还可以通过单击 URL 地址栏旁边的**重新加载**按钮重新加载页面,以及(从 79 开始)使用**后退**和**前进**按钮在浏览历史记录中向后或向前导航。

通过 Wi-Fi 连接到 Android

Firefox 可以通过 adb 和 Android 11+ 的“无线调试”功能调试 Android 版 Firefox,无需任何 USB 数据线。

先决条件

  • 设备必须运行 Android 11 或更高版本。

  • adb 程序可用。您不需要 Android Studio 也不需要完整的 Android SDK。

  • 具有 about:debugging 的 Android 设备和计算机位于同一网络中。

无线连接 Android 设备的步骤

  1. 确定 Android 设备在本地网络上的 IP 地址。例如,通过找到互联网/Wi-Fi 设置并查看当前(Wi-Fi)网络的详细信息。

  2. 在您的 Android 设备上启用开发者选项

  3. 通过点击开发者选项中“无线调试”栏的切换按钮启用无线调试,然后点击“无线调试”栏(切换按钮之前)以打开“无线调试”屏幕。

    1. 上一步的另一种方法是在开发者选项中打开“快速设置开发者磁贴”,然后启用“无线调试”磁贴。之后,您可以长按“快速设置”面板中的“无线调试”磁贴以启动“无线调试”屏幕。

  4. 在“无线调试”屏幕中点击“使用配对码配对设备”。这将显示一个六位数的代码以及一个 IP 地址和端口。该端口对于配对设置是唯一的。

  5. 在终端中,运行 adb pair [ip address from step 1]:[port from step 4] 并输入步骤 4 中的六位数代码。

  6. 要最终无线连接,请在“无线调试”屏幕的“IP 地址 & 端口”部分查找(随机)端口。该端口与步骤 4 中的端口不同。运行 adb connect [ip address from step 1]:[port from step 6] 以连接。

现在,计算机上的 adb 服务器已连接到 Android 设备上的 adb 守护进程。所有启用了“通过 USB 进行远程调试”设置的 Firefox 应用程序现在都将显示在 about:debugging 中。

如果您没有看到任何 Android 版 Firefox 调试目标

  • 通过运行 adb devices 确认 adb 已连接。

  • 确认 Firefox 应用程序正在运行,并且已选中“通过 USB 进行远程调试”设置。

通过网络连接

注意

以下步骤不适用于 Android。请改用 通过 Wi-Fi 连接到 Android 中的说明。

您可以使用 about:debugging 页面的**网络位置**设置连接到网络上的 Firefox 调试服务器,或连接到调试机器上的 Firefox 调试服务器。

../../_images/network_location.png

输入调试服务器正在运行的位置和端口。当您这样做时,它将与设备一起添加到网络位置列表中,如下所示

../../_images/connect_network_location.png

此 Firefox

**此 Firefox**选项卡将扩展、标签页和工作线程的功能组合到一个选项卡中,其中包含以下部分

临时扩展

显示使用**加载临时附加组件**按钮加载的扩展列表。

扩展

此部分列出有关您在系统上安装的扩展的信息。

服务工作线程、共享工作线程和其他工作线程

此页面上有三个部分涉及服务工作线程、共享工作线程和其他工作线程。

../../_images/about_debugging_this_firefox.png

内部扩展是否出现在此页面上的列表中取决于 devtools.aboutdebugging.showHiddenAddons 首选项的设置。如果您需要查看这些扩展,请导航到 about:config 并确保该首选项设置为 true

扩展

加载临时扩展

使用**加载临时附加组件**按钮,您可以从磁盘上的目录临时加载 WebExtension。单击该按钮,导航到包含附加组件的目录并选择其清单文件。然后,将在**临时扩展**标题下显示临时扩展。

在加载扩展之前,您无需打包或签名扩展,并且它将一直安装到您重新启动 Firefox 为止。

与从 XPI 安装附加组件相比,此方法的主要优势在于

  • 更改附加组件的代码时,您无需重新构建 XPI 和重新安装;

  • 您可以加载未签名的附加组件,而无需禁用签名。

加载临时扩展后,您可以查看有关它的信息并对其执行操作。

Screenshot of the debugging information panel for a temporary extension

您可以使用以下按钮

检查

在调试器中加载扩展。

重新加载

重新加载临时扩展。当您对扩展进行更改时,此功能非常方便。

移除

卸载临时扩展。

显示有关扩展的其他信息

位置

扩展源代码在您本地系统上的位置。

扩展 ID

分配给扩展的临时 ID。

内部 UUID

分配给扩展的内部 UUID。

清单 URL

如果单击链接,则此扩展的清单将在新标签页中加载。

更新临时扩展

如果以这种方式安装扩展,那么更新扩展时会发生什么?

  • 如果更改按需加载的文件,例如内容脚本弹出窗口,则您所做的更改会自动生效,您将在下次加载内容脚本或显示弹出窗口时看到它们。

  • 对于其他更改,请单击“重新加载”按钮。它会按照字面意思执行操作。

已安装的扩展

永久安装的扩展在下一节“扩展”中列出。对于每个扩展,您会看到类似以下内容

Screenshot of the debugging information panel for an installed extension

检查”按钮以及“扩展 ID”和“内部 UUID”字段与临时扩展相同。

与临时加载的扩展一样,“清单 URL”旁边的链接在新标签页中打开加载的清单。

注意

建议您使用浏览器工具箱而不是附加组件调试器来调试 WebExtensions。有关所有详细信息,请参阅调试 WebExtensions

about:debugging中的“附加组件”部分列出了当前安装的所有 WebExtensions。每个条目旁边都有一个标有“检查”的按钮。

注意

此列表可能包含预装在 Firefox 中的附加组件。

如果单击“检查”,则附加组件调试器将在新标签页中启动。



工作线程

“工作线程”部分显示您在 Firefox 上注册的所有工作线程,并按以下类别分类

您可以将开发者工具连接到每个工作线程,并向服务工作线程发送推送通知。

../../_images/about_debugging_workers.png

服务工作线程状态

服务工作线程列表显示服务工作线程在其生命周期中的状态。可能存在三种状态

  • 正在注册:这涵盖了从服务工作线程的初始注册到其控制页面之间的所有状态。也就是说,它包含安装激活等待状态。

  • 正在运行:服务工作线程当前正在运行。它已安装并激活,并且当前正在处理事件。

  • 已停止:服务工作线程已安装并激活,但在空闲后已终止。

Screenshot of the debugging panel for a service worker that is in the Running state

本节使用一个简单的 ServiceWorker 演示,托管在https://serviceworke.rs/push-simple/

注意

从 Firefox 79 开始,您可以通过转到 Firefox DevTools的应用程序面板,访问特定域上注册的服务工作线程的类似信息。

注销服务工作线程

单击“注销”按钮以注销服务工作线程。

向服务工作线程发送推送事件

要调试推送通知,您可以在推送事件侦听器中设置断点。但是,您也可以在本地调试推送通知,而无需服务器。单击“推送”按钮向服务工作线程发送推送事件。

服务工作线程不兼容

如果服务工作线程与当前浏览器配置不兼容,因此无法使用或调试,则会在“此 Firefox”选项卡顶部显示警告消息。

../../_images/worker_warning.png

如果以下情况,服务工作线程可能不可用

  • dom.serviceWorkers.enable首选项在about:config中设置为 false。

  • browser.privatebrowsing.autostart首选项在about:config或通过 Firefox 首选项 UI 设置为 true。

如果用户选择“从不记住历史记录”选项或在首选项 UI 中启用“始终使用隐私浏览模式”,则browser.privatebrowsing.autostart首选项将设置为 true,请参阅about:preferences#privacy

始终使用隐私浏览模式

../../_images/always_use_private_browsing_mode.png

从不记住历史记录

../../_images/never_remember_history.png

连接到 Firefox for Android 68

基于版本 68 的 Firefox for Android 版本无法从桌面 Firefox 版本 69 或更高版本进行调试,因为发行版本不同。在 Firefox for Android 更新到与桌面 Firefox 同步的较新主要版本之前,您应该使用以下 Firefox for Android 版本之一

如果您希望使用 Firefox for Android 的主要版本(即基于版本 68 的版本)进行测试,则可以使用桌面Firefox 扩展支持版本 (ESR),它也基于版本 68。

请注意,Firefox ESR 中默认情况下未启用about:debugging。要启用它,请打开配置编辑器about:config)并将devtools.aboutdebugging.new-enabled设置为true

如果您在安装 Firefox ESR 之前使用了更高版本的 Firefox,则系统会提示您创建新的用户配置文件,以保护您的用户数据。有关更多信息,请参阅如果我降级到 Firefox 的先前版本,我的配置文件会发生什么情况?