Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chromecast / shell / browser / cast_browser_context.h
1 // Copyright 2014 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 CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_
6 #define CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_
7
8 #include "base/files/file_path.h"
9 #include "base/macros.h"
10 #include "content/public/browser/browser_context.h"
11 #include "content/public/browser/content_browser_client.h"
12
13 namespace chromecast {
14 namespace shell {
15
16 class CastDownloadManagerDelegate;
17 class URLRequestContextFactory;
18
19 // Chromecast does not currently support multiple profiles.  So there is a
20 // single BrowserContext for all chromecast renderers.
21 // There is no support for PartitionStorage.
22 class CastBrowserContext : public content::BrowserContext {
23  public:
24   explicit CastBrowserContext(
25       URLRequestContextFactory* url_request_context_factory);
26   virtual ~CastBrowserContext();
27
28   // BrowserContext implementation:
29   virtual base::FilePath GetPath() const OVERRIDE;
30   virtual bool IsOffTheRecord() const OVERRIDE;
31   virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE;
32   virtual net::URLRequestContextGetter* GetRequestContextForRenderProcess(
33       int renderer_child_id) OVERRIDE;
34   virtual net::URLRequestContextGetter* GetMediaRequestContext() OVERRIDE;
35   virtual net::URLRequestContextGetter* GetMediaRequestContextForRenderProcess(
36       int renderer_child_id) OVERRIDE;
37   virtual net::URLRequestContextGetter*
38       GetMediaRequestContextForStoragePartition(
39           const base::FilePath& partition_path,
40           bool in_memory) OVERRIDE;
41   virtual content::ResourceContext* GetResourceContext() OVERRIDE;
42   virtual content::DownloadManagerDelegate*
43       GetDownloadManagerDelegate() OVERRIDE;
44   virtual content::BrowserPluginGuestManager* GetGuestManager() OVERRIDE;
45   virtual storage::SpecialStoragePolicy* GetSpecialStoragePolicy() OVERRIDE;
46   virtual content::PushMessagingService* GetPushMessagingService() OVERRIDE;
47   virtual content::SSLHostStateDelegate* GetSSLHostStateDelegate() OVERRIDE;
48
49  private:
50   class CastResourceContext;
51
52   // Performs initialization of the CastBrowserContext while IO is still
53   // allowed on the current thread.
54   void InitWhileIOAllowed();
55
56   URLRequestContextFactory* const url_request_context_factory_;
57   base::FilePath path_;
58   scoped_ptr<CastResourceContext> resource_context_;
59   scoped_ptr<CastDownloadManagerDelegate> download_manager_delegate_;
60
61   DISALLOW_COPY_AND_ASSIGN(CastBrowserContext);
62 };
63
64 }  // namespace shell
65 }  // namespace chromecast
66
67 #endif  // CHROMECAST_SHELL_BROWSER_CAST_BROWSER_CONTEXT_H_