blob: ac457478f52143b31af3fe04bf1d7c81632bc0bc [file] [log] [blame]
// 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