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 CONTENT_SHELL_SHELL_BROWSER_CONTEXT_H_ 6 #define CONTENT_SHELL_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 const GURL& requesting_frame, 50 const MIDISysExPermissionCallback& callback) OVERRIDE; 51 virtual ResourceContext* GetResourceContext() OVERRIDE; 52 virtual GeolocationPermissionContext* 53 GetGeolocationPermissionContext() OVERRIDE; 54 virtual quota::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE; 55 56 net::URLRequestContextGetter* CreateRequestContext( 57 ProtocolHandlerMap* protocol_handlers); 58 net::URLRequestContextGetter* CreateRequestContextForStoragePartition( 59 const base::FilePath& partition_path, 60 bool in_memory, 61 ProtocolHandlerMap* protocol_handlers); 62 63 private: 64 class ShellResourceContext; 65 66 // Performs initialization of the ShellBrowserContext while IO is still 67 // allowed on the current thread. 68 void InitWhileIOAllowed(); 69 70 bool off_the_record_; 71 net::NetLog* net_log_; 72 bool ignore_certificate_errors_; 73 base::FilePath path_; 74 scoped_ptr<ShellResourceContext> resource_context_; 75 scoped_refptr<ShellDownloadManagerDelegate> download_manager_delegate_; 76 scoped_refptr<ShellURLRequestContextGetter> url_request_getter_; 77 78 DISALLOW_COPY_AND_ASSIGN(ShellBrowserContext); 79 }; 80 81 } // namespace content 82 83 #endif // CONTENT_SHELL_SHELL_BROWSER_CONTEXT_H_ 84