Home | History | Annotate | Download | only in app
      1 // Copyright (c) 2011 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.
      4 
      5 #ifndef CHROME_APP_CHROME_MAIN_DELEGATE_H_
      6 #define CHROME_APP_CHROME_MAIN_DELEGATE_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 #include "base/metrics/stats_counters.h"
     10 #include "chrome/common/chrome_content_client.h"
     11 #include "content/public/app/content_main_delegate.h"
     12 
     13 // Chrome implementation of ContentMainDelegate.
     14 class ChromeMainDelegate : public content::ContentMainDelegate {
     15  public:
     16   ChromeMainDelegate();
     17   virtual ~ChromeMainDelegate();
     18 
     19  protected:
     20   // content::ContentMainDelegate implementation:
     21   virtual bool BasicStartupComplete(int* exit_code) OVERRIDE;
     22   virtual void PreSandboxStartup() OVERRIDE;
     23   virtual void SandboxInitialized(const std::string& process_type) OVERRIDE;
     24   virtual int RunProcess(
     25       const std::string& process_type,
     26       const content::MainFunctionParams& main_function_params) OVERRIDE;
     27   virtual void ProcessExiting(const std::string& process_type) OVERRIDE;
     28 #if defined(OS_MACOSX)
     29   virtual bool ProcessRegistersWithSystemProcess(
     30       const std::string& process_type) OVERRIDE;
     31   virtual bool ShouldSendMachPort(const std::string& process_type) OVERRIDE;
     32   virtual bool DelaySandboxInitialization(
     33       const std::string& process_type) OVERRIDE;
     34 #elif defined(OS_POSIX) && !defined(OS_ANDROID)
     35   virtual content::ZygoteForkDelegate* ZygoteStarting() OVERRIDE;
     36   virtual void ZygoteForked() OVERRIDE;
     37 #endif
     38   virtual content::ContentBrowserClient* CreateContentBrowserClient() OVERRIDE;
     39   virtual content::ContentPluginClient* CreateContentPluginClient() OVERRIDE;
     40   virtual content::ContentRendererClient*
     41       CreateContentRendererClient() OVERRIDE;
     42   virtual content::ContentUtilityClient* CreateContentUtilityClient() OVERRIDE;
     43 
     44 #if defined(OS_MACOSX)
     45   void InitMacCrashReporter(const CommandLine& command_line,
     46                             const std::string& process_type);
     47 #endif  // defined(OS_MACOSX)
     48 
     49   chrome::ChromeContentClient chrome_content_client_;
     50   scoped_ptr<base::StatsScope<base::StatsCounterTimer> > startup_timer_;
     51   scoped_ptr<base::StatsCounterTimer> stats_counter_timer_;
     52 
     53   DISALLOW_COPY_AND_ASSIGN(ChromeMainDelegate);
     54 };
     55 
     56 #endif  // CHROME_APP_CHROME_MAIN_DELEGATE_H_
     57