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

Side by Side Diff: headless/lib/browser/headless_web_contents_impl.cc

Issue 2863953003: Headless: Remove obsolete Mojo code and some other obsolete APIs (Closed)
Patch Set: Rebased 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "headless/lib/browser/headless_web_contents_impl.h" 5 #include "headless/lib/browser/headless_web_contents_impl.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 return; 127 return;
128 } 128 }
129 } 129 }
130 } 130 }
131 131
132 private: 132 private:
133 HeadlessBrowserContextImpl* browser_context_; // Not owned. 133 HeadlessBrowserContextImpl* browser_context_; // Not owned.
134 DISALLOW_COPY_AND_ASSIGN(Delegate); 134 DISALLOW_COPY_AND_ASSIGN(Delegate);
135 }; 135 };
136 136
137 namespace {
138 void ForwardToServiceFactory(
139 const base::Callback<void(mojo::InterfaceRequest<TabSocket>)>&
140 service_factory,
141 mojo::ScopedMessagePipeHandle handle) {
142 service_factory.Run(mojo::MakeRequest<TabSocket>(std::move(handle)));
143 }
144 } // namespace
145
137 // static 146 // static
138 std::unique_ptr<HeadlessWebContentsImpl> HeadlessWebContentsImpl::Create( 147 std::unique_ptr<HeadlessWebContentsImpl> HeadlessWebContentsImpl::Create(
139 HeadlessWebContents::Builder* builder) { 148 HeadlessWebContents::Builder* builder) {
140 content::WebContents::CreateParams create_params(builder->browser_context_, 149 content::WebContents::CreateParams create_params(builder->browser_context_,
141 nullptr); 150 nullptr);
142 create_params.initial_size = builder->window_size_; 151 create_params.initial_size = builder->window_size_;
143 152
144 std::unique_ptr<HeadlessWebContentsImpl> headless_web_contents = 153 std::unique_ptr<HeadlessWebContentsImpl> headless_web_contents =
145 base::WrapUnique(new HeadlessWebContentsImpl( 154 base::WrapUnique(new HeadlessWebContentsImpl(
146 content::WebContents::Create(create_params), 155 content::WebContents::Create(create_params),
147 builder->browser_context_)); 156 builder->browser_context_));
148 157
149 if (builder->create_tab_socket_) { 158 if (builder->create_tab_socket_) {
150 headless_web_contents->headless_tab_socket_ = 159 headless_web_contents->headless_tab_socket_ =
151 base::MakeUnique<HeadlessTabSocketImpl>(); 160 base::MakeUnique<HeadlessTabSocketImpl>();
152 builder->AddMojoService(base::Bind( 161
153 &HeadlessTabSocketImpl::CreateMojoService, 162 builder->mojo_services_.emplace_back(
154 base::Unretained(headless_web_contents->headless_tab_socket_.get()))); 163 TabSocket::Name_,
164 base::Bind(
165 &ForwardToServiceFactory,
166 base::Bind(
167 &HeadlessTabSocketImpl::CreateMojoService,
168 base::Unretained(
169 headless_web_contents->headless_tab_socket_.get()))));
155 } 170 }
156 171
157 headless_web_contents->mojo_services_ = std::move(builder->mojo_services_); 172 headless_web_contents->mojo_services_ = std::move(builder->mojo_services_);
158 headless_web_contents->InitializeScreen(builder->window_size_); 173 headless_web_contents->InitializeScreen(builder->window_size_);
159 if (!headless_web_contents->OpenURL(builder->initial_url_)) 174 if (!headless_web_contents->OpenURL(builder->initial_url_))
160 return nullptr; 175 return nullptr;
161 return headless_web_contents; 176 return headless_web_contents;
162 } 177 }
163 178
164 // static 179 // static
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 227
213 for (const MojoService& service : mojo_services_) { 228 for (const MojoService& service : mojo_services_) {
214 interface_registry->AddInterface(service.service_name, 229 interface_registry->AddInterface(service.service_name,
215 service.service_factory, 230 service.service_factory,
216 browser()->BrowserMainThread()); 231 browser()->BrowserMainThread());
217 } 232 }
218 233
219 browser_context_->SetFrameTreeNodeId(render_frame_host->GetProcess()->GetID(), 234 browser_context_->SetFrameTreeNodeId(render_frame_host->GetProcess()->GetID(),
220 render_frame_host->GetRoutingID(), 235 render_frame_host->GetRoutingID(),
221 render_frame_host->GetFrameTreeNodeId()); 236 render_frame_host->GetFrameTreeNodeId());
222
223 std::string devtools_agent_host_id =
224 content::DevToolsAgentHost::GetOrCreateFor(render_frame_host)->GetId();
225 render_frame_host_to_devtools_agent_host_id_[render_frame_host] =
226 devtools_agent_host_id;
227 devtools_agent_id_to_frame_tree_node_id_[devtools_agent_host_id] =
228 render_frame_host->GetFrameTreeNodeId();
229 } 237 }
230 238
231 void HeadlessWebContentsImpl::RenderFrameDeleted( 239 void HeadlessWebContentsImpl::RenderFrameDeleted(
232 content::RenderFrameHost* render_frame_host) { 240 content::RenderFrameHost* render_frame_host) {
233 browser_context_->RemoveFrameTreeNode( 241 browser_context_->RemoveFrameTreeNode(
234 render_frame_host->GetProcess()->GetID(), 242 render_frame_host->GetProcess()->GetID(),
235 render_frame_host->GetRoutingID()); 243 render_frame_host->GetRoutingID());
236
237 auto find_it =
238 render_frame_host_to_devtools_agent_host_id_.find(render_frame_host);
239 if (find_it == render_frame_host_to_devtools_agent_host_id_.end())
240 return;
241
242 devtools_agent_id_to_frame_tree_node_id_.erase(find_it->second);
243 render_frame_host_to_devtools_agent_host_id_.erase(find_it);
244 }
245
246 bool HeadlessWebContentsImpl::GetFrameTreeNodeIdForDevToolsAgentHostId(
247 const std::string& devtools_agent_host_id,
248 int* frame_tree_node_id) const {
249 const auto& find_it =
250 devtools_agent_id_to_frame_tree_node_id_.find(devtools_agent_host_id);
251 if (find_it == devtools_agent_id_to_frame_tree_node_id_.end())
252 return false;
253 *frame_tree_node_id = find_it->second;
254 return true;
255 } 244 }
256 245
257 std::string 246 std::string
258 HeadlessWebContentsImpl::GetUntrustedDevToolsFrameIdForFrameTreeNodeId( 247 HeadlessWebContentsImpl::GetUntrustedDevToolsFrameIdForFrameTreeNodeId(
259 int process_id, 248 int process_id,
260 int frame_tree_node_id) const { 249 int frame_tree_node_id) const {
261 return content::DevToolsAgentHost:: 250 return content::DevToolsAgentHost::
262 GetUntrustedDevToolsFrameIdForFrameTreeNodeId(process_id, 251 GetUntrustedDevToolsFrameIdForFrameTreeNodeId(process_id,
263 frame_tree_node_id); 252 frame_tree_node_id);
264 } 253 }
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 initial_url_ = initial_url; 374 initial_url_ = initial_url;
386 return *this; 375 return *this;
387 } 376 }
388 377
389 HeadlessWebContents::Builder& HeadlessWebContents::Builder::SetWindowSize( 378 HeadlessWebContents::Builder& HeadlessWebContents::Builder::SetWindowSize(
390 const gfx::Size& size) { 379 const gfx::Size& size) {
391 window_size_ = size; 380 window_size_ = size;
392 return *this; 381 return *this;
393 } 382 }
394 383
395 HeadlessWebContents::Builder& HeadlessWebContents::Builder::AddMojoService(
396 const std::string& service_name,
397 const base::Callback<void(mojo::ScopedMessagePipeHandle)>&
398 service_factory) {
399 mojo_services_.emplace_back(service_name, service_factory);
400 return *this;
401 }
402
403 HeadlessWebContents::Builder& HeadlessWebContents::Builder::CreateTabSocket( 384 HeadlessWebContents::Builder& HeadlessWebContents::Builder::CreateTabSocket(
404 bool create_tab_socket) { 385 bool create_tab_socket) {
405 create_tab_socket_ = create_tab_socket; 386 create_tab_socket_ = create_tab_socket;
406 return *this; 387 return *this;
407 } 388 }
408 389
409 HeadlessWebContents* HeadlessWebContents::Builder::Build() { 390 HeadlessWebContents* HeadlessWebContents::Builder::Build() {
410 return browser_context_->CreateWebContents(this); 391 return browser_context_->CreateWebContents(this);
411 } 392 }
412 393
413 HeadlessWebContents::Builder::MojoService::MojoService() {} 394 HeadlessWebContents::Builder::MojoService::MojoService() {}
414 395
415 HeadlessWebContents::Builder::MojoService::MojoService( 396 HeadlessWebContents::Builder::MojoService::MojoService(
416 const std::string& service_name, 397 const std::string& service_name,
417 const base::Callback<void(mojo::ScopedMessagePipeHandle)>& service_factory) 398 const base::Callback<void(mojo::ScopedMessagePipeHandle)>& service_factory)
418 : service_name(service_name), service_factory(service_factory) {} 399 : service_name(service_name), service_factory(service_factory) {}
419 400
420 HeadlessWebContents::Builder::MojoService::~MojoService() {} 401 HeadlessWebContents::Builder::MojoService::~MojoService() {}
421 402
422 } // namespace headless 403 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_web_contents_impl.h ('k') | headless/lib/embedder_mojo_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698