11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef CHROME_BROWSER_UI_APPS_CHROME_APP_WINDOW_CLIENT_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define CHROME_BROWSER_UI_APPS_CHROME_APP_WINDOW_CLIENT_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/basictypes.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/compiler_specific.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/app_window/app_window_client.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccitemplate <typename T> 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistruct DefaultSingletonTraits; 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// The implementation of AppWindowClient for Chrome. 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass ChromeAppWindowClient : public extensions::AppWindowClient { 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ChromeAppWindowClient(); 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~ChromeAppWindowClient(); 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Get the LazyInstance for ChromeAppWindowClient. 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static ChromeAppWindowClient* GetInstance(); 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci friend struct DefaultSingletonTraits<ChromeAppWindowClient>; 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // extensions::AppWindowClient 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual extensions::AppWindow* CreateAppWindow( 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci content::BrowserContext* context, 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const extensions::Extension* extension) OVERRIDE; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual extensions::NativeAppWindow* CreateNativeAppWindow( 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci extensions::AppWindow* window, 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const extensions::AppWindow::CreateParams& params) OVERRIDE; 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void OpenDevToolsWindow(content::WebContents* web_contents, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::Closure& callback) OVERRIDE; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool IsCurrentChannelOlderThanDev() OVERRIDE; 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Implemented in platform specific code. 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static extensions::NativeAppWindow* CreateNativeAppWindowImpl( 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci extensions::AppWindow* window, 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const extensions::AppWindow::CreateParams& params); 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(ChromeAppWindowClient); 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // CHROME_BROWSER_UI_APPS_CHROME_APP_WINDOW_CLIENT_H_ 47