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.
5 #ifndef CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
6 #define CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_
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"
22 class DownloadManagerDelegate;
23 class ResourceContext;
24 class ShellDownloadManagerDelegate;
25 class ShellURLRequestContextGetter;
27 class ShellBrowserContext : public BrowserContext {
29 ShellBrowserContext(bool off_the_record, net::NetLog* net_log);
30 virtual ~ShellBrowserContext();
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,
50 const GURL& requesting_frame,
51 const MIDISysExPermissionCallback& callback) OVERRIDE;
52 virtual void CancelMIDISysExPermissionRequest(
53 int render_process_id,
56 const GURL& requesting_frame) OVERRIDE;
57 virtual ResourceContext* GetResourceContext() OVERRIDE;
58 virtual GeolocationPermissionContext*
59 GetGeolocationPermissionContext() OVERRIDE;
60 virtual quota::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE;
62 net::URLRequestContextGetter* CreateRequestContext(
63 ProtocolHandlerMap* protocol_handlers);
64 net::URLRequestContextGetter* CreateRequestContextForStoragePartition(
65 const base::FilePath& partition_path,
67 ProtocolHandlerMap* protocol_handlers);
70 class ShellResourceContext;
72 // Performs initialization of the ShellBrowserContext while IO is still
73 // allowed on the current thread.
74 void InitWhileIOAllowed();
77 net::NetLog* net_log_;
78 bool ignore_certificate_errors_;
80 scoped_ptr<ShellResourceContext> resource_context_;
81 scoped_refptr<ShellDownloadManagerDelegate> download_manager_delegate_;
82 scoped_refptr<ShellURLRequestContextGetter> url_request_getter_;
84 DISALLOW_COPY_AND_ASSIGN(ShellBrowserContext);
87 } // namespace content
89 #endif // CONTENT_SHELL_BROWSER_SHELL_BROWSER_CONTEXT_H_