- add sources.
[platform/framework/web/crosswalk.git] / src / content / shell / browser / shell_browser_context.h
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_