aw_main_delegate.h revision 558790d6acca3451cf3a6b497803a5f07d0bec58
1// Copyright (c) 2012 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 ANDROID_WEBVIEW_LIB_MAIN_AW_MAIN_DELEGATE_H_ 6#define ANDROID_WEBVIEW_LIB_MAIN_AW_MAIN_DELEGATE_H_ 7 8#include "android_webview/browser/jni_dependency_factory.h" 9#include "android_webview/common/aw_content_client.h" 10#include "base/memory/scoped_ptr.h" 11#include "content/public/app/content_main_delegate.h" 12 13namespace content { 14class BrowserMainRunner; 15} 16 17namespace android_webview { 18 19class AwContentBrowserClient; 20class AwContentRendererClient; 21class GpuMemoryBufferFactoryImpl; 22 23// Android WebView implementation of ContentMainDelegate. 24class AwMainDelegate : public content::ContentMainDelegate, 25 public JniDependencyFactory { 26 public: 27 AwMainDelegate(); 28 virtual ~AwMainDelegate(); 29 30 private: 31 // content::ContentMainDelegate implementation: 32 virtual bool BasicStartupComplete(int* exit_code) OVERRIDE; 33 virtual void PreSandboxStartup() OVERRIDE; 34 virtual void SandboxInitialized(const std::string& process_type) OVERRIDE; 35 virtual int RunProcess( 36 const std::string& process_type, 37 const content::MainFunctionParams& main_function_params) OVERRIDE; 38 virtual void ProcessExiting(const std::string& process_type) OVERRIDE; 39 virtual content::ContentBrowserClient* CreateContentBrowserClient() OVERRIDE; 40 virtual content::ContentRendererClient* 41 CreateContentRendererClient() OVERRIDE; 42 43 // JniDependencyFactory implementation. 44 virtual AwQuotaManagerBridge* CreateAwQuotaManagerBridge( 45 AwBrowserContext* browser_context) OVERRIDE; 46 virtual content::GeolocationPermissionContext* CreateGeolocationPermission( 47 AwBrowserContext* browser_context) OVERRIDE; 48 virtual content::WebContentsViewDelegate* CreateViewDelegate( 49 content::WebContents* web_contents) OVERRIDE; 50 51 scoped_ptr<content::BrowserMainRunner> browser_runner_; 52 AwContentClient content_client_; 53 scoped_ptr<AwContentBrowserClient> content_browser_client_; 54 scoped_ptr<AwContentRendererClient> content_renderer_client_; 55 scoped_ptr<GpuMemoryBufferFactoryImpl> gpu_memory_buffer_factory_; 56 57 DISALLOW_COPY_AND_ASSIGN(AwMainDelegate); 58}; 59 60} // namespace android_webview 61 62#endif // ANDROID_WEBVIEW_LIB_MAIN_AW_MAIN_DELEGATE_H_ 63