Gamepad API 更新的 Firefox 发布日期
作为 Mozilla 持续改进 Web 平台隐私和安全性的承诺的一部分,在接下来的几个月里,我们将对 Gamepad_API 的工作方式进行一些更改。
以下是需要牢记的重要日期
- 2020 年 8 月 25 日(Firefox 81 Beta/开发者版)
.<a href="https://mdn.org.cn/en-US/docs/Web/API/Navigator/getGamepads">getGamepads()</a>
方法只会在“安全环境”(例如 https://)中调用时返回游戏手柄。- 2020 年 9 月 22 日(Firefox 82 Beta/开发者版)
- 切换到为第三方环境/iframe 要求权限策略。
我们正在与来自 Chrome 团队和其他浏览器供应商的人员合作进行这些更改。我们将更新这篇文章,提供指向他们公告的链接,这些链接将在他们发布后提供。
将游戏手柄限制为安全环境
从 Firefox 81 开始,Gamepad API 将被限制为所谓的“安全环境”(错误 1591329)。基本上,这意味着 Gamepad API 仅在作为“https://”提供的网站上工作。但别担心,当您调试时,它也可以在 http://localhost 上工作!
在接下来的几个月里,每当从不安全的环境中调用 .getGamepads()
方法时,我们将显示开发人员控制台警告。
从 Firefox 81 开始,我们计划默认情况下为 .getGamepads()
要求安全环境。为了避免代码出现重大问题,调用 .getGamepads()
将返回一个空数组。我们将无限期地显示此控制台警告。

开发人员控制台现在显示从不安全的环境中调用 .getGamepads()
方法时的警告
权限策略集成
从 Firefox 82 开始,需要访问 Gamepad API 的第三方环境(即不是同一来源的 <iframe>
)必须由托管网站通过 权限策略 显式授予访问权限。
为了使第三方环境能够使用 Gamepad API,您需要在您的 HTML 中添加一个“允许”属性,如下所示
<iframe allow="gamepad" src="https://example.com/">
</iframe>
一旦发布,从被禁止的第三方环境中调用 .getGamepads()
将会引发 JavaScript 安全错误。
您可以在 错误 1640086 中跟踪我们的实现进度。
WebVR/WebXR
由于 WebVR 和 WebXR 已经要求安全环境才能工作,因此这些更改
不应影响任何依赖于 .getGamepads()
的网站。事实上,一切应该像今天一样继续工作。
未来改进隐私和安全性
当我们发布 API 时,我们经常发现网站以意想不到的方式使用它们——大多数是创造性的,有时是恶意的。随着新隐私和安全功能添加到 Web 平台,我们对这些解决方案进行改进,以更好地保护用户免受恶意网站和第三方跟踪器的侵害。
向 Gamepad API 添加“安全环境”和“权限策略”是这项持续努力的一部分,旨在提高 Web 的整体隐私和安全性。虽然我们知道这些更改可能会给开发人员带来短期不便,但我们认为不断发展 Web 以使其尽可能安全和保护隐私对所有用户都至关重要。
6 条评论