1*6777b538SAndroid Build Coastguard Worker<title>WebSocket is not subject to HTTP(S) connection limit</title> 2*6777b538SAndroid Build Coastguard Worker<script> 3*6777b538SAndroid Build Coastguard Workervar protocol = location.protocol.replace('http', 'ws'); 4*6777b538SAndroid Build Coastguard Workervar url = protocol + '//' + location.host + '/echo-with-no-extension'; 5*6777b538SAndroid Build Coastguard Worker 6*6777b538SAndroid Build Coastguard Workerconst SOCKETS_TO_OPEN = 255; 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Worker// PARALLELISM limits the number of connections we try to open simultaneously. 9*6777b538SAndroid Build Coastguard Worker// This avoids triggering the throttling added in http://crrev.com/972963002, 10*6777b538SAndroid Build Coastguard Worker// which otherwise slows the test down considerably. 11*6777b538SAndroid Build Coastguard Workerconst PARALLELISM = 2; 12*6777b538SAndroid Build Coastguard Worker 13*6777b538SAndroid Build Coastguard Workervar created = 0; 14*6777b538SAndroid Build Coastguard Workervar connected = 0; 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Workerfunction createNewWebSocket() 17*6777b538SAndroid Build Coastguard Worker{ 18*6777b538SAndroid Build Coastguard Worker var ws = new WebSocket(url); 19*6777b538SAndroid Build Coastguard Worker ++created; 20*6777b538SAndroid Build Coastguard Worker 21*6777b538SAndroid Build Coastguard Worker ws.onopen = function() { 22*6777b538SAndroid Build Coastguard Worker if (created < SOCKETS_TO_OPEN) { 23*6777b538SAndroid Build Coastguard Worker createNewWebSocket(); 24*6777b538SAndroid Build Coastguard Worker } 25*6777b538SAndroid Build Coastguard Worker ++connected; 26*6777b538SAndroid Build Coastguard Worker if (connected == SOCKETS_TO_OPEN) { 27*6777b538SAndroid Build Coastguard Worker document.title = "PASS"; 28*6777b538SAndroid Build Coastguard Worker } 29*6777b538SAndroid Build Coastguard Worker }; 30*6777b538SAndroid Build Coastguard Worker ws.onclose = function() { 31*6777b538SAndroid Build Coastguard Worker document.title = "FAIL"; 32*6777b538SAndroid Build Coastguard Worker }; 33*6777b538SAndroid Build Coastguard Worker} 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Workerfor (var i = 0; i < PARALLELISM; ++i) { 36*6777b538SAndroid Build Coastguard Worker createNewWebSocket(); 37*6777b538SAndroid Build Coastguard Worker} 38*6777b538SAndroid Build Coastguard Worker</script> 39