Index: headless/lib/browser/headless_browser_main_parts.cc |
diff --git a/headless/lib/browser/headless_browser_main_parts.cc b/headless/lib/browser/headless_browser_main_parts.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..176aa45dca7cfd724ee6f6ca9ca6378edebf5a00 |
--- /dev/null |
+++ b/headless/lib/browser/headless_browser_main_parts.cc |
@@ -0,0 +1,56 @@ |
+// 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_http_address.size() && |
+ browser_->options().devtools_http_port != |
+ HeadlessBrowser::Options::kInvalidPort) { |
+ 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 |