| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "headless/lib/browser/headless_browser_main_parts.h" |
| |
| #include "headless/lib/browser/headless_browser_context_impl.h" |
| #include "headless/lib/browser/headless_browser_impl.h" |
| #include "headless/lib/browser/headless_devtools.h" |
| #include "headless/lib/browser/headless_screen.h" |
| |
| namespace headless { |
| |
| HeadlessBrowserMainParts::HeadlessBrowserMainParts(HeadlessBrowserImpl* browser) |
| : browser_(browser) {} |
| |
| HeadlessBrowserMainParts::~HeadlessBrowserMainParts() = default; |
| |
| void HeadlessBrowserMainParts::PreMainMessageLoopRun() { |
| if (browser_->options()->DevtoolsServerEnabled()) { |
| StartLocalDevToolsHttpHandler(browser_->options()); |
| devtools_http_handler_started_ = true; |
| } |
| browser_->PlatformInitialize(); |
| } |
| |
| void HeadlessBrowserMainParts::PreDefaultMainMessageLoopRun( |
| base::OnceClosure quit_closure) { |
| quit_main_message_loop_ = std::move(quit_closure); |
| } |
| |
| void HeadlessBrowserMainParts::PostMainMessageLoopRun() { |
| if (devtools_http_handler_started_) { |
| StopLocalDevToolsHttpHandler(); |
| devtools_http_handler_started_ = false; |
| } |
| } |
| |
| void HeadlessBrowserMainParts::QuitMainMessageLoop() { |
| if (quit_main_message_loop_) |
| std::move(quit_main_message_loop_).Run(); |
| } |
| |
| } // namespace headless |