OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/shell/browser/shell_devtools_bindings.h" | 5 #include "content/shell/browser/shell_devtools_bindings.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 for (const auto& pair : pending_requests_) | 130 for (const auto& pair : pending_requests_) |
131 delete pair.first; | 131 delete pair.first; |
132 if (agent_host_) | 132 if (agent_host_) |
133 agent_host_->DetachClient(this); | 133 agent_host_->DetachClient(this); |
134 } | 134 } |
135 | 135 |
136 void ShellDevToolsBindings::ReadyToCommitNavigation( | 136 void ShellDevToolsBindings::ReadyToCommitNavigation( |
137 NavigationHandle* navigation_handle) { | 137 NavigationHandle* navigation_handle) { |
138 #if !defined(OS_ANDROID) | 138 #if !defined(OS_ANDROID) |
139 content::RenderFrameHost* frame = navigation_handle->GetRenderFrameHost(); | 139 content::RenderFrameHost* frame = navigation_handle->GetRenderFrameHost(); |
140 if (!frame->GetParent()) | 140 if (navigation_handle->IsInMainFrame()) { |
| 141 frontend_host_.reset(DevToolsFrontendHost::Create( |
| 142 frame, |
| 143 base::Bind(&ShellDevToolsBindings::HandleMessageFromDevToolsFrontend, |
| 144 base::Unretained(this)))); |
141 return; | 145 return; |
| 146 } |
142 std::string origin = navigation_handle->GetURL().GetOrigin().spec(); | 147 std::string origin = navigation_handle->GetURL().GetOrigin().spec(); |
143 auto it = extensions_api_.find(origin); | 148 auto it = extensions_api_.find(origin); |
144 if (it == extensions_api_.end()) | 149 if (it == extensions_api_.end()) |
145 return; | 150 return; |
146 std::string script = base::StringPrintf("%s(\"%s\")", it->second.c_str(), | 151 std::string script = base::StringPrintf("%s(\"%s\")", it->second.c_str(), |
147 base::GenerateGUID().c_str()); | 152 base::GenerateGUID().c_str()); |
148 DevToolsFrontendHost::SetupExtensionsAPI(frame, script); | 153 DevToolsFrontendHost::SetupExtensionsAPI(frame, script); |
149 #endif | 154 #endif |
150 } | 155 } |
151 | 156 |
152 void ShellDevToolsBindings::RenderViewCreated( | |
153 RenderViewHost* render_view_host) { | |
154 CreateFrontendHost(); | |
155 } | |
156 | |
157 #if !defined(OS_ANDROID) | |
158 void ShellDevToolsBindings::CreateFrontendHost() { | |
159 if (!frontend_host_) { | |
160 frontend_host_.reset(DevToolsFrontendHost::Create( | |
161 web_contents()->GetMainFrame(), | |
162 base::Bind(&ShellDevToolsBindings::HandleMessageFromDevToolsFrontend, | |
163 base::Unretained(this)))); | |
164 } | |
165 } | |
166 #endif | |
167 | |
168 #if defined(OS_ANDROID) | |
169 void ShellDevToolsBindings::CreateFrontendHost() {} | |
170 #endif | |
171 | |
172 void ShellDevToolsBindings::DocumentAvailableInMainFrame() { | 157 void ShellDevToolsBindings::DocumentAvailableInMainFrame() { |
173 agent_host_ = DevToolsAgentHost::GetOrCreateFor(inspected_contents_); | 158 agent_host_ = DevToolsAgentHost::GetOrCreateFor(inspected_contents_); |
174 agent_host_->AttachClient(this); | 159 agent_host_->AttachClient(this); |
175 if (inspect_element_at_x_ != -1) { | 160 if (inspect_element_at_x_ != -1) { |
176 agent_host_->InspectElement(this, inspect_element_at_x_, | 161 agent_host_->InspectElement(this, inspect_element_at_x_, |
177 inspect_element_at_y_); | 162 inspect_element_at_y_); |
178 inspect_element_at_x_ = -1; | 163 inspect_element_at_x_ = -1; |
179 inspect_element_at_y_ = -1; | 164 inspect_element_at_y_ = -1; |
180 } | 165 } |
181 } | 166 } |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 } | 381 } |
397 | 382 |
398 void ShellDevToolsBindings::AgentHostClosed(DevToolsAgentHost* agent_host, | 383 void ShellDevToolsBindings::AgentHostClosed(DevToolsAgentHost* agent_host, |
399 bool replaced) { | 384 bool replaced) { |
400 agent_host_ = nullptr; | 385 agent_host_ = nullptr; |
401 if (delegate_) | 386 if (delegate_) |
402 delegate_->Close(); | 387 delegate_->Close(); |
403 } | 388 } |
404 | 389 |
405 } // namespace content | 390 } // namespace content |
OLD | NEW |