| OLD | NEW |
| 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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 new HeadlessWebContentsImpl::Delegate(browser_context)), | 185 new HeadlessWebContentsImpl::Delegate(browser_context)), |
| 186 web_contents_(web_contents), | 186 web_contents_(web_contents), |
| 187 agent_host_(content::DevToolsAgentHost::GetOrCreateFor(web_contents)), | 187 agent_host_(content::DevToolsAgentHost::GetOrCreateFor(web_contents)), |
| 188 browser_context_(browser_context), | 188 browser_context_(browser_context), |
| 189 render_process_host_(web_contents->GetRenderProcessHost()) { | 189 render_process_host_(web_contents->GetRenderProcessHost()) { |
| 190 #if BUILDFLAG(ENABLE_BASIC_PRINTING) | 190 #if BUILDFLAG(ENABLE_BASIC_PRINTING) |
| 191 printing::HeadlessPrintManager::CreateForWebContents(web_contents); | 191 printing::HeadlessPrintManager::CreateForWebContents(web_contents); |
| 192 #endif | 192 #endif |
| 193 web_contents_->SetDelegate(web_contents_delegate_.get()); | 193 web_contents_->SetDelegate(web_contents_delegate_.get()); |
| 194 render_process_host_->AddObserver(this); | 194 render_process_host_->AddObserver(this); |
| 195 agent_host_->AddObserver(this); |
| 195 } | 196 } |
| 196 | 197 |
| 197 HeadlessWebContentsImpl::~HeadlessWebContentsImpl() { | 198 HeadlessWebContentsImpl::~HeadlessWebContentsImpl() { |
| 199 agent_host_->RemoveObserver(this); |
| 198 if (render_process_host_) | 200 if (render_process_host_) |
| 199 render_process_host_->RemoveObserver(this); | 201 render_process_host_->RemoveObserver(this); |
| 200 } | 202 } |
| 201 | 203 |
| 202 void HeadlessWebContentsImpl::RenderFrameCreated( | 204 void HeadlessWebContentsImpl::RenderFrameCreated( |
| 203 content::RenderFrameHost* render_frame_host) { | 205 content::RenderFrameHost* render_frame_host) { |
| 204 if (!mojo_services_.empty()) { | 206 if (!mojo_services_.empty()) { |
| 205 render_frame_host->AllowBindings(content::BINDINGS_POLICY_HEADLESS); | 207 render_frame_host->AllowBindings(content::BINDINGS_POLICY_HEADLESS); |
| 206 } | 208 } |
| 207 | 209 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 observer_map_[observer] = base::MakeUnique<WebContentsObserverAdapter>( | 272 observer_map_[observer] = base::MakeUnique<WebContentsObserverAdapter>( |
| 271 web_contents_.get(), observer); | 273 web_contents_.get(), observer); |
| 272 } | 274 } |
| 273 | 275 |
| 274 void HeadlessWebContentsImpl::RemoveObserver(Observer* observer) { | 276 void HeadlessWebContentsImpl::RemoveObserver(Observer* observer) { |
| 275 ObserverMap::iterator it = observer_map_.find(observer); | 277 ObserverMap::iterator it = observer_map_.find(observer); |
| 276 DCHECK(it != observer_map_.end()); | 278 DCHECK(it != observer_map_.end()); |
| 277 observer_map_.erase(it); | 279 observer_map_.erase(it); |
| 278 } | 280 } |
| 279 | 281 |
| 282 void HeadlessWebContentsImpl::DevToolsAgentHostAttached( |
| 283 content::DevToolsAgentHost* agent_host) { |
| 284 for (const auto& pair : observer_map_) { |
| 285 pair.second->observer()->DevToolsClientAttached(); |
| 286 } |
| 287 } |
| 288 |
| 289 void HeadlessWebContentsImpl::DevToolsAgentHostDetached( |
| 290 content::DevToolsAgentHost* agent_host) { |
| 291 for (const auto& pair : observer_map_) { |
| 292 pair.second->observer()->DevToolsClientDetached(); |
| 293 } |
| 294 } |
| 295 |
| 280 void HeadlessWebContentsImpl::RenderProcessExited( | 296 void HeadlessWebContentsImpl::RenderProcessExited( |
| 281 content::RenderProcessHost* host, | 297 content::RenderProcessHost* host, |
| 282 base::TerminationStatus status, | 298 base::TerminationStatus status, |
| 283 int exit_code) { | 299 int exit_code) { |
| 284 DCHECK_EQ(render_process_host_, host); | 300 DCHECK_EQ(render_process_host_, host); |
| 285 for (const auto& pair : observer_map_) { | 301 for (const auto& pair : observer_map_) { |
| 286 pair.second->observer()->RenderProcessExited(status, exit_code); | 302 pair.second->observer()->RenderProcessExited(status, exit_code); |
| 287 } | 303 } |
| 288 } | 304 } |
| 289 | 305 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 HeadlessWebContents::Builder::MojoService::MojoService() {} | 392 HeadlessWebContents::Builder::MojoService::MojoService() {} |
| 377 | 393 |
| 378 HeadlessWebContents::Builder::MojoService::MojoService( | 394 HeadlessWebContents::Builder::MojoService::MojoService( |
| 379 const std::string& service_name, | 395 const std::string& service_name, |
| 380 const base::Callback<void(mojo::ScopedMessagePipeHandle)>& service_factory) | 396 const base::Callback<void(mojo::ScopedMessagePipeHandle)>& service_factory) |
| 381 : service_name(service_name), service_factory(service_factory) {} | 397 : service_name(service_name), service_factory(service_factory) {} |
| 382 | 398 |
| 383 HeadlessWebContents::Builder::MojoService::~MojoService() {} | 399 HeadlessWebContents::Builder::MojoService::~MojoService() {} |
| 384 | 400 |
| 385 } // namespace headless | 401 } // namespace headless |
| OLD | NEW |