1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMECAST_APP_CAST_MAIN_DELEGATE_H_
6 #define CHROMECAST_APP_CAST_MAIN_DELEGATE_H_
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "chromecast/common/cast_content_client.h"
11 #include "content/public/app/content_main_delegate.h"
14 class BrowserMainRunner
;
15 } // namespace content
17 namespace chromecast
{
19 class CastResourceDelegate
;
23 class CastContentBrowserClient
;
24 class CastContentRendererClient
;
26 class CastMainDelegate
: public content::ContentMainDelegate
{
29 virtual ~CastMainDelegate();
31 // content::ContentMainDelegate implementation:
32 virtual bool BasicStartupComplete(int* exit_code
) override
;
33 virtual void PreSandboxStartup() override
;
34 virtual int RunProcess(
35 const std::string
& process_type
,
36 const content::MainFunctionParams
& main_function_params
) override
;
37 #if !defined(OS_ANDROID)
38 virtual void ZygoteForked() override
;
39 #endif // !defined(OS_ANDROID)
40 virtual content::ContentBrowserClient
* CreateContentBrowserClient() override
;
41 virtual content::ContentRendererClient
*
42 CreateContentRendererClient() override
;
45 void InitializeResourceBundle();
47 scoped_ptr
<CastContentBrowserClient
> browser_client_
;
48 scoped_ptr
<CastContentRendererClient
> renderer_client_
;
49 scoped_ptr
<CastResourceDelegate
> resource_delegate_
;
50 CastContentClient content_client_
;
52 #if defined(OS_ANDROID)
53 scoped_ptr
<content::BrowserMainRunner
> browser_runner_
;
54 #endif // defined(OS_ANDROID)
56 DISALLOW_COPY_AND_ASSIGN(CastMainDelegate
);
60 } // namespace chromecast
62 #endif // CHROMECAST_APP_CAST_MAIN_DELEGATE_H_