|  | // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_MAIN_DELEGATE_H_ | 
|  | #define EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_MAIN_DELEGATE_H_ | 
|  |  | 
|  | namespace content { | 
|  | class BrowserContext; | 
|  | } | 
|  |  | 
|  | namespace extensions { | 
|  |  | 
|  | class DesktopController; | 
|  |  | 
|  | class ShellBrowserMainDelegate { | 
|  | public: | 
|  | virtual ~ShellBrowserMainDelegate() {} | 
|  |  | 
|  | // Called to start an application after all initialization processes that are | 
|  | // necesary to run apps are completed. | 
|  | virtual void Start(content::BrowserContext* context) = 0; | 
|  |  | 
|  | // Called after the main message looop has stopped, but before | 
|  | // other services such as BrowserContext / extension system are shut down. | 
|  | virtual void Shutdown() = 0; | 
|  |  | 
|  | // Creates the ShellDesktopControllerAura instance to initialize the root | 
|  | // window and window manager. Subclass may return its subclass to customize | 
|  | // the window manager. | 
|  | virtual DesktopController* CreateDesktopController() = 0; | 
|  | }; | 
|  |  | 
|  | }  // namespace extensions | 
|  |  | 
|  | #endif  // EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_MAIN_DELEGATE_H_ |