@@ -24,6 +24,8 @@ namespace {
2424// taken by gin, blink and node, using 2 is a safe option for now.
2525const int kIsolateSlot = 2 ;
2626
27+ const char * kContentLength = " Content-Length" ;
28+
2729} // namespace
2830
2931NodeDebugger::NodeDebugger (v8::Isolate* isolate)
@@ -105,13 +107,23 @@ void NodeDebugger::OnMessage(const std::string& message) {
105107
106108void NodeDebugger::SendMessage (const std::string& message) {
107109 if (accepted_socket_) {
108- std::string header = base::StringPrintf (" Content-Length: %d \r\n\r\n " ,
109- static_cast <int >(message.size ()));
110+ std::string header = base::StringPrintf (
111+ " %s: %d \r\n\r\n " , kContentLength , static_cast <int >(message.size ()));
110112 accepted_socket_->Send (header);
111113 accepted_socket_->Send (message);
112114 }
113115}
114116
117+ void NodeDebugger::SendConnectMessage () {
118+ accepted_socket_->Send (base::StringPrintf (
119+ " Type: connect\r\n "
120+ " V8-Version: %s\r\n "
121+ " Protocol-Version: 1\r\n "
122+ " Embedding-Host: %s\r\n "
123+ " %s: 0\r\n " ,
124+ v8::V8::GetVersion (), " Atom-Shell" , kContentLength ), true );
125+ }
126+
115127// static
116128void NodeDebugger::DebugMessageHandler (const v8::Debug::Message& message) {
117129 NodeDebugger* self = static_cast <NodeDebugger*>(
@@ -132,6 +144,7 @@ void NodeDebugger::DidAccept(net::StreamListenSocket* server,
132144 }
133145
134146 accepted_socket_ = socket.Pass ();
147+ SendConnectMessage ();
135148}
136149
137150void NodeDebugger::DidRead (net::StreamListenSocket* socket,
0 commit comments