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

Side by Side Diff: content/browser/devtools/devtools_agent_host_impl.cc

Issue 2830753004: Pipe the devTools FrameId from blink into the browser for headless (Closed)
Patch Set: Changes for dgozman@ Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/devtools/devtools_agent_host_impl.h" 5 #include "content/browser/devtools/devtools_agent_host_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/json/json_writer.h" 11 #include "base/json/json_writer.h"
12 #include "base/lazy_instance.h" 12 #include "base/lazy_instance.h"
13 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
14 #include "base/observer_list.h" 14 #include "base/observer_list.h"
15 #include "content/browser/devtools/devtools_manager.h" 15 #include "content/browser/devtools/devtools_manager.h"
16 #include "content/browser/devtools/devtools_session.h" 16 #include "content/browser/devtools/devtools_session.h"
17 #include "content/browser/devtools/forwarding_agent_host.h" 17 #include "content/browser/devtools/forwarding_agent_host.h"
18 #include "content/browser/devtools/protocol/page.h" 18 #include "content/browser/devtools/protocol/page.h"
19 #include "content/browser/devtools/render_frame_devtools_agent_host.h" 19 #include "content/browser/devtools/render_frame_devtools_agent_host.h"
20 #include "content/browser/devtools/service_worker_devtools_agent_host.h" 20 #include "content/browser/devtools/service_worker_devtools_agent_host.h"
21 #include "content/browser/devtools/service_worker_devtools_manager.h" 21 #include "content/browser/devtools/service_worker_devtools_manager.h"
22 #include "content/browser/devtools/shared_worker_devtools_agent_host.h" 22 #include "content/browser/devtools/shared_worker_devtools_agent_host.h"
23 #include "content/browser/devtools/shared_worker_devtools_manager.h" 23 #include "content/browser/devtools/shared_worker_devtools_manager.h"
24 #include "content/browser/frame_host/frame_tree_node.h"
24 #include "content/browser/loader/netlog_observer.h" 25 #include "content/browser/loader/netlog_observer.h"
26 #include "content/browser/renderer_host/render_view_host_impl.h"
25 #include "content/public/browser/browser_thread.h" 27 #include "content/public/browser/browser_thread.h"
26 #include "content/public/browser/content_browser_client.h" 28 #include "content/public/browser/content_browser_client.h"
27 29
28 namespace content { 30 namespace content {
29 31
30 namespace { 32 namespace {
31 typedef std::map<std::string, DevToolsAgentHostImpl*> Instances; 33 typedef std::map<std::string, DevToolsAgentHostImpl*> Instances;
32 base::LazyInstance<Instances>::Leaky g_instances = LAZY_INSTANCE_INITIALIZER; 34 base::LazyInstance<Instances>::Leaky g_instances = LAZY_INSTANCE_INITIALIZER;
33 35
34 base::LazyInstance<base::ObserverList<DevToolsAgentHostObserver>>::Leaky 36 base::LazyInstance<base::ObserverList<DevToolsAgentHostObserver>>::Leaky
(...skipping 16 matching lines...) Expand all
51 return "1.2"; 53 return "1.2";
52 } 54 }
53 55
54 // static 56 // static
55 bool DevToolsAgentHost::IsSupportedProtocolVersion(const std::string& version) { 57 bool DevToolsAgentHost::IsSupportedProtocolVersion(const std::string& version) {
56 // TODO(dgozman): generate this. 58 // TODO(dgozman): generate this.
57 return version == "1.0" || version == "1.1" || version == "1.2"; 59 return version == "1.0" || version == "1.1" || version == "1.2";
58 } 60 }
59 61
60 // static 62 // static
63 std::string DevToolsAgentHost::GetUntrustedDevToolsFrameIdForFrameTreeNodeId(
64 int process_id,
65 int frame_tree_node_id) {
66 FrameTreeNode* frame_tree_node =
67 FrameTreeNode::GloballyFindByID(frame_tree_node_id);
68 if (!frame_tree_node)
69 return "";
70 // Make sure |process_id| hasn't changed.
71 RenderFrameHostImpl* render_frame_host_impl =
72 frame_tree_node->current_frame_host();
73 if (!render_frame_host_impl ||
74 render_frame_host_impl->GetProcess()->GetID() != process_id) {
Charlie Reis 2017/04/26 19:52:55 Thanks-- I appreciate this check.
alex clarke (OOO till 29th) 2017/04/27 08:49:43 Acknowledged.
75 return "";
76 }
77 return frame_tree_node->current_frame_host()->devtools_frame_id();
78 }
79
80 // static
61 DevToolsAgentHost::List DevToolsAgentHost::GetOrCreateAll() { 81 DevToolsAgentHost::List DevToolsAgentHost::GetOrCreateAll() {
62 List result; 82 List result;
63 SharedWorkerDevToolsAgentHost::List shared_list; 83 SharedWorkerDevToolsAgentHost::List shared_list;
64 SharedWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&shared_list); 84 SharedWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&shared_list);
65 for (const auto& host : shared_list) 85 for (const auto& host : shared_list)
66 result.push_back(host); 86 result.push_back(host);
67 87
68 ServiceWorkerDevToolsAgentHost::List service_list; 88 ServiceWorkerDevToolsAgentHost::List service_list;
69 ServiceWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&service_list); 89 ServiceWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&service_list);
70 for (const auto& host : service_list) 90 for (const auto& host : service_list)
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 if (message_buffer_.size() != message_buffer_size_) 402 if (message_buffer_.size() != message_buffer_size_)
383 return false; 403 return false;
384 callback_.Run(chunk.session_id, message_buffer_); 404 callback_.Run(chunk.session_id, message_buffer_);
385 message_buffer_ = std::string(); 405 message_buffer_ = std::string();
386 message_buffer_size_ = 0; 406 message_buffer_size_ = 0;
387 } 407 }
388 return true; 408 return true;
389 } 409 }
390 410
391 } // namespace content 411 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698