<title>WebSocket is not subject to HTTP(S) connection limit</title>
<script>
var protocol = location.protocol.replace('http', 'ws');
var url = protocol + '//' + location.host + '/echo-with-no-extension';

const SOCKETS_TO_OPEN = 255;

// PARALLELISM limits the number of connections we try to open simultaneously.
// This avoids triggering the throttling added in http://crrev.com/972963002,
// which otherwise slows the test down considerably.
const PARALLELISM = 2;

var created = 0;
var connected = 0;

function createNewWebSocket()
{
  var ws = new WebSocket(url);
  ++created;

  ws.onopen = function() {
    if (created < SOCKETS_TO_OPEN) {
      createNewWebSocket();
    }
    ++connected;
    if (connected == SOCKETS_TO_OPEN) {
      document.title = "PASS";
    }
  };
  ws.onclose = function() {
    document.title = "FAIL";
  };
}

for (var i = 0; i < PARALLELISM; ++i) {
  createNewWebSocket();
}
</script>
