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