Chromium Code Reviews| 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 b4e475d6d457d8888586cbc4766d1b18606ee18e..c3fcc86e6d143af1d81c63723dbab27bc7485b65 100644 |
| --- a/content/browser/devtools/devtools_http_handler.cc |
| +++ b/content/browser/devtools/devtools_http_handler.cc |
| @@ -535,10 +535,11 @@ void DevToolsHttpHandler::OnJsonRequest( |
| } |
| if (command == "list") { |
| - DevToolsAgentHost::DiscoverAllHosts( |
| - base::Bind(&DevToolsHttpHandler::RespondToJsonList, |
| - weak_factory_.GetWeakPtr(), connection_id, |
| - info.headers["host"])); |
| + DevToolsManager* manager = DevToolsManager::GetInstance(); |
| + DevToolsAgentHost::List list = |
| + manager->delegate() ? manager->delegate()->RemoteDebuggingTargets() |
| + : DevToolsAgentHost::GetOrCreateAll(); |
| + RespondToJsonList(connection_id, info.headers["host"], list); |
|
dgozman
2017/04/22 00:30:26
std::move(list)
|
| return; |
| } |
| @@ -561,13 +562,12 @@ void DevToolsHttpHandler::OnJsonRequest( |
| std::unique_ptr<base::DictionaryValue> dictionary( |
| SerializeDescriptor(agent_host, host)); |
| SendJson(connection_id, net::HTTP_OK, dictionary.get(), std::string()); |
| - const std::string target_id = agent_host->GetId(); |
| - agent_host_map_[target_id] = agent_host; |
| return; |
| } |
| if (command == "activate" || command == "close") { |
| - scoped_refptr<DevToolsAgentHost> agent_host = GetAgentHost(target_id); |
| + scoped_refptr<DevToolsAgentHost> agent_host = |
| + DevToolsAgentHost::GetForId(target_id); |
| if (!agent_host) { |
| SendJson(connection_id, |
| net::HTTP_NOT_FOUND, |
| @@ -613,21 +613,12 @@ void DevToolsHttpHandler::RespondToJsonList( |
| 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; |
| + for (auto& agent_host : agent_hosts) |
| 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); |
| - return it != agent_host_map_.end() ? it->second : nullptr; |
| -} |
| - |
| void DevToolsHttpHandler::OnDiscoveryPageRequest(int connection_id) { |
| std::string response = delegate_->GetDiscoveryPageHTML(); |
| Send200(connection_id, response, "text/html; charset=UTF-8"); |
| @@ -668,7 +659,8 @@ void DevToolsHttpHandler::OnWebSocketRequest( |
| } |
| std::string target_id = request.path.substr(strlen(kPageUrlPrefix)); |
| - scoped_refptr<DevToolsAgentHost> agent = GetAgentHost(target_id); |
| + scoped_refptr<DevToolsAgentHost> agent = |
| + DevToolsAgentHost::GetForId(target_id); |
| if (!agent) { |
| Send500(connection_id, "No such target id: " + target_id); |
| return; |