1 // Copyright 2014 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.
5 #ifndef CHROME_BROWSER_UI_APPS_CHROME_APPS_CLIENT_H_
6 #define CHROME_BROWSER_UI_APPS_CHROME_APPS_CLIENT_H_
8 #include "apps/ui/apps_client.h"
9 #include "base/basictypes.h"
10 #include "base/compiler_specific.h"
13 struct DefaultSingletonTraits;
15 // The implementation of AppsClient for Chrome.
16 class ChromeAppsClient : public apps::AppsClient {
19 virtual ~ChromeAppsClient();
21 // Get the LazyInstance for ChromeAppsClient.
22 static ChromeAppsClient* GetInstance();
25 friend struct DefaultSingletonTraits<ChromeAppsClient>;
28 virtual std::vector<content::BrowserContext*> GetLoadedBrowserContexts()
30 virtual apps::AppWindow* CreateAppWindow(
31 content::BrowserContext* context,
32 const extensions::Extension* extension) OVERRIDE;
33 virtual apps::NativeAppWindow* CreateNativeAppWindow(
34 apps::AppWindow* window,
35 const apps::AppWindow::CreateParams& params) OVERRIDE;
36 virtual void IncrementKeepAliveCount() OVERRIDE;
37 virtual void DecrementKeepAliveCount() OVERRIDE;
39 // Implemented in platform specific code.
40 static apps::NativeAppWindow* CreateNativeAppWindowImpl(
41 apps::AppWindow* window,
42 const apps::AppWindow::CreateParams& params);
44 DISALLOW_COPY_AND_ASSIGN(ChromeAppsClient);
47 #endif // CHROME_BROWSER_UI_APPS_CHROME_APPS_CLIENT_H_