1 // Copyright 2013 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 CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_ 6 #define CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/files/file_path.h" 10 #include "base/memory/ref_counted.h" 11 #include "base/memory/scoped_ptr.h" 12 #include "content/public/browser/browser_context.h" 13 #include "content/public/browser/content_browser_client.h" 14 #include "net/url_request/url_request_job_factory.h" 15 16 namespace net { 17 class NetLog; 18 } 19 20 namespace content { 21 22 class DownloadManagerDelegate; 23 class ResourceContext; 24 class ShellDownloadManagerDelegate; 25 class ShellURLRequestContextGetter; 26 27 class ShellBrowserContext : public BrowserContext { 28 public: 29 ShellBrowserContext(bool off_the_record, net::NetLog* net_log); 30 virtual ~ShellBrowserContext(); 31 32 // BrowserContext implementation. 33 virtual base::FilePath GetPath() const OVERRIDE; 34 virtual bool IsOffTheRecord() const OVERRIDE; 35 virtual DownloadManagerDelegate* GetDownloadManagerDelegate() OVERRIDE; 36 virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE; 37 virtual net::URLRequestContextGetter* GetRequestContextForRenderProcess( 38 int renderer_child_id) OVERRIDE; 39 virtual net::URLRequestContextGetter* GetMediaRequestContext() OVERRIDE; 40 virtual net::URLRequestContextGetter* GetMediaRequestContextForRenderProcess( 41 int renderer_child_id) OVERRIDE; 42 virtual net::URLRequestContextGetter* 43 GetMediaRequestContextForStoragePartition( 44 const base::FilePath& partition_path, 45 bool in_memory) OVERRIDE; 46 virtual void RequestMIDISysExPermission( 47 int render_process_id, 48 int render_view_id, 49 int bridge_id, 50 const GURL& requesting_frame, 51 const MIDISysExPermissionCallback& callback) OVERRIDE; 52 virtual void CancelMIDISysExPermissionRequest( 53 int render_process_id, 54 int render_view_id, 55 int bridge_id, 56 const GURL& requesting_frame) OVERRIDE; 57 virtual ResourceContext* GetResourceContext() OVERRIDE; 58 virtual GeolocationPermissionContext* 59 GetGeolocationPermissionContext() OVERRIDE; 60 virtual quota::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE; 61 62 net::URLRequestContextGetter* CreateRequestContext( 63 ProtocolHandlerMap* protocol_handlers); 64 net::URLRequestContextGetter* CreateRequestContextForStoragePartition( 65 const base::FilePath& partition_path, 66 bool in_memory, 67 ProtocolHandlerMap* protocol_handlers); 68 69 private: 70 class ShellResourceContext; 71 72 // Performs initialization of the ShellBrowserContext while IO is still 73 // allowed on the current thread. 74 void InitWhileIOAllowed(); 75 76 bool off_the_record_; 77 net::NetLog* net_log_; 78 bool ignore_certificate_errors_; 79 base::FilePath path_; 80 scoped_ptr<ShellResourceContext> resource_context_; 81 scoped_refptr<ShellDownloadManagerDelegate> download_manager_delegate_; 82 scoped_refptr<ShellURLRequestContextGetter> url_request_getter_; 83 84 DISALLOW_COPY_AND_ASSIGN(ShellBrowserContext); 85 }; 86 87 } // namespace content 88 89 #endif // CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_ 90