Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1179)

Unified Diff: content/browser/devtools/devtools_http_handler.cc

Issue 2344753002: DevTools: return discovered targets asynchronously. (Closed)
Patch Set: for bots Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/devtools/devtools_http_handler.cc
diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser/devtools/devtools_http_handler.cc
index 5f5833b83a0ff79a583d80666b08eb3bd4065a5e..c5b61194fc93a7ff87da89dfbc0e861cf13ac285 100644
--- a/content/browser/devtools/devtools_http_handler.cc
+++ b/content/browser/devtools/devtools_http_handler.cc
@@ -534,17 +534,10 @@ void DevToolsHttpHandler::OnJsonRequest(
}
if (command == "list") {
- std::string host = info.headers["host"];
- DevToolsAgentHost::List agent_hosts =
- DevToolsAgentHost::DiscoverAllHosts();
- std::sort(agent_hosts.begin(), agent_hosts.end(), TimeComparator);
- agent_host_map_.clear();
- base::ListValue list_value;
- for (auto& agent_host : agent_hosts) {
- agent_host_map_[agent_host->GetId()] = agent_host;
- list_value.Append(SerializeDescriptor(agent_host, host));
- }
- SendJson(connection_id, net::HTTP_OK, &list_value, std::string());
+ DevToolsAgentHost::DiscoverAllHosts(
+ base::Bind(&DevToolsHttpHandler::RespondToJsonList,
+ weak_factory_.GetWeakPtr(), connection_id,
+ info.headers["host"]));
return;
}
@@ -613,6 +606,21 @@ void DevToolsHttpHandler::OnJsonRequest(
return;
}
+void DevToolsHttpHandler::RespondToJsonList(
+ int connection_id,
+ const std::string& host,
+ DevToolsAgentHost::List hosts) {
+ DevToolsAgentHost::List agent_hosts = std::move(hosts);
+ std::sort(agent_hosts.begin(), agent_hosts.end(), TimeComparator);
+ agent_host_map_.clear();
+ base::ListValue list_value;
+ for (auto& agent_host : agent_hosts) {
+ agent_host_map_[agent_host->GetId()] = agent_host;
+ list_value.Append(SerializeDescriptor(agent_host, host));
+ }
+ SendJson(connection_id, net::HTTP_OK, &list_value, std::string());
+}
+
scoped_refptr<DevToolsAgentHost> DevToolsHttpHandler::GetAgentHost(
const std::string& target_id) {
DescriptorMap::const_iterator it = agent_host_map_.find(target_id);
« no previous file with comments | « content/browser/devtools/devtools_http_handler.h ('k') | content/browser/devtools/protocol/browser_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698