宣布Firefox支持Web Serial

Lobsters Hottest 工具

摘要

Firefox 151增加了对Web Serial API的支持,使得Web应用程序能够直接与串行设备(如微控制器、3D打印机和开发板)通信,无需本地软件,从而扩展了其在硬件开发和教育方面的实用性。

<p><a href="https://lobste.rs/s/tbxmm1/announcing_web_serial_support_firefox">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/05/21 22:19

# 宣布 Firefox 支持 Web 串口 – Mozilla Hacks - Web 开发者博客 来源:https://hacks.mozilla.org/2026/05/web-serial-support-in-firefox/ ## Firefox 151 桌面版现已支持 Web 串口 Firefox 现在可以直接从网页连接微控制器、开发板、3D 打印机、电表及其他串口连接硬件。从 Firefox 151 桌面版开始,Web Serial API 的支持让 Web 应用无需原生软件即可与兼容设备通信。 Web 串口兼容设备在爱好者、硬件极客、教育工作者、创客以及开发者中很受欢迎,应用场景涵盖家庭自动化、硬件原型设计和 3D 打印。Web 串口支持让 Firefox 在这些项目中变得更加实用。 Adafruit(https://www.adafruit.com/)是开源硬件和 STEM(https://en.wikipedia.org/wiki/Science,_technology,_engineering,_and_mathematics)教育领域的领导者,它已经展示了 Web 串口的价值。通过通过 Web 串口交付固件,他们可以快速简便地在设备上安装 CircuitPython(https://circuitpython.org/)。之后就可以轻松在设备上运行 Python 程序。将文件命名为 `code.py`,对于大多数设备,只需将文件拖放到 USB 设备上即可安装代码。你的 Python 程序可以通过 Web 串口使用简单的文本 I/O 与网页交互。 要在 Firefox 中安装 CircuitPython 固件,我们建议使用 Adafruit Web Serial Tool(https://adafruit.github.io/Adafruit_WebSerial_ESPTool/),而不是 CircuitPython 网站上的 `OPEN INSTALLER` 方法。 这里有一个示例(https://github.com/hafta/circuitpython-webserial-example/tree/main),它使用基于 Adafruit ESP32-S2 的开发板,通过 Web 串口可以直接在设备上显示从网页代码发送的消息。 我们与 Adafruit 合作,针对该社区常用的真实硬件工作流测试了 Firefox 的实现。结果是:Firefox 成为了一款更实用的浏览器,可以直接使用 Web 技术编程并与硬件交互。 作为如何将 Web 串口与电子设备结合的一个例子,Mozilla 工程师 Alex Franchuk 创造了一款兼具趣味性和功能性的设备,融合了电子设备和网页编辑。请看 Page Playground(https://adafruit-playground.com/u/afranchuk/pages/page-playground-using-webserial-in-firefox)。 串口兼容设备列表包括基于 Espressif ESP 的开发板(例如流行的 ESP32 芯片)、Raspberry Pi Pico、3D 打印机、LEGO 设备等等。有很多工具可以在这些廉价微控制器板上运行你自己的代码,而有了 Web 串口,将它们连接到计算机并通过基于 Web 的用户界面进行交互变得比以往任何时候都更容易。 ## 什么是 Web 串口? Web 串口是一种 Web API,允许网站使用 JavaScript 读写串口设备。详情请参阅 MDN 文档(https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API)。尽管现代计算机通常不包含串口,但连接到 USB 端口或通过蓝牙配对的串口设备可以声明自己为串口兼容设备,从而在操作系统中显示为串口。 Web Serial API 允许开发者利用 Web 平台与这些设备通信。例如,网站可以控制设备或提供固件,而无需原生应用程序或安装程序。 Mozilla 自己的 Florian Quèze 曾尝试过许多测量功耗的项目(https://www.youtube.com/watch?v=Ly7ve5ftRnU),他演示了(https://serial.combien-consomme.fr/)如何使用 Web 串口从现成的 USB 电表读取功率数据并在 Firefox 中显示。Florian 的代码还可以将数据导出到 Firefox Profiler 中,从而轻松可视化和分享功耗数据。这里是页面(https://serial.combien-consomme.fr/)和 GitHub 仓库(https://github.com/fqueze/webserial-power-profiling)。下面的截图显示了页面运行的情况,以及记录了具有三种亮度模式的灯的功耗后,数据在 Firefox Profiler(https://share.firefox.dev/4uGxHsg)中的显示。 一张 Florian 网站的截图,显示了一个具有三种亮度模式的灯的功率记录。 图片中功率测试所使用的电表是 AVHzY C3 USB(https://store.avhzy.com/index.php?route=product/product&product_id=53)。Joy-IT TC66C(https://joy-it.net/en/products/JT-TC66C)和 YZXStudio USB ZY1280 也测试成功。 一张 Firefox Profiler 的截图,显示了从 Florian 网站导入的功率记录。 Home Assistant(https://www.home-assistant.io/)是另一个例子。它是一个流行的(且不断增长的)家庭自动化开源项目。ESPHome(https://esphome.io/)项目为廉价的 ESP32 及类似设备提供了与 Home Assistant 兼容的固件,只需点击几下即可通过 Web 串口安装和配置。 ## 安全与隐私 允许 Web 平台读写硬件设备显然存在安全与隐私方面的担忧。最重要的是,在使用 Web 串口时,只有在用户明确允许的情况下,网站才能看到或访问串口。 端口是按站点和端口单独授权的。Web Serial API 要求网站调用 `navigator.serial.requestPort()`,这可以让用户选择允许访问哪个端口,或者完全拒绝所有访问。这意味着网站不会收到已连接设备的列表,除了用户选择的端口外,没有有用的指纹信息。 一张 Firefox 中 Web 串口端口选择提示的截图。 为了帮助用户理解网站何时以及为何请求访问串口,Firefox 使用了我们在 Web MIDI API(https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API)实现中引入的附加组件门控。与其他 Web 权限提示相比,这会给用户提供更详细的解释,说明他们允许了什么。附加组件门控提示会在端口选择提示之前出现(对于第一次请求端口访问的网站)。 对于使用 Firefox 企业策略的组织,Web 串口默认是禁用的。管理员可以使用 `DefaultSerialGuardSetting`(https://firefox-admin-docs.mozilla.org/reference/policies/defaultserialguardsetting/)策略设置,在整个组织中明确允许或禁止 Web 串口功能。 ## 标准化 虽然 Web 串口仍然位于 Web 孵化器社区组(WICG)中,但考虑到其范围和长期的孵化,我们对其标准化路径持乐观态度。我们正在 WHATWG 中推动 Web Serial API 的标准化,这是一个新的工作流提案(https://github.com/whatwg/sg/pull/264),并期待与生态系统合作伙伴和标准机构合作,共同塑造 Web 中外设的访问方式。 ## 反馈 如果你已经有了一个可以使用 Web 串口工作流的设备,那么请尝试一下 Firefox。我们很想知道你在构建什么,以及哪些工作流对你最重要。Mozilla Connect(https://connect.mozilla.org/)是一个分享项目、提问和提供反馈的好地方。 对于技术问题,请访问 support.mozilla.org(http://support.mozilla.org/)或在此处提交错误(https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=DOM%3A+Device+Interfaces)。 更多文章作者:Haik Aftandilian...(https://hacks.mozilla.org/author/haftandilianmozilla-com/) 更多文章作者:Greg Stoll...(https://hacks.mozilla.org/author/gstollmozilla-com/)

相似文章

适用于 Firefox 的 WebUSB 扩展

Lobsters Hottest

一款 Firefox 扩展,通过原生消息传递(native messaging)为浏览器添加 WebUSB 功能,让 Web 应用可以在 Firefox 中访问 USB 设备,提供与 Chrome 相似的支持。

Show HN: 运行于 WebAssembly 的 Firefox

Hacker News Top

Firefox 被编译为在 WebAssembly 中运行,采用基于 WebGL 的渲染和实验性的 JS 到 WASM JIT,网页内容通过 Puter 托管的 Wisp 服务器进行代理。

Firefox 在 WebAssembly 中

Simon Willison's Blog

Puter 将 Firefox 编译为 WebAssembly,使其能够通过使用 Wisp 协议的 WebSocket 代理在另一个浏览器中运行。该演示估计消耗了价值 25,000 美元的 AI 代币,具有端到端加密功能,并提供了公开仓库。