aw_main_delegate.h revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ANDROID_WEBVIEW_LIB_MAIN_AW_MAIN_DELEGATE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ANDROID_WEBVIEW_LIB_MAIN_AW_MAIN_DELEGATE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "android_webview/browser/jni_dependency_factory.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "android_webview/common/aw_content_client.h" 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "base/memory/ref_counted.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/app/content_main_delegate.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BrowserMainRunner; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android_webview { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class AwContentBrowserClient; 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class AwContentRendererClient; 22558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochclass GpuMemoryBufferFactoryImpl; 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Android WebView implementation of ContentMainDelegate. 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class AwMainDelegate : public content::ContentMainDelegate, 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public JniDependencyFactory { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AwMainDelegate(); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~AwMainDelegate(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // content::ContentMainDelegate implementation: 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool BasicStartupComplete(int* exit_code) OVERRIDE; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void PreSandboxStartup() OVERRIDE; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SandboxInitialized(const std::string& process_type) OVERRIDE; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int RunProcess( 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& process_type, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const content::MainFunctionParams& main_function_params) OVERRIDE; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ProcessExiting(const std::string& process_type) OVERRIDE; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual content::ContentBrowserClient* CreateContentBrowserClient() OVERRIDE; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual content::ContentRendererClient* 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CreateContentRendererClient() OVERRIDE; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // JniDependencyFactory implementation. 454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual scoped_refptr<AwQuotaManagerBridge> CreateAwQuotaManagerBridge( 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AwBrowserContext* browser_context) OVERRIDE; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual content::GeolocationPermissionContext* CreateGeolocationPermission( 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AwBrowserContext* browser_context) OVERRIDE; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual content::WebContentsViewDelegate* CreateViewDelegate( 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::WebContents* web_contents) OVERRIDE; 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual AwWebPreferencesPopulater* CreateWebPreferencesPopulater() OVERRIDE; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<content::BrowserMainRunner> browser_runner_; 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AwContentClient content_client_; 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<AwContentBrowserClient> content_browser_client_; 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<AwContentRendererClient> content_renderer_client_; 57558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch scoped_ptr<GpuMemoryBufferFactoryImpl> gpu_memory_buffer_factory_; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(AwMainDelegate); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace android_webview 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ANDROID_WEBVIEW_LIB_MAIN_AW_MAIN_DELEGATE_H_ 65