Chromium Code Reviews| Index: extensions/shell/browser/desktop_controller.h |
| diff --git a/extensions/shell/browser/desktop_controller.h b/extensions/shell/browser/desktop_controller.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ab70be8753e7d048898596e4a1bd82908d4ffd11 |
| --- /dev/null |
| +++ b/extensions/shell/browser/desktop_controller.h |
| @@ -0,0 +1,48 @@ |
| +// 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_DESKTOP_CONTROLLER_H_ |
| +#define EXTENSIONS_SHELL_BROWSER_DESKTOP_CONTROLLER_H_ |
| + |
| +namespace aura { |
| +class WindowTreeHost; |
| +} |
| + |
| +namespace content { |
| +class BrowserContext; |
| +} |
| + |
| +namespace extensions { |
| +class Extension; |
| +class ShellAppWindow; |
| + |
| +// DesktopController is an interface to construct the window environment in |
| +// extensions shell. ShellDesktopController provides a default implementation for |
|
James Cook
2014/08/25 17:35:45
nit: line length? codereview is wrapping the line
oshima
2014/08/25 19:06:53
Done.
|
| +// app_shell, and embedder (such as athena) can provide its own. |
| +class DesktopController { |
| + public: |
| + DesktopController(); |
| + virtual ~DesktopController(); |
| + |
| + // Returns the single instance of the desktop. (Stateless functions like |
| + // ShellAppWindowCreateFunction need to be able to access the desktop, so |
| + // we need a singleton somewhere). |
| + static DesktopController* instance(); |
| + |
| + // Returns the WindowTreeHost created by this DesktopController. |
| + virtual aura::WindowTreeHost* GetHost() = 0; |
| + |
| + // Creates a new app window and adds it to the desktop. The desktop maintains |
| + // ownership of the window. The window must be closed before |extension| is |
| + // destroyed. |
| + virtual ShellAppWindow* CreateAppWindow(content::BrowserContext* context, |
| + const Extension* extension) = 0; |
| + |
| + // Closes and destroys the app windows. |
| + virtual void CloseAppWindows() = 0; |
| +}; |
| + |
| +} // namespace extensinos |
| + |
| +#endif // EXTENSIONS_SHELL_BROWSER_DESKTOP_CONTROLLER_H_ |