Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Side by Side Diff: chromecast/shell/browser/cast_browser_context.cc

Issue 638803002: Reorganizes Chromecast code to better reflect functional dependencies. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: extra DEPS: chromecast/crash/android --> chromecast/common Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 #include "chromecast/shell/browser/cast_browser_context.h"
6
7 #include "base/command_line.h"
8 #include "base/files/file_util.h"
9 #include "base/macros.h"
10 #include "base/path_service.h"
11 #include "chromecast/common/cast_paths.h"
12 #include "chromecast/shell/browser/cast_download_manager_delegate.h"
13 #include "chromecast/shell/browser/url_request_context_factory.h"
14 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/resource_context.h"
16 #include "content/public/browser/storage_partition.h"
17 #include "content/public/common/content_switches.h"
18 #include "net/url_request/url_request_context.h"
19 #include "net/url_request/url_request_context_getter.h"
20
21 namespace chromecast {
22 namespace shell {
23
24 class CastBrowserContext::CastResourceContext :
25 public content::ResourceContext {
26 public:
27 explicit CastResourceContext(
28 URLRequestContextFactory* url_request_context_factory) :
29 url_request_context_factory_(url_request_context_factory) {}
30 virtual ~CastResourceContext() {}
31
32 // ResourceContext implementation:
33 virtual net::HostResolver* GetHostResolver() override {
34 return url_request_context_factory_->GetMainGetter()->
35 GetURLRequestContext()->host_resolver();
36 }
37
38 virtual net::URLRequestContext* GetRequestContext() override {
39 return url_request_context_factory_->GetMainGetter()->
40 GetURLRequestContext();
41 }
42
43 private:
44 URLRequestContextFactory* url_request_context_factory_;
45
46 DISALLOW_COPY_AND_ASSIGN(CastResourceContext);
47 };
48
49 CastBrowserContext::CastBrowserContext(
50 URLRequestContextFactory* url_request_context_factory)
51 : url_request_context_factory_(url_request_context_factory),
52 resource_context_(new CastResourceContext(url_request_context_factory)),
53 download_manager_delegate_(new CastDownloadManagerDelegate()) {
54 InitWhileIOAllowed();
55 }
56
57 CastBrowserContext::~CastBrowserContext() {
58 content::BrowserThread::DeleteSoon(
59 content::BrowserThread::IO,
60 FROM_HERE,
61 resource_context_.release());
62 }
63
64 void CastBrowserContext::InitWhileIOAllowed() {
65 #if defined(OS_ANDROID)
66 CHECK(PathService::Get(base::DIR_ANDROID_APP_DATA, &path_));
67 path_ = path_.Append(FILE_PATH_LITERAL("cast_shell"));
68
69 if (!base::PathExists(path_))
70 base::CreateDirectory(path_);
71 #else
72 // Chromecast doesn't support user profiles nor does it have
73 // incognito mode. This means that all of the persistent
74 // data (currently only cookies and local storage) will be
75 // shared in a single location as defined here.
76 CHECK(PathService::Get(DIR_CAST_HOME, &path_));
77 #endif // defined(OS_ANDROID)
78 }
79
80 base::FilePath CastBrowserContext::GetPath() const {
81 return path_;
82 }
83
84 bool CastBrowserContext::IsOffTheRecord() const {
85 return false;
86 }
87
88 net::URLRequestContextGetter* CastBrowserContext::GetRequestContext() {
89 return GetDefaultStoragePartition(this)->GetURLRequestContext();
90 }
91
92 net::URLRequestContextGetter*
93 CastBrowserContext::GetRequestContextForRenderProcess(int renderer_child_id) {
94 return GetRequestContext();
95 }
96
97 net::URLRequestContextGetter* CastBrowserContext::GetMediaRequestContext() {
98 return url_request_context_factory_->GetMediaGetter();
99 }
100
101 net::URLRequestContextGetter*
102 CastBrowserContext::GetMediaRequestContextForRenderProcess(
103 int renderer_child_id) {
104 return GetMediaRequestContext();
105 }
106
107 net::URLRequestContextGetter*
108 CastBrowserContext::GetMediaRequestContextForStoragePartition(
109 const base::FilePath& partition_path, bool in_memory) {
110 return GetMediaRequestContext();
111 }
112
113 content::ResourceContext* CastBrowserContext::GetResourceContext() {
114 return resource_context_.get();
115 }
116
117 content::DownloadManagerDelegate*
118 CastBrowserContext::GetDownloadManagerDelegate() {
119 return download_manager_delegate_.get();
120 }
121
122 content::BrowserPluginGuestManager* CastBrowserContext::GetGuestManager() {
123 NOTIMPLEMENTED();
124 return NULL;
125 }
126
127 storage::SpecialStoragePolicy* CastBrowserContext::GetSpecialStoragePolicy() {
128 NOTIMPLEMENTED();
129 return NULL;
130 }
131
132 content::PushMessagingService* CastBrowserContext::GetPushMessagingService() {
133 NOTIMPLEMENTED();
134 return NULL;
135 }
136
137 content::SSLHostStateDelegate* CastBrowserContext::GetSSLHostStateDelegate() {
138 NOTIMPLEMENTED();
139 return NULL;
140 }
141
142 } // namespace shell
143 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/shell/browser/cast_browser_context.h ('k') | chromecast/shell/browser/cast_browser_main_parts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698