1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_MAIN_DELEGATE_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_MAIN_DELEGATE_H_
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace content {
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class BrowserContext;
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace extensions {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass DesktopController;
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class ShellBrowserMainDelegate {
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public:
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual ~ShellBrowserMainDelegate() {}
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Called to start an application after all initialization processes that are
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // necesary to run apps are completed.
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void Start(content::BrowserContext* context) = 0;
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Called after the main message looop has stopped, but before
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // other services such as BrowserContext / extension system are shut down.
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void Shutdown() = 0;
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // Creates the ShellDesktopController instance to initialize the root window
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // and window manager. Subclass may return its subclass to customize the
3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // windo manager.
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual DesktopController* CreateDesktopController() = 0;
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}  // namespace extensions
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // EXTENSIONS_SHELL_BROWSER_SHELL_BROWSER_MAIN_DELEGATE_H_
37