Index: headless/lib/headless_main_delegate.h |
diff --git a/headless/lib/headless_main_delegate.h b/headless/lib/headless_main_delegate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..28134d794fc6cc56ee8f630e92ae60bdf4a073b3 |
--- /dev/null |
+++ b/headless/lib/headless_main_delegate.h |
@@ -0,0 +1,50 @@ |
+// 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_MAIN_DELEGATE_H_ |
+#define HEADLESS_LIB_HEADLESS_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/headless_export.h" |
+ |
+namespace headless { |
+class HeadlessContentClient; |
+class HeadlessContentBrowserClient; |
+class HeadlessContentRendererClient; |
+class HeadlessContentUtilityClient; |
+ |
+class HEADLESS_EXPORT HeadlessMainDelegate |
+ : public content::ContentMainDelegate { |
+ public: |
+ HeadlessMainDelegate(); |
+ ~HeadlessMainDelegate() override; |
+ |
+ // 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; |
+ |
+ private: |
+ static void InitializeResourceBundle(); |
+ |
+ scoped_ptr<HeadlessContentClient> content_client_; |
+ scoped_ptr<HeadlessContentBrowserClient> browser_client_; |
+ scoped_ptr<HeadlessContentRendererClient> renderer_client_; |
+ scoped_ptr<HeadlessContentUtilityClient> utility_client_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(HeadlessMainDelegate); |
+}; |
+ |
+} // namespace headless |
+ |
+#endif // HEADLESS_LIB_HEADLESS_MAIN_DELEGATE_H_ |