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

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 Sami and creis@ 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 if (!frame_tree_node->render_manager()->current_frame_host() ||
72 frame_tree_node->render_manager()
73 ->current_frame_host()
dgozman 2017/04/25 22:04:48 Let's extract a variable for frame_tree_node->curr
alex clarke (OOO till 29th) 2017/04/26 14:19:54 Done.
74 ->render_view_host()
dgozman 2017/04/25 22:04:48 You can skip render_view_host() call, RFHI has Get
alex clarke (OOO till 29th) 2017/04/26 14:19:54 Done.
75 ->GetProcess()
76 ->GetID() != process_id) {
77 return "";
78 }
79 return frame_tree_node->current_frame_host()->devtools_frame_id();
80 }
81
82 // static
61 DevToolsAgentHost::List DevToolsAgentHost::GetOrCreateAll() { 83 DevToolsAgentHost::List DevToolsAgentHost::GetOrCreateAll() {
62 List result; 84 List result;
63 SharedWorkerDevToolsAgentHost::List shared_list; 85 SharedWorkerDevToolsAgentHost::List shared_list;
64 SharedWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&shared_list); 86 SharedWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&shared_list);
65 for (const auto& host : shared_list) 87 for (const auto& host : shared_list)
66 result.push_back(host); 88 result.push_back(host);
67 89
68 ServiceWorkerDevToolsAgentHost::List service_list; 90 ServiceWorkerDevToolsAgentHost::List service_list;
69 ServiceWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&service_list); 91 ServiceWorkerDevToolsManager::GetInstance()->AddAllAgentHosts(&service_list);
70 for (const auto& host : service_list) 92 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_) 404 if (message_buffer_.size() != message_buffer_size_)
383 return false; 405 return false;
384 callback_.Run(chunk.session_id, message_buffer_); 406 callback_.Run(chunk.session_id, message_buffer_);
385 message_buffer_ = std::string(); 407 message_buffer_ = std::string();
386 message_buffer_size_ = 0; 408 message_buffer_size_ = 0;
387 } 409 }
388 return true; 410 return true;
389 } 411 }
390 412
391 } // namespace content 413 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698