• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_UI_APPS_CHROME_APP_WINDOW_CLIENT_H_
6 #define CHROME_BROWSER_UI_APPS_CHROME_APP_WINDOW_CLIENT_H_
7 
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "extensions/browser/app_window/app_window_client.h"
11 
12 template <typename T>
13 struct DefaultSingletonTraits;
14 
15 // The implementation of AppWindowClient for Chrome.
16 class ChromeAppWindowClient : public extensions::AppWindowClient {
17  public:
18   ChromeAppWindowClient();
19   virtual ~ChromeAppWindowClient();
20 
21   // Get the LazyInstance for ChromeAppWindowClient.
22   static ChromeAppWindowClient* GetInstance();
23 
24  private:
25   friend struct DefaultSingletonTraits<ChromeAppWindowClient>;
26 
27   // extensions::AppWindowClient
28   virtual extensions::AppWindow* CreateAppWindow(
29       content::BrowserContext* context,
30       const extensions::Extension* extension) OVERRIDE;
31   virtual extensions::NativeAppWindow* CreateNativeAppWindow(
32       extensions::AppWindow* window,
33       const extensions::AppWindow::CreateParams& params) OVERRIDE;
34   virtual void OpenDevToolsWindow(content::WebContents* web_contents,
35                                   const base::Closure& callback) OVERRIDE;
36   virtual bool IsCurrentChannelOlderThanDev() OVERRIDE;
37 
38   // Implemented in platform specific code.
39   static extensions::NativeAppWindow* CreateNativeAppWindowImpl(
40       extensions::AppWindow* window,
41       const extensions::AppWindow::CreateParams& params);
42 
43   DISALLOW_COPY_AND_ASSIGN(ChromeAppWindowClient);
44 };
45 
46 #endif  // CHROME_BROWSER_UI_APPS_CHROME_APP_WINDOW_CLIENT_H_
47