Skip to content

[browser][websockets][tests] Test failures for invalid WebSocketCloseStatus codes #45538

@kjpou1

Description

@kjpou1
System.Runtime.InteropServices.JavaScript.JSException : InvalidAccessError: Failed to execute 'close' on 'WebSocket': The code must be either 1000, or between 3000 and 4999. 1003 is neither.

see #45470 for tests
part of: #44666

Update:

Looks like an implementation detail of WebSockets.close() as provided by the browser.

CloseEvent status codes

The following definitions are sourced from the IANA website [Ref]. Note that the 1xxx codes are only WebSocket-internal and not for the same meaning by the transported data (like when the application-layer protocol is invalid). The only permitted codes to be specified in Firefox are 1000 and 3000 to 4999 [Source, Bug].

Found reference to in reported issue of specific source code checking and verifying this code: https://searchfox.org/mozilla-central/rev/bf81d741ff5dd11bb364ef21306da599032fd479/dom/websocket/WebSocket.cpp#2533

Have been able to reproduce the FireFox report above on Chrome as well.

Any of the following codes will throw the error except for NormalClosure.

Code Value Desc
Empty 1005 No error specified.
EndpointUnavailable 1001 (1001) Indicates an endpoint is being removed. Either the server or client will become unavailable.
InternalServerError 1011 (1011) The connection will be closed by the server because of an error on the server.
InvalidMessageType 1003 (1003) The client or server is terminating the connection because it cannot accept the data type it received.
InvalidPayloadData 1007 (1007) The client or server is terminating the connection because it has received data inconsistent with the message type.
MandatoryExtension 1010 (1010) The client is terminating the connection because it expected the server to negotiate an extension.
MessageTooBig 1009 (1009) The client or server is terminating the connection because it has received a message that is too big for it to process.
NormalClosure 1000 (1000) The connection has closed after the request was fulfilled.
PolicyViolation 1008 (1008) The connection will be closed because an endpoint has received a message that violates its policy.
ProtocolError 1002 (1002) The client or server is terminating the connection because of a protocol error.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions