Web Inspector: Should see active Web Sockets when opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=172312

Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/inspector/before-load.html

* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::~WebSocket):
(WebCore::WebSocket::allActiveWebSockets):
(WebCore::WebSocket::allActiveWebSocketsMutex):
(WebCore::WebSocket::channel):
(WebCore::WebSocket::eventTargetInterface):
Add a static set of all WebSocket objects and provide getters to access web socket metadata.

* Modules/websockets/ThreadableWebSocketChannel.h:
(WebCore::ThreadableWebSocketChannel::isWebSocketChannel):
* Modules/websockets/WebSocketChannel.h:
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::isWebSocketChannel):
(WebCore::WebSocketChannel::identifier):
(WebCore::WebSocketChannel::clientHandshakeRequest):
(WebCore::WebSocketChannel::serverHandshakeResponse):
(WebCore::WebSocketChannel::handshakeMode):
(WebCore::WebSocketChannel::isType):
Provide getters to access web socket metadata.

* inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::enable):
Loops over the static set of all WebSocket objects and sends events for each to the frontend.

Source/WebInspectorUI:

* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.webSocketHandshakeResponseReceived):
(WebInspector.FrameResourceManager.prototype.initialize): Removed.
Rework order of agent enable calls to ensure that the main frame is initialized before any
websocket events are dispatched.

* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource.ReadyState):
Change symbol strings in enum for better printing in tests.

LayoutTests:

Test that WebSockets created before the inspector loads are also tracked.

* http/tests/websocket/tests/hybi/inspector/before-load-expected.txt: Added.
* http/tests/websocket/tests/hybi/inspector/before-load.html: Added.
* http/tests/websocket/tests/hybi/inspector/before-load_wsh.py: Added.
(web_socket_do_extra_handshake):
(web_socket_transfer_data):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@217691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index c8f61fc..bc17b8c 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,18 @@
+2017-06-01  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: Should see active Web Sockets when opening Web Inspector
+        https://bugs.webkit.org/show_bug.cgi?id=172312
+
+        Reviewed by Joseph Pecoraro.
+
+        Test that WebSockets created before the inspector loads are also tracked.
+
+        * http/tests/websocket/tests/hybi/inspector/before-load-expected.txt: Added.
+        * http/tests/websocket/tests/hybi/inspector/before-load.html: Added.
+        * http/tests/websocket/tests/hybi/inspector/before-load_wsh.py: Added.
+        (web_socket_do_extra_handshake):
+        (web_socket_transfer_data):
+
 2017-06-01  Ryan Haddad  <ryanhaddad@apple.com>
 
         Mark http/tests/navigation/statistics.html as flaky.