Index: headless/lib/headless_content_main_delegate.h |
diff --git a/headless/lib/headless_content_main_delegate.h b/headless/lib/headless_content_main_delegate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b829d0e2ab2bd5cb0f68fb83afd56a6623d57c1c |
--- /dev/null |
+++ b/headless/lib/headless_content_main_delegate.h |
@@ -0,0 +1,62 @@ |
+// 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. |
+ |
+#ifndef HEADLESS_LIB_HEADLESS_CONTENT_MAIN_DELEGATE_H_ |
+#define HEADLESS_LIB_HEADLESS_CONTENT_MAIN_DELEGATE_H_ |
+ |
+#include "base/compiler_specific.h" |
+#include "base/macros.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "content/public/app/content_main_delegate.h" |
+#include "headless/lib/headless_content_client.h" |
+ |
+namespace content { |
+class BrowserContext; |
+} |
+ |
+namespace headless { |
+ |
+class HeadlessBrowserImpl; |
+class HeadlessContentBrowserClient; |
+class HeadlessContentUtilityClient; |
+class HeadlessContentRendererClient; |
+ |
+class HeadlessContentMainDelegate : public content::ContentMainDelegate { |
+ public: |
+ explicit HeadlessContentMainDelegate(scoped_ptr<HeadlessBrowserImpl> browser); |
+ ~HeadlessContentMainDelegate() override; |
+ |
+ // content::ContentMainDelegate implementation: |
+ bool BasicStartupComplete(int* exit_code) override; |
+ void PreSandboxStartup() override; |
+ int RunProcess( |
+ const std::string& process_type, |
+ const content::MainFunctionParams& main_function_params) override; |
+ void ZygoteForked() override; |
+ content::ContentBrowserClient* CreateContentBrowserClient() override; |
+ content::ContentRendererClient* CreateContentRendererClient() override; |
+ content::ContentUtilityClient* CreateContentUtilityClient() override; |
+ |
+ HeadlessBrowserImpl* browser() const { return browser_.get(); } |
+ |
+ private: |
+ friend class HeadlessBrowserTest; |
+ |
+ static void InitializeResourceBundle(); |
+ |
+ static HeadlessContentMainDelegate* GetInstance(); |
+ |
+ scoped_ptr<HeadlessContentBrowserClient> browser_client_; |
+ scoped_ptr<HeadlessContentRendererClient> renderer_client_; |
+ scoped_ptr<HeadlessContentUtilityClient> utility_client_; |
+ HeadlessContentClient content_client_; |
+ |
+ scoped_ptr<HeadlessBrowserImpl> browser_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(HeadlessContentMainDelegate); |
+}; |
+ |
+} // namespace headless |
+ |
+#endif // HEADLESS_LIB_HEADLESS_CONTENT_MAIN_DELEGATE_H_ |