inspector: split HTTP/WS server from the inspector

Both our team experiments and some embedder request indicate a potential
in implementing alternative transport for inspector - e.g. IPC pipes or
custom embedder APIs. This change moves all HTTP specific code into a
separate class and is a first attempt at defining a boundary between the
inspector agent and transport. This API will be refined as new
transports are implemented.
Note that even without considering alternative transports, this change
enables better testing of the HTTP server (Valgrind made it possible to
identify and fix some existing memory leaks).

PR-URL: https://github.com/nodejs/node/pull/9630
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
diff --git a/node.gyp b/node.gyp
index f590377..e5f02d7 100644
--- a/node.gyp
+++ b/node.gyp
@@ -318,8 +318,10 @@
           'sources': [
             'src/inspector_agent.cc',
             'src/inspector_socket.cc',
-            'src/inspector_socket.h',
+            'src/inspector_socket_server.cc',
             'src/inspector_agent.h',
+            'src/inspector_socket.h',
+            'src/inspector_socket_server.h',
           ],
           'dependencies': [
             'deps/v8_inspector/src/inspector/inspector.gyp:standalone_inspector',
@@ -868,7 +870,8 @@
       'dependencies': [ 'deps/gtest/gtest.gyp:gtest' ],
       'include_dirs': [
         'src',
-        'deps/v8/include'
+        'deps/v8/include',
+        '<(SHARED_INTERMEDIATE_DIR)'
       ],
       'defines': [
         # gtest's ASSERT macros conflict with our own.
@@ -886,9 +889,21 @@
 
       'conditions': [
         ['v8_inspector=="true"', {
+          'defines': [
+            'HAVE_INSPECTOR=1',
+          ],
+          'dependencies': [
+            'deps/zlib/zlib.gyp:zlib',
+            'v8_inspector_compress_protocol_json#host'
+          ],
+          'include_dirs': [
+            '<(SHARED_INTERMEDIATE_DIR)'
+          ],
           'sources': [
             'src/inspector_socket.cc',
-            'test/cctest/test_inspector_socket.cc'
+            'src/inspector_socket_server.cc',
+            'test/cctest/test_inspector_socket.cc',
+            'test/cctest/test_inspector_socket_server.cc'
           ],
           'conditions': [
             [ 'node_shared_openssl=="false"', {