blob: c85ba353244a75b71d3fd845ac923c7666eca8d7 [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 "components/devtools_http_handler/devtools_http_handler.h"
#include "headless/lib/browser/headless_browser_context.h"
#include "headless/lib/browser/headless_browser_impl.h"
#include "headless/lib/browser/headless_devtools.h"
#include "headless/lib/browser/headless_screen.h"
#include "ui/aura/env.h"
#include "ui/gfx/screen.h"
namespace headless {
namespace {
void PlatformInitialize() {
HeadlessScreen* screen = HeadlessScreen::Create(gfx::Size());
gfx::Screen::SetScreenInstance(screen);
}
void PlatformExit() {
aura::Env::DeleteInstance();
}
} // namespace
HeadlessBrowserMainParts::HeadlessBrowserMainParts(HeadlessBrowserImpl* browser)
: browser_(browser) {}
HeadlessBrowserMainParts::~HeadlessBrowserMainParts() {}
void HeadlessBrowserMainParts::PreMainMessageLoopRun() {
browser_context_.reset(new HeadlessBrowserContext(browser_->options()));
if (browser_->options().devtools_endpoint.address().IsValid()) {
devtools_http_handler_ =
CreateLocalDevToolsHttpHandler(browser_context_.get());
}
PlatformInitialize();
}
void HeadlessBrowserMainParts::PostMainMessageLoopRun() {
browser_context_.reset();
devtools_http_handler_.reset();
PlatformExit();
}
HeadlessBrowserContext* HeadlessBrowserMainParts::browser_context() const {
return browser_context_.get();
}
} // namespace headless