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#include "chrome/browser/ui/apps/chrome_app_window_client.h" 6 7#include "base/memory/singleton.h" 8#include "chrome/browser/apps/scoped_keep_alive.h" 9#include "chrome/browser/devtools/devtools_window.h" 10#include "chrome/common/extensions/features/feature_channel.h" 11#include "extensions/browser/app_window/app_window.h" 12#include "extensions/common/extension.h" 13 14// TODO(jamescook): We probably shouldn't compile this class at all on Android. 15// See http://crbug.com/343612 16#if !defined(OS_ANDROID) 17#include "chrome/browser/ui/apps/chrome_app_delegate.h" 18#endif 19 20ChromeAppWindowClient::ChromeAppWindowClient() { 21} 22 23ChromeAppWindowClient::~ChromeAppWindowClient() { 24} 25 26// static 27ChromeAppWindowClient* ChromeAppWindowClient::GetInstance() { 28 return Singleton<ChromeAppWindowClient, 29 LeakySingletonTraits<ChromeAppWindowClient> >::get(); 30} 31 32extensions::AppWindow* ChromeAppWindowClient::CreateAppWindow( 33 content::BrowserContext* context, 34 const extensions::Extension* extension) { 35#if defined(OS_ANDROID) 36 return NULL; 37#else 38 return new extensions::AppWindow( 39 context, 40 new ChromeAppDelegate(make_scoped_ptr(new ScopedKeepAlive)), 41 extension); 42#endif 43} 44 45extensions::NativeAppWindow* ChromeAppWindowClient::CreateNativeAppWindow( 46 extensions::AppWindow* window, 47 const extensions::AppWindow::CreateParams& params) { 48#if defined(OS_ANDROID) 49 return NULL; 50#else 51 return CreateNativeAppWindowImpl(window, params); 52#endif 53} 54 55void ChromeAppWindowClient::OpenDevToolsWindow( 56 content::WebContents* web_contents, 57 const base::Closure& callback) { 58 DevToolsWindow* devtools_window = DevToolsWindow::OpenDevToolsWindow( 59 web_contents, DevToolsToggleAction::ShowConsole()); 60 devtools_window->SetLoadCompletedCallback(callback); 61} 62 63bool ChromeAppWindowClient::IsCurrentChannelOlderThanDev() { 64 return extensions::GetCurrentChannel() > chrome::VersionInfo::CHANNEL_DEV; 65} 66