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.

- close_observer.html : A page that creates a WebSocket connection to
     close-observer_wsh.py with role=observer and checks the contents of the
     message that is returned.
     Used by the SendCloseFrameWhenTabIsClosed browser test.

- connect_and_be_observed.html : A page that creates a WebSocket connection to
     close-observer_wsh.py with role=observed.
     This file does NOT close the established connection.
     Used by the SendCloseFrameWhenTabIsClosed browser test.

- 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.

- check-origin.html : A page which checks the origin header of the WebSocket
     opening handshake with check-origin_wsh.py. The page is expected to be
     accessed via a file:// URL.

- 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-immediately_wsh.py : A WebSocket URL handler that performs an immediate
     clean close as soon as the connection is established.

- 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.

- close-observer_wsh.py : enables observing the close of one WebSocket due to
     the tab being closed from another page.
     Used by the SendCloseFrameWhenTabIsClosed browser test.

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

- check-origin_wsh.py : A WebSocket URL handler to echo back the origin header
     used in the opening handshake.

- send-message-every-quarter-second_wsh.py : A WebSocket URL handler to send
     a caller-specified number of messages through the port, each a quarter
     second apart. Useful when testing sustained web socket connections without
     continued client-side interaction. Used in ExtensionWebSocketApiTests.
