13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 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) 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_ 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/ref_counted.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/browser_context.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/content_browser_client.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/url_request/url_request_job_factory.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace net { 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass NetLog; 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DownloadManagerDelegate; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ResourceContext; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ShellDownloadManagerDelegate; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ShellURLRequestContextGetter; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ShellBrowserContext : public BrowserContext { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ShellBrowserContext(bool off_the_record, net::NetLog* net_log); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ShellBrowserContext(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void set_guest_manager_for_testing( 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BrowserPluginGuestManager* guest_manager) { 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) guest_manager_ = guest_manager; 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // BrowserContext implementation. 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual base::FilePath GetPath() const OVERRIDE; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsOffTheRecord() const OVERRIDE; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual DownloadManagerDelegate* GetDownloadManagerDelegate() OVERRIDE; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::URLRequestContextGetter* GetRequestContextForRenderProcess( 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int renderer_child_id) OVERRIDE; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::URLRequestContextGetter* GetMediaRequestContext() OVERRIDE; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::URLRequestContextGetter* GetMediaRequestContextForRenderProcess( 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int renderer_child_id) OVERRIDE; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::URLRequestContextGetter* 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetMediaRequestContextForStoragePartition( 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& partition_path, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool in_memory) OVERRIDE; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ResourceContext* GetResourceContext() OVERRIDE; 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual BrowserPluginGuestManager* GetGuestManager() OVERRIDE; 5303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual storage::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE; 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) virtual PushMessagingService* GetPushMessagingService() OVERRIDE; 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual SSLHostStateDelegate* GetSSLHostStateDelegate() OVERRIDE; 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) net::URLRequestContextGetter* CreateRequestContext( 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ProtocolHandlerMap* protocol_handlers, 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) URLRequestInterceptorScopedVector request_interceptors); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) net::URLRequestContextGetter* CreateRequestContextForStoragePartition( 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& partition_path, 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool in_memory, 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) ProtocolHandlerMap* protocol_handlers, 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) URLRequestInterceptorScopedVector request_interceptors); 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) class ShellResourceContext; 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Performs initialization of the ShellBrowserContext while IO is still 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // allowed on the current thread. 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void InitWhileIOAllowed(); 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool off_the_record_; 74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch net::NetLog* net_log_; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ignore_certificate_errors_; 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath path_; 77cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BrowserPluginGuestManager* guest_manager_; 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<ShellResourceContext> resource_context_; 795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) scoped_ptr<ShellDownloadManagerDelegate> download_manager_delegate_; 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<ShellURLRequestContextGetter> url_request_getter_; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ShellBrowserContext); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 873551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif // CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_ 88