<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';

// TODO(ricea): The limit for ws: is 255, but wss: gets a limit of 30
// (per-host:port, not ip:port!) because it still uses the HTTP pool code. This
// should be fixed at some point. When it is, change this number back to 50 (or
// even larger, if it works).
const SOCKETS_TO_OPEN = 30;

// 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();
}

setTimeout(function() {
  console.log("Got stuck after " + connected + " socket(s) connected");
  document.title = "FAIL";
}, 5000);
</script>
