新的 Websocket() return Firefox Quantum 中的错误对象

new Websocket() return wrong object in Firefox Quantum

我正在使用 Firefox Quantum (64.0) 和 JS 命令 new WebSocket() returns 与规范不同的对象:

MDN Websocket

HTML Standard

影响我的应用程序的缺失 属性 是 .close() 函数,但还有另一个区别。

您可以在下图中看到返回的对象有一个 .websocket 属性,其中包含所有缺失的属性。 websocket object

我做错了什么吗?使用旧版本的 Firefox(在 Quantum 之前,如 43)或使用 chrome 它工作正常。

如果是 firefox 的问题,我该如何报告?

编辑:

添加一些代码示例:

var exampleSocket = new WebSocket("wss://echo.websocket.org");
exampleSocket.close() // Throw "exampleSocket.close is not a function" in Firefox Quantum, works on chrome
exampleSocket.websocket.close() // Works on Firefox, Throw on chrome.

exampleSocket.websocket 不在文档中。

编辑2: 我在其他具有 firefox 版本 60、61、63 和 64 的机器上进行了测试,问题只发生在我的机器上。 当我从 firefox 中删除所有插件后,它又开始工作了。

问题是我安装的websocketsniff plugin

它甚至声明 WebSocket 对象将更改:

Inspect websocket frames in Firefox. How to use: 1) Open Developer Tools 2) Open "Websocket Sniffer" tab

This extension replace native websocket object for custom object. It is dirty hack, but it is single decision