This directory contains resources used by WebSocket server for testing.
Multiple tests may share one resource, or URI handler.

- connect_check.html : A page provides simple WebSocket connectivity check.
     This page changes page title to "PASS" to notify content::TitleWatcher.
     Used by ProxyBrowserTest.BasicAuthWSConnect,
     SSLUITest.TestWSSInvalidCertAndGoForward, SSLUITest.TestWSSClientCert,
     and SSLUITestIgnoreCertErrors.TestWSS.

- split_packet_check.html : A page for testing split packet handling. Here,
     packets mean TCP segments for WebSocket, or SSL records for secure
     WebSocket. This page changes the title to "PASS" to notify
     content::TitleWatcher.
     Used by WebSocketBrowserTest.WebSocketSplitSegments and
     WebSocketBrowserTest.SecureWebSocketSplitRecords.

- websocket_shared_worker.html :  A page provides simple WebSocket test in
     shared worker. This page changes page title to "PASS" to notify
     content::TitleWatcher.
     Used by WorkerTest.WebSocketSharedWorker.

- connect_to.html : A page which makes a connection to the WebSocket server
     specified in the "url" parameter,
     eg. connect_to.html?url=ws://localhost/echo Sets the title to "PASS" if
     connection succeeds and "FAIL" otherwise.

- counted_connection.html : A page that creates a WebSocket connection
     to count-connection_wsh.
     This file does NOT close the established connection.
     Used by SendCloseFrameWhenTabIsClosed.

- count_connection.html : A page that creates a WebSocket connection
     to count-connection_wsh and checks the number of open and closed
     websocket connections to the handler.
     Used by SendCloseFrameWhenTabIsClosed.

- multiple-connections.html : Verify that HTTP connection limits are not applied
     to WebSockets. Used by WebSocketBrowserTest.SSLConnectionLimit.

- websocket_worker_simple.js : A JavaScript runs on Workers created from the
     websocket_shared_worker.html.
     Used by WorkerTest.WebSocketSharedWorker.

- echo-with-no-extension_wsh.py : A WebSocket URL handler for echo testing.
     This handler disables all WebSocket extension so that we can perform
     frame data dependent tests.
     Used by kinds of PPAPI tests for WebSocket, ExtensionApiTest.WebSocket,
     and WorkerTest.WebSocketSharedWorker.

- close_wsh.py : A WebSocket URL handler for testing outgoing close code and
     reason.
     Used by kinds of PPAPI tests for WebSocket.

- close-code-and-reason_wsh.py : A WebSocket URL handler for testing server
     initiated closing handshake. A client can ask server to close the
     connection with arbitrary code and reason.
     Used by kinds of PPAPI tests for WebSocket.

- close-with-split-packet_wsh.py : A WebSocket URL handler for testing split
     packet handling. Here, packets mean TCP segments for WebSocket, or SSL
     records for secure WebSocket.
     Used by WebSocketBrowserTest.WebSocketSplitSegments and
     WebSocketBrowserTest.SecureWebSocketSplitRecords.

- count-connection_wsh.py : counts the number of open and closed websocket
     connections to this handler.
     It sends the numbers after each connection establishment.
     Used by SendCloseFrameWhenTabIsClosed.

- protocol-test_wsh.py : A WebSocket URL handler for testing outgoing opening
     handshake protocol.
     Used by kinds of PPAPI tests for WebSocket.
