OLD | NEW |
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/render_frame_devtools_agent_host.h" | 5 #include "content/browser/devtools/render_frame_devtools_agent_host.h" |
6 | 6 |
7 #include <tuple> | 7 #include <tuple> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/guid.h" | 10 #include "base/guid.h" |
11 #include "base/lazy_instance.h" | 11 #include "base/lazy_instance.h" |
12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
13 #include "build/build_config.h" | 13 #include "build/build_config.h" |
14 #include "content/browser/bad_message.h" | 14 #include "content/browser/bad_message.h" |
15 #include "content/browser/child_process_security_policy_impl.h" | 15 #include "content/browser/child_process_security_policy_impl.h" |
16 #include "content/browser/devtools/devtools_frame_trace_recorder.h" | 16 #include "content/browser/devtools/devtools_frame_trace_recorder.h" |
17 #include "content/browser/devtools/devtools_manager.h" | 17 #include "content/browser/devtools/devtools_manager.h" |
18 #include "content/browser/devtools/devtools_protocol_handler.h" | 18 #include "content/browser/devtools/devtools_protocol_handler.h" |
| 19 #include "content/browser/devtools/devtools_session.h" |
19 #include "content/browser/devtools/page_navigation_throttle.h" | 20 #include "content/browser/devtools/page_navigation_throttle.h" |
20 #include "content/browser/devtools/protocol/dom_handler.h" | 21 #include "content/browser/devtools/protocol/dom_handler.h" |
21 #include "content/browser/devtools/protocol/emulation_handler.h" | 22 #include "content/browser/devtools/protocol/emulation_handler.h" |
22 #include "content/browser/devtools/protocol/input_handler.h" | 23 #include "content/browser/devtools/protocol/input_handler.h" |
23 #include "content/browser/devtools/protocol/inspector_handler.h" | 24 #include "content/browser/devtools/protocol/inspector_handler.h" |
24 #include "content/browser/devtools/protocol/io_handler.h" | 25 #include "content/browser/devtools/protocol/io_handler.h" |
25 #include "content/browser/devtools/protocol/network_handler.h" | 26 #include "content/browser/devtools/protocol/network_handler.h" |
26 #include "content/browser/devtools/protocol/page_handler.h" | 27 #include "content/browser/devtools/protocol/page_handler.h" |
27 #include "content/browser/devtools/protocol/schema_handler.h" | 28 #include "content/browser/devtools/protocol/schema_handler.h" |
28 #include "content/browser/devtools/protocol/security_handler.h" | 29 #include "content/browser/devtools/protocol/security_handler.h" |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 DCHECK(host_); | 143 DCHECK(host_); |
143 } | 144 } |
144 | 145 |
145 RenderFrameDevToolsAgentHost::FrameHostHolder::~FrameHostHolder() { | 146 RenderFrameDevToolsAgentHost::FrameHostHolder::~FrameHostHolder() { |
146 if (attached_) | 147 if (attached_) |
147 RevokePolicy(); | 148 RevokePolicy(); |
148 } | 149 } |
149 | 150 |
150 void RenderFrameDevToolsAgentHost::FrameHostHolder::Attach() { | 151 void RenderFrameDevToolsAgentHost::FrameHostHolder::Attach() { |
151 host_->Send(new DevToolsAgentMsg_Attach( | 152 host_->Send(new DevToolsAgentMsg_Attach( |
152 host_->GetRoutingID(), agent_->GetId(), agent_->session_id())); | 153 host_->GetRoutingID(), agent_->GetId(), agent_->session()->session_id())); |
153 GrantPolicy(); | 154 GrantPolicy(); |
154 attached_ = true; | 155 attached_ = true; |
155 } | 156 } |
156 | 157 |
157 void RenderFrameDevToolsAgentHost::FrameHostHolder::Reattach( | 158 void RenderFrameDevToolsAgentHost::FrameHostHolder::Reattach( |
158 FrameHostHolder* old) { | 159 FrameHostHolder* old) { |
159 if (old) | 160 if (old) |
160 chunk_processor_.set_state_cookie(old->chunk_processor_.state_cookie()); | 161 chunk_processor_.set_state_cookie(old->chunk_processor_.state_cookie()); |
161 host_->Send(new DevToolsAgentMsg_Reattach( | 162 host_->Send(new DevToolsAgentMsg_Reattach( |
162 host_->GetRoutingID(), agent_->GetId(), agent_->session_id(), | 163 host_->GetRoutingID(), agent_->GetId(), agent_->session()->session_id(), |
163 chunk_processor_.state_cookie())); | 164 chunk_processor_.state_cookie())); |
164 if (old) { | 165 if (old) { |
165 for (const auto& pair : old->sent_messages_) { | 166 for (const auto& pair : old->sent_messages_) { |
166 DispatchProtocolMessage(pair.second.session_id, pair.first, | 167 DispatchProtocolMessage(pair.second.session_id, pair.first, |
167 pair.second.method, pair.second.message); | 168 pair.second.method, pair.second.message); |
168 } | 169 } |
169 } | 170 } |
170 GrantPolicy(); | 171 GrantPolicy(); |
171 attached_ = true; | 172 attached_ = true; |
172 } | 173 } |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 current_->Detach(); | 512 current_->Detach(); |
512 if (pending_) | 513 if (pending_) |
513 pending_->Detach(); | 514 pending_->Detach(); |
514 OnClientDetached(); | 515 OnClientDetached(); |
515 } | 516 } |
516 | 517 |
517 bool RenderFrameDevToolsAgentHost::DispatchProtocolMessage( | 518 bool RenderFrameDevToolsAgentHost::DispatchProtocolMessage( |
518 const std::string& message) { | 519 const std::string& message) { |
519 int call_id = 0; | 520 int call_id = 0; |
520 std::string method; | 521 std::string method; |
521 if (protocol_handler_->HandleOptionalMessage(session_id(), message, &call_id, | 522 if (protocol_handler_->HandleOptionalMessage(session()->session_id(), message, |
522 &method)) | 523 &call_id, &method)) |
523 return true; | 524 return true; |
524 | 525 |
525 if (!navigating_handles_.empty()) { | 526 if (!navigating_handles_.empty()) { |
526 DCHECK(IsBrowserSideNavigationEnabled()); | 527 DCHECK(IsBrowserSideNavigationEnabled()); |
527 in_navigation_protocol_message_buffer_[call_id] = | 528 in_navigation_protocol_message_buffer_[call_id] = |
528 { session_id(), method, message }; | 529 { session()->session_id(), method, message }; |
529 return true; | 530 return true; |
530 } | 531 } |
531 | 532 |
532 if (current_) | 533 if (current_) { |
533 current_->DispatchProtocolMessage(session_id(), call_id, method, message); | 534 current_->DispatchProtocolMessage( |
534 if (pending_) | 535 session()->session_id(), call_id, method, message); |
535 pending_->DispatchProtocolMessage(session_id(), call_id, method, message); | 536 } |
| 537 if (pending_) { |
| 538 pending_->DispatchProtocolMessage( |
| 539 session()->session_id(), call_id, method, message); |
| 540 } |
536 return true; | 541 return true; |
537 } | 542 } |
538 | 543 |
539 void RenderFrameDevToolsAgentHost::InspectElement(int x, int y) { | 544 void RenderFrameDevToolsAgentHost::InspectElement(int x, int y) { |
540 if (current_) | 545 if (current_) |
541 current_->InspectElement(session_id(), x, y); | 546 current_->InspectElement(session()->session_id(), x, y); |
542 if (pending_) | 547 if (pending_) |
543 pending_->InspectElement(session_id(), x, y); | 548 pending_->InspectElement(session()->session_id(), x, y); |
544 } | 549 } |
545 | 550 |
546 void RenderFrameDevToolsAgentHost::OnClientAttached() { | 551 void RenderFrameDevToolsAgentHost::OnClientAttached() { |
547 if (!web_contents()) | 552 if (!web_contents()) |
548 return; | 553 return; |
549 | 554 |
550 frame_trace_recorder_.reset(new DevToolsFrameTraceRecorder()); | 555 frame_trace_recorder_.reset(new DevToolsFrameTraceRecorder()); |
551 CreatePowerSaveBlocker(); | 556 CreatePowerSaveBlocker(); |
552 } | 557 } |
553 | 558 |
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1116 RenderFrameHost* host) { | 1121 RenderFrameHost* host) { |
1117 return (current_ && current_->host() == host) || | 1122 return (current_ && current_->host() == host) || |
1118 (pending_ && pending_->host() == host); | 1123 (pending_ && pending_->host() == host); |
1119 } | 1124 } |
1120 | 1125 |
1121 bool RenderFrameDevToolsAgentHost::IsChildFrame() { | 1126 bool RenderFrameDevToolsAgentHost::IsChildFrame() { |
1122 return current_ && current_->host()->GetParent(); | 1127 return current_ && current_->host()->GetParent(); |
1123 } | 1128 } |
1124 | 1129 |
1125 } // namespace content | 1130 } // namespace content |
OLD | NEW |