@@ -29,13 +29,15 @@ namespace node {
2929namespace {
3030
3131const char DEVTOOLS_PATH [] = " /node" ;
32+ const char DEVTOOLS_HASH [] = " 521e5b7e2b7cc66b4006a8a54cb9c4e57494a5ef" ;
3233
3334void PrintDebuggerReadyMessage (int port) {
3435fprintf (stderr, " Debugger listening on port %d.\n "
3536" To start debugging, open the following URL in Chrome:\n "
3637" chrome-devtools://devtools/remote/serve_file/"
37- " @521e5b7e2b7cc66b4006a8a54cb9c4e57494a5ef/inspector.html?"
38- " experiments=true&v8only=true&ws=localhost:%d/node\n " , port, port);
38+ " @%s/inspector.html?"
39+ " experiments=true&v8only=true&ws=localhost:%d/node\n " ,
40+ port, DEVTOOLS_HASH , port);
3941}
4042
4143bool AcceptsConnection (inspector_socket_t * socket, const char * path) {
@@ -89,18 +91,19 @@ void SendVersionResponse(inspector_socket_t* socket) {
8991SendHttpResponse (socket, buffer, len);
9092}
9193
92- void SendTargentsListResponse (inspector_socket_t * socket) {
94+ void SendTargentsListResponse (inspector_socket_t * socket, int port ) {
9395const char LIST_RESPONSE_TEMPLATE [] =
9496" [ {"
9597" \" description\" : \" node.js instance\" ,"
9698" \" devtoolsFrontendUrl\" : "
9799" \" https://chrome-devtools-frontend.appspot.com/serve_file/"
98- " @4604d24a75168768584760ba56d175507941852f/inspector.html\" ,"
100+ " @%s/inspector.html?experiments=true&v8only=true"
101+ " &ws=localhost:%d%s\" ,"
99102" \" faviconUrl\" : \" https://nodejs.org/static/favicon.ico\" ,"
100103" \" id\" : \" %d\" ,"
101104" \" title\" : \" %s\" ,"
102105" \" type\" : \" node\" ,"
103- " \" webSocketDebuggerUrl\" : \" ws://%s\" "
106+ " \" webSocketDebuggerUrl\" : \" ws://localhost:%d %s\" "
104107" } ]" ;
105108char buffer[sizeof (LIST_RESPONSE_TEMPLATE ) + 4096 ];
106109char title[2048 ]; // uv_get_process_title trims the title if too long
@@ -114,12 +117,13 @@ void SendTargentsListResponse(inspector_socket_t* socket) {
114117 c++;
115118 }
116119size_t len = snprintf (buffer, sizeof (buffer), LIST_RESPONSE_TEMPLATE ,
117- getpid (), title, DEVTOOLS_PATH );
120+ DEVTOOLS_HASH , port, DEVTOOLS_PATH , getpid (),
121+ title, port, DEVTOOLS_PATH );
118122ASSERT_LT (len, sizeof (buffer));
119123SendHttpResponse (socket, buffer, len);
120124}
121125
122- bool RespondToGet (inspector_socket_t * socket, const char * path) {
126+ bool RespondToGet (inspector_socket_t * socket, const char * path, int port ) {
123127const char PATH [] = " /json" ;
124128const char PATH_LIST [] = " /json/list" ;
125129const char PATH_VERSION [] = " /json/version" ;
@@ -128,7 +132,7 @@ bool RespondToGet(inspector_socket_t* socket, const char* path) {
128132SendVersionResponse (socket);
129133 } else if (!strncmp (PATH_LIST , path, sizeof (PATH_LIST )) ||
130134 !strncmp (PATH , path, sizeof (PATH ))) {
131- SendTargentsListResponse (socket);
135+ SendTargentsListResponse (socket, port );
132136 } else if (!strncmp (path, PATH_ACTIVATE , sizeof (PATH_ACTIVATE ) - 1 ) &&
133137atoi (path + (sizeof (PATH_ACTIVATE ) - 1 )) == getpid ()) {
134138const char TARGET_ACTIVATED [] = " Target activated" ;
@@ -348,7 +352,7 @@ bool Agent::OnInspectorHandshakeIO(inspector_socket_t* socket,
348352 Agent* agent = static_cast <Agent*>(socket->data );
349353switch (state) {
350354case kInspectorHandshakeHttpGet :
351- return RespondToGet (socket, path);
355+ return RespondToGet (socket, path, agent-> port_ );
352356case kInspectorHandshakeUpgrading :
353357return AcceptsConnection (socket, path);
354358case kInspectorHandshakeUpgraded :
0 commit comments