1 // Copyright (c) 2013 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_BROWSER_BROWSER_PROCESS_PLATFORM_PART_BASE_H_ 6 #define CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_BASE_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/scoped_ptr.h" 10 11 namespace base { 12 class CommandLine; 13 } 14 15 namespace policy { 16 class BrowserPolicyConnector; 17 } 18 19 // A base class for platform-specific BrowserProcessPlatformPart 20 // implementations. This class itself should never be used verbatim. 21 class BrowserProcessPlatformPartBase { 22 public: 23 BrowserProcessPlatformPartBase(); 24 virtual ~BrowserProcessPlatformPartBase(); 25 26 // Called after creating the process singleton or when another chrome 27 // rendez-vous with this one. 28 virtual void PlatformSpecificCommandLineProcessing( 29 const base::CommandLine& command_line); 30 31 // Called from BrowserProcessImpl::StartTearDown(). 32 virtual void StartTearDown(); 33 34 // Called from AttemptExitInternal(). 35 virtual void AttemptExit(); 36 37 // Called at the end of BrowserProcessImpl::PreMainMessageLoopRun(). 38 virtual void PreMainMessageLoopRun(); 39 40 #if defined(ENABLE_CONFIGURATION_POLICY) 41 virtual scoped_ptr<policy::BrowserPolicyConnector> 42 CreateBrowserPolicyConnector(); 43 #endif 44 45 private: 46 DISALLOW_COPY_AND_ASSIGN(BrowserProcessPlatformPartBase); 47 }; 48 49 #endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_BASE_H_ 50