diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-04 16:25:10 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-04 16:25:10 +0000 |
commit | c75ecd68c4d4a2976eecc1e566f155bbdaa55bea (patch) | |
tree | 8293b7fdba0de596c8b69fbb1c4b87007d358fd8 /chrome | |
parent | 26143acdd88a940193cc0173ec608358ec35c41a (diff) | |
download | chromium_src-c75ecd68c4d4a2976eecc1e566f155bbdaa55bea.zip chromium_src-c75ecd68c4d4a2976eecc1e566f155bbdaa55bea.tar.gz chromium_src-c75ecd68c4d4a2976eecc1e566f155bbdaa55bea.tar.bz2 |
DevTools: provide web socket url for remote debugging.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6794018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80321 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/debugger/devtools_http_protocol_handler.cc | 58 |
1 files changed, 33 insertions, 25 deletions
diff --git a/chrome/browser/debugger/devtools_http_protocol_handler.cc b/chrome/browser/debugger/devtools_http_protocol_handler.cc index aa6fa7e..42818f8 100644 --- a/chrome/browser/debugger/devtools_http_protocol_handler.cc +++ b/chrome/browser/debugger/devtools_http_protocol_handler.cc @@ -263,34 +263,32 @@ static PageList GeneratePageList( void DevToolsHttpProtocolHandler::OnRootRequestUI( int connection_id, const HttpServerRequestInfo& info) { - std::string response = "<html><body><script>" - "function addTab(id, url, attached, frontendUrl) {" - " if (!attached) {" - " var a = document.createElement('a');" - " a.textContent = url;" - " a.href = frontendUrl + '?host=' + window.location.host +" - " '&page=' + id;" - " document.body.appendChild(a);" - " } else {" - " var span = document.createElement('span');" - " span.textContent = url + ' (attached)';" - " document.body.appendChild(span);" - " }" - " document.body.appendChild(document.createElement('br'));" - "}"; - + std::string host = info.headers["Host"]; + std::string response = "<html><body>"; PageList page_list = GeneratePageList(tab_contents_provider_.get(), connection_id, info); for (PageList::iterator i = page_list.begin(); i != page_list.end(); ++i) { + + std::string frontendURL = StringPrintf("%s?host=%s&page=%d", + overriden_frontend_url_.c_str(), + host.c_str(), + i->id); + response += "<div>"; response += StringPrintf( - "addTab(%d, '%s', %s, '%s');\n", - i->id, - i->url.c_str(), - i->attached ? "true" : "false", - overriden_frontend_url_.c_str()); + "<img style=\"margin-right:5px;width:16px;height:16px\" src=\"%s\">", + i->favicon_url.c_str()); + + if (i->attached) { + response += i->url.c_str(); + } else { + response += StringPrintf("<a href=\"%s\">%s</a><br>", + frontendURL.c_str(), + i->url.c_str()); + } + response += "</div>"; } - response += "</script></body></html>"; + response += "</body></html>"; Send200(connection_id, response, "text/html; charset=UTF-8"); } @@ -300,17 +298,28 @@ void DevToolsHttpProtocolHandler::OnJsonRequestUI( PageList page_list = GeneratePageList(tab_contents_provider_.get(), connection_id, info); ListValue json_pages_list; + std::string host = info.headers["Host"]; for (PageList::iterator i = page_list.begin(); i != page_list.end(); ++i) { DictionaryValue* page_info = new DictionaryValue; json_pages_list.Append(page_info); - page_info->SetInteger("id", i->id); - page_info->SetBoolean("attached", i->attached); page_info->SetString("title", i->title); page_info->SetString("url", i->url); page_info->SetString("faviconUrl", i->favicon_url); + if (!i->attached) { + page_info->SetString("webSocketDebuggerUrl", + StringPrintf("ws://%s/devtools/page/%d", + host.c_str(), + i->id)); + page_info->SetString( + "devtoolsFrontendUrl", + StringPrintf("http://%s/devtools/devtools.html?page=%d", + host.c_str(), + i->id)); + } } + std::string response; base::JSONWriter::Write(&json_pages_list, true, &response); Send200(connection_id, response, "application/json; charset=UTF-8"); @@ -367,7 +376,6 @@ void DevToolsHttpProtocolHandler::OnWebSocketMessageUI( return; DevToolsManager* manager = DevToolsManager::GetInstance(); - manager->ForwardToDevToolsAgent( it->second, DevToolsAgentMsg_DispatchOnInspectorBackend(data)); |