Home | History | Annotate | Download | only in renderer
      1 // Copyright (c) 2012 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_RENDERER_RENDERER_MAIN_PLATFORM_DELEGATE_H_
      6 #define CHROME_RENDERER_RENDERER_MAIN_PLATFORM_DELEGATE_H_
      7 
      8 #include "build/build_config.h"
      9 
     10 #if defined(OS_WIN)
     11 #include <windows.h>
     12 #endif
     13 
     14 #include "base/basictypes.h"
     15 #include "content/common/content_export.h"
     16 #include "content/public/common/main_function_params.h"
     17 
     18 #ifdef __OBJC__
     19 @class NSBundle;
     20 #else
     21 class NSBundle;
     22 #endif  // __OBJC__
     23 
     24 namespace content {
     25 
     26 class CONTENT_EXPORT RendererMainPlatformDelegate {
     27  public:
     28   explicit RendererMainPlatformDelegate(
     29       const MainFunctionParams& parameters);
     30   ~RendererMainPlatformDelegate();
     31 
     32   // Called first thing and last thing in the process' lifecycle, i.e. before
     33   // the sandbox is enabled.
     34   void PlatformInitialize();
     35   void PlatformUninitialize();
     36 
     37   // Initiate Lockdown, returns true on success.
     38   bool EnableSandbox();
     39 
     40  private:
     41   const MainFunctionParams& parameters_;
     42 #if defined(OS_WIN)
     43   HMODULE sandbox_test_module_;
     44 #elif defined(OS_MACOSX)
     45   NSBundle* sandbox_tests_bundle_;
     46 #endif
     47 
     48   DISALLOW_COPY_AND_ASSIGN(RendererMainPlatformDelegate);
     49 };
     50 
     51 }  // namespace content
     52 
     53 #endif  // CHROME_RENDERER_RENDERER_MAIN_PLATFORM_DELEGATE_H_
     54