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

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

Issue 2833213002: DevTools: retain DTAH in all the targets to match their life time. (Closed)
Patch Set: cast test Created 3 years, 8 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
« no previous file with comments | « content/browser/devtools/devtools_http_handler.h ('k') | content/public/browser/devtools_agent_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..7f06067c4027bdfad4d5cb598bc4dbb44db21958 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"], 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;
« no previous file with comments | « content/browser/devtools/devtools_http_handler.h ('k') | content/public/browser/devtools_agent_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698