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_AW_CONTENT_BROWSER_CLIENT_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ANDROID_WEBVIEW_LIB_AW_CONTENT_BROWSER_CLIENT_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "android_webview/browser/aw_web_preferences_populater.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/content_browser_client.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android_webview {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class AwBrowserContext;
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class JniDependencyFactory;
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AwContentBrowserClient : public content::ContentBrowserClient {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  // This is what AwContentBrowserClient::GetAcceptLangs uses.
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  static std::string GetAcceptLangsImpl();
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  // Deprecated: use AwBrowserContext::GetDefault() instead.
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  static AwBrowserContext* GetAwBrowserContext();
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  AwContentBrowserClient(JniDependencyFactory* native_factory);
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~AwContentBrowserClient();
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Overriden methods from ContentBrowserClient.
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void AddCertificate(net::CertificateMimeType cert_type,
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                              const void* cert_data,
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                              size_t cert_size,
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                              int render_process_id,
3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)                              int render_frame_id) OVERRIDE;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual content::BrowserMainParts* CreateBrowserMainParts(
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const content::MainFunctionParams& parameters) OVERRIDE;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual content::WebContentsViewDelegate* GetWebContentsViewDelegate(
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      content::WebContents* web_contents) OVERRIDE;
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  virtual void RenderProcessWillLaunch(
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      content::RenderProcessHost* host) OVERRIDE;
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual net::URLRequestContextGetter* CreateRequestContext(
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      content::BrowserContext* browser_context,
44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      content::ProtocolHandlerMap* protocol_handlers,
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      content::URLRequestInterceptorScopedVector request_interceptors) OVERRIDE;
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual net::URLRequestContextGetter* CreateRequestContextForStoragePartition(
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      content::BrowserContext* browser_context,
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const base::FilePath& partition_path,
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      bool in_memory,
50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      content::ProtocolHandlerMap* protocol_handlers,
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      content::URLRequestInterceptorScopedVector request_interceptors) OVERRIDE;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual std::string GetCanonicalEncodingNameByAliasName(
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const std::string& alias_name) OVERRIDE;
54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                              int child_process_id) OVERRIDE;
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual std::string GetApplicationLocale() OVERRIDE;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual std::string GetAcceptLangs(content::BrowserContext* context) OVERRIDE;
58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual const gfx::ImageSkia* GetDefaultFavicon() OVERRIDE;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool AllowAppCache(const GURL& manifest_url,
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             const GURL& first_party,
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             content::ResourceContext* context) OVERRIDE;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool AllowGetCookie(const GURL& url,
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              const GURL& first_party,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              const net::CookieList& cookie_list,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              content::ResourceContext* context,
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              int render_process_id,
675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                              int render_frame_id) OVERRIDE;
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool AllowSetCookie(const GURL& url,
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              const GURL& first_party,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              const std::string& cookie_line,
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              content::ResourceContext* context,
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              int render_process_id,
735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                              int render_frame_id,
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              net::CookieOptions* options) OVERRIDE;
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool AllowWorkerDatabase(
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& url,
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      const base::string16& name,
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      const base::string16& display_name,
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      unsigned long estimated_size,
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      content::ResourceContext* context,
815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      const std::vector<std::pair<int, int> >& render_frames) OVERRIDE;
82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void AllowWorkerFileSystem(
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& url,
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      content::ResourceContext* context,
85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::vector<std::pair<int, int> >& render_frames,
86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Callback<void(bool)> callback) OVERRIDE;
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool AllowWorkerIndexedDB(
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& url,
895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      const base::string16& name,
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      content::ResourceContext* context,
915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      const std::vector<std::pair<int, int> >& render_frames) OVERRIDE;
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual content::QuotaPermissionContext*
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      CreateQuotaPermissionContext() OVERRIDE;
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void AllowCertificateError(
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      int render_process_id,
965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      int render_frame_id,
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      int cert_error,
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const net::SSLInfo& ssl_info,
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& request_url,
1005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      content::ResourceType resource_type,
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      bool overridable,
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      bool strict_enforcement,
1036e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      bool expired_previous_decision,
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const base::Callback<void(bool)>& callback,
10590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      content::CertificateRequestResultType* result) OVERRIDE;
1061e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  virtual void SelectClientCertificate(
1071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      int render_process_id,
1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      int render_frame_id,
1091e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      const net::HttpNetworkSession* network_session,
1101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      net::SSLCertRequestInfo* cert_request_info,
1111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      const base::Callback<void(net::X509Certificate*)>& callback) OVERRIDE;
1125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual blink::WebNotificationPermission
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      CheckDesktopNotificationPermission(
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          const GURL& source_url,
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          content::ResourceContext* context,
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          int render_process_id) OVERRIDE;
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ShowDesktopNotification(
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const content::ShowDesktopNotificationHostMsgParams& params,
1190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      content::RenderFrameHost* render_frame_host,
1205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      scoped_ptr<content::DesktopNotificationDelegate> delegate,
1210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      base::Closure* cancel_callback) OVERRIDE;
122f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual void RequestGeolocationPermission(
123f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      content::WebContents* web_contents,
124f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      int bridge_id,
125f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      const GURL& requesting_frame,
126f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      bool user_gesture,
127f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      base::Callback<void(bool)> result_callback,
128f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      base::Closure* cancel_callback) OVERRIDE;
129f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual void RequestMidiSysExPermission(
130f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      content::WebContents* web_contents,
131f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      int bridge_id,
132f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      const GURL& requesting_frame,
133f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      bool user_gesture,
134f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      base::Callback<void(bool)> result_callback,
135f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      base::Closure* cancel_callback) OVERRIDE;
136f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual void RequestProtectedMediaIdentifierPermission(
137f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    content::WebContents* web_contents,
138f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    const GURL& origin,
139f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Callback<void(bool)> result_callback,
140f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Closure* cancel_callback) OVERRIDE;
141558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  virtual bool CanCreateWindow(const GURL& opener_url,
14258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                               const GURL& opener_top_level_frame_url,
143558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               const GURL& source_origin,
144558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               WindowContainerType container_type,
145558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               const GURL& target_url,
146558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               const content::Referrer& referrer,
147558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               WindowOpenDisposition disposition,
148f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                               const blink::WebWindowFeatures& features,
149558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               bool user_gesture,
150558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               bool opener_suppressed,
151558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               content::ResourceContext* context,
152558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               int render_process_id,
153558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               int opener_id,
154558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                               bool* no_javascript_access) OVERRIDE;
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ResourceDispatcherHostCreated() OVERRIDE;
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual net::NetLog* GetNetLog() OVERRIDE;
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual content::AccessTokenStore* CreateAccessTokenStore() OVERRIDE;
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool IsFastShutdownPossible() OVERRIDE;
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ClearCache(content::RenderViewHost* rvh) OVERRIDE;
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void ClearCookies(content::RenderViewHost* rvh) OVERRIDE;
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual base::FilePath GetDefaultDownloadDirectory() OVERRIDE;
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual std::string GetDefaultDownloadName() OVERRIDE;
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void DidCreatePpapiPlugin(
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      content::BrowserPpapiHost* browser_host) OVERRIDE;
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual bool AllowPepperSocketAPI(
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      content::BrowserContext* browser_context,
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& url,
1687d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)      bool private_api,
16968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      const content::SocketPermissionRequest* params) OVERRIDE;
1704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  virtual void OverrideWebkitPrefs(content::RenderViewHost* rvh,
1714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                                   const GURL& url,
172116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                   content::WebPreferences* web_prefs) OVERRIDE;
173a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#if defined(VIDEO_HOLE)
174a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  virtual content::ExternalVideoSurfaceContainer*
175a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      OverrideCreateExternalVideoSurfaceContainer(
176a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch          content::WebContents* web_contents) OVERRIDE;
177a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif
1781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  virtual content::DevToolsManagerDelegate*
1791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      GetDevToolsManagerDelegate() OVERRIDE;
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Android WebView currently has a single global (non-off-the-record) browser
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // context.
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_ptr<AwBrowserContext> browser_context_;
1854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  scoped_ptr<AwWebPreferencesPopulater> preferences_populater_;
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  JniDependencyFactory* native_factory_;
1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(AwContentBrowserClient);
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace android_webview
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // ANDROID_WEBVIEW_LIB_AW_CONTENT_BROWSER_CLIENT_H_
195