diff options
author | GauthamBanasandra <gautham.bangalore@gmail.com> | 2018-06-18 15:14:19 +0300 |
---|---|---|
committer | Matheus Marchini <matheus@sthima.com> | 2018-06-28 15:24:02 +0300 |
commit | 026d279acae0c11d9767f6f5a7b57a945257e53c (patch) | |
tree | 1c30779fe6a6123e85557cd0f85ccb325746860a /src/inspector_socket_server.cc | |
parent | 3d04e6c9a5522b6391a4a914ca16f2337abb35e7 (diff) |
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/inspector_socket_server.cc')
-rw-r--r-- | src/inspector_socket_server.cc | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/inspector_socket_server.cc b/src/inspector_socket_server.cc index d5eb1b75c81..174dc7c726f 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); |