summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGauthamBanasandra <gautham.bangalore@gmail.com>2018-06-18 17:44:19 +0530
committerMatheus Marchini <matheus@sthima.com>2018-06-28 09:24:02 -0300
commit026d279acae0c11d9767f6f5a7b57a945257e53c (patch)
tree1c30779fe6a6123e85557cd0f85ccb325746860a /src
parent3d04e6c9a5522b6391a4a914ca16f2337abb35e7 (diff)
downloadandroid-node-v8-026d279acae0c11d9767f6f5a7b57a945257e53c.tar.gz
android-node-v8-026d279acae0c11d9767f6f5a7b57a945257e53c.tar.bz2
android-node-v8-026d279acae0c11d9767f6f5a7b57a945257e53c.zip
inspector: use js_app.html as the landing page for chrome devtools
As of this commit in chromium - https://chromium-review.googlesource.com/c/chromium/src/+/905450 a new landing page (js_app.html) has been added and inspector.html has been made as the fallback page. Another motivation for this patch is the following bug in chromium - https://bugs.chromium.org/p/chromium/issues/detail?id=846642 due to which, source maps won't get applied with inspector.html, but works with js_app.html In order to maintain compatibility, this patch adds a URL "devtoolsFrontendUrlCompat" to the response of /json/list REST API so that those using Chrome browsers older than 66.0.3345.0 could use this to open DevTools. PR-URL: https://github.com/nodejs/node/pull/21385 Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=846642 Refs: https://chromium-review.googlesource.com/c/chromium/src/+/905450 Reviewed-By: Aleksei Koziatinskii <ak239spb@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: Matheus Marchini <matheus@sthima.com>
Diffstat (limited to 'src')
-rw-r--r--src/inspector_socket_server.cc21
-rw-r--r--src/inspector_socket_server.h2
2 files changed, 18 insertions, 5 deletions
diff --git a/src/inspector_socket_server.cc b/src/inspector_socket_server.cc
index d5eb1b75c8..174dc7c726 100644
--- a/src/inspector_socket_server.cc
+++ b/src/inspector_socket_server.cc
@@ -334,16 +334,27 @@ void InspectorSocketServer::SendListResponse(InspectorSocket* socket,
detected_host = FormatHostPort(socket->GetHost(),
session->server_port());
}
- std::ostringstream frontend_url;
- frontend_url << "chrome-devtools://devtools/bundled";
- frontend_url << "/inspector.html?experiments=true&v8only=true&ws=";
- frontend_url << FormatAddress(detected_host, id, false);
- target_map["devtoolsFrontendUrl"] += frontend_url.str();
+ std::string formatted_address = FormatAddress(detected_host, id, false);
+ target_map["devtoolsFrontendUrl"] = GetFrontendURL(false,
+ formatted_address);
+ // The compat URL is for Chrome browsers older than 66.0.3345.0
+ target_map["devtoolsFrontendUrlCompat"] = GetFrontendURL(true,
+ formatted_address);
target_map["webSocketDebuggerUrl"] = FormatAddress(detected_host, id, true);
}
SendHttpResponse(socket, MapsToString(response));
}
+std::string InspectorSocketServer::GetFrontendURL(bool is_compat,
+ const std::string &formatted_address) {
+ std::ostringstream frontend_url;
+ frontend_url << "chrome-devtools://devtools/bundled/";
+ frontend_url << (is_compat ? "inspector" : "js_app");
+ frontend_url << ".html?experiments=true&v8only=true&ws=";
+ frontend_url << formatted_address;
+ return frontend_url.str();
+}
+
bool InspectorSocketServer::Start() {
CHECK_NE(delegate_, nullptr);
CHECK_EQ(state_, ServerState::kNew);
diff --git a/src/inspector_socket_server.h b/src/inspector_socket_server.h
index b8d98e13a2..bbc2195095 100644
--- a/src/inspector_socket_server.h
+++ b/src/inspector_socket_server.h
@@ -81,6 +81,8 @@ class InspectorSocketServer {
void SendListResponse(InspectorSocket* socket, const std::string& host,
SocketSession* session);
+ std::string GetFrontendURL(bool is_compat,
+ const std::string &formatted_address);
bool TargetExists(const std::string& id);
enum class ServerState {kNew, kRunning, kStopping, kStopped};