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

Side by Side Diff: chrome/browser/net/chrome_url_request_context.cc

Issue 282103004: Rename ProtocolInterceptJobFactory and make it not use ProtocolHandlers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Response to jam's comments (And a merge) Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/net/chrome_url_request_context.h" 5 #include "chrome/browser/net/chrome_url_request_context.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
(...skipping 21 matching lines...) Expand all
32 32
33 namespace { 33 namespace {
34 34
35 // ---------------------------------------------------------------------------- 35 // ----------------------------------------------------------------------------
36 // Helper factories 36 // Helper factories
37 // ---------------------------------------------------------------------------- 37 // ----------------------------------------------------------------------------
38 38
39 // Factory that creates the main ChromeURLRequestContext. 39 // Factory that creates the main ChromeURLRequestContext.
40 class FactoryForMain : public ChromeURLRequestContextFactory { 40 class FactoryForMain : public ChromeURLRequestContextFactory {
41 public: 41 public:
42 FactoryForMain(const ProfileIOData* profile_io_data, 42 FactoryForMain(
43 content::ProtocolHandlerMap* protocol_handlers, 43 const ProfileIOData* profile_io_data,
44 content::ProtocolHandlerScopedVector protocol_interceptors) 44 content::ProtocolHandlerMap* protocol_handlers,
45 content::URLRequestInterceptorScopedVector request_interceptors)
45 : profile_io_data_(profile_io_data), 46 : profile_io_data_(profile_io_data),
46 protocol_interceptors_(protocol_interceptors.Pass()) { 47 request_interceptors_(request_interceptors.Pass()) {
47 std::swap(protocol_handlers_, *protocol_handlers); 48 std::swap(protocol_handlers_, *protocol_handlers);
48 } 49 }
49 50
50 virtual ChromeURLRequestContext* Create() OVERRIDE { 51 virtual ChromeURLRequestContext* Create() OVERRIDE {
51 profile_io_data_->Init(&protocol_handlers_, protocol_interceptors_.Pass()); 52 profile_io_data_->Init(&protocol_handlers_, request_interceptors_.Pass());
52 return profile_io_data_->GetMainRequestContext(); 53 return profile_io_data_->GetMainRequestContext();
53 } 54 }
54 55
55 private: 56 private:
56 const ProfileIOData* const profile_io_data_; 57 const ProfileIOData* const profile_io_data_;
57 content::ProtocolHandlerMap protocol_handlers_; 58 content::ProtocolHandlerMap protocol_handlers_;
58 content::ProtocolHandlerScopedVector protocol_interceptors_; 59 content::URLRequestInterceptorScopedVector request_interceptors_;
59 }; 60 };
60 61
61 // Factory that creates the ChromeURLRequestContext for extensions. 62 // Factory that creates the ChromeURLRequestContext for extensions.
62 class FactoryForExtensions : public ChromeURLRequestContextFactory { 63 class FactoryForExtensions : public ChromeURLRequestContextFactory {
63 public: 64 public:
64 explicit FactoryForExtensions(const ProfileIOData* profile_io_data) 65 explicit FactoryForExtensions(const ProfileIOData* profile_io_data)
65 : profile_io_data_(profile_io_data) {} 66 : profile_io_data_(profile_io_data) {}
66 67
67 virtual ChromeURLRequestContext* Create() OVERRIDE { 68 virtual ChromeURLRequestContext* Create() OVERRIDE {
68 return profile_io_data_->GetExtensionsRequestContext(); 69 return profile_io_data_->GetExtensionsRequestContext();
69 } 70 }
70 71
71 private: 72 private:
72 const ProfileIOData* const profile_io_data_; 73 const ProfileIOData* const profile_io_data_;
73 }; 74 };
74 75
75 // Factory that creates the ChromeURLRequestContext for a given isolated app. 76 // Factory that creates the ChromeURLRequestContext for a given isolated app.
76 class FactoryForIsolatedApp : public ChromeURLRequestContextFactory { 77 class FactoryForIsolatedApp : public ChromeURLRequestContextFactory {
77 public: 78 public:
78 FactoryForIsolatedApp( 79 FactoryForIsolatedApp(
79 const ProfileIOData* profile_io_data, 80 const ProfileIOData* profile_io_data,
80 const StoragePartitionDescriptor& partition_descriptor, 81 const StoragePartitionDescriptor& partition_descriptor,
81 ChromeURLRequestContextGetter* main_context, 82 ChromeURLRequestContextGetter* main_context,
82 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory> 83 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory>
83 protocol_handler_interceptor, 84 protocol_handler_interceptor,
84 content::ProtocolHandlerMap* protocol_handlers, 85 content::ProtocolHandlerMap* protocol_handlers,
85 content::ProtocolHandlerScopedVector protocol_interceptors) 86 content::URLRequestInterceptorScopedVector request_interceptors)
86 : profile_io_data_(profile_io_data), 87 : profile_io_data_(profile_io_data),
87 partition_descriptor_(partition_descriptor), 88 partition_descriptor_(partition_descriptor),
88 main_request_context_getter_(main_context), 89 main_request_context_getter_(main_context),
89 protocol_handler_interceptor_(protocol_handler_interceptor.Pass()), 90 protocol_handler_interceptor_(protocol_handler_interceptor.Pass()),
90 protocol_interceptors_(protocol_interceptors.Pass()) { 91 request_interceptors_(request_interceptors.Pass()) {
91 std::swap(protocol_handlers_, *protocol_handlers); 92 std::swap(protocol_handlers_, *protocol_handlers);
92 } 93 }
93 94
94 virtual ChromeURLRequestContext* Create() OVERRIDE { 95 virtual ChromeURLRequestContext* Create() OVERRIDE {
95 // We will copy most of the state from the main request context. 96 // We will copy most of the state from the main request context.
96 // 97 //
97 // Note that this factory is one-shot. After Create() is called once, the 98 // Note that this factory is one-shot. After Create() is called once, the
98 // factory is actually destroyed. Thus it is safe to destructively pass 99 // factory is actually destroyed. Thus it is safe to destructively pass
99 // state onwards. 100 // state onwards.
100 return profile_io_data_->GetIsolatedAppRequestContext( 101 return profile_io_data_->GetIsolatedAppRequestContext(
101 main_request_context_getter_->GetURLRequestContext(), 102 main_request_context_getter_->GetURLRequestContext(),
102 partition_descriptor_, 103 partition_descriptor_,
103 protocol_handler_interceptor_.Pass(), 104 protocol_handler_interceptor_.Pass(),
104 &protocol_handlers_, 105 &protocol_handlers_,
105 protocol_interceptors_.Pass()); 106 request_interceptors_.Pass());
106 } 107 }
107 108
108 private: 109 private:
109 const ProfileIOData* const profile_io_data_; 110 const ProfileIOData* const profile_io_data_;
110 const StoragePartitionDescriptor partition_descriptor_; 111 const StoragePartitionDescriptor partition_descriptor_;
111 scoped_refptr<ChromeURLRequestContextGetter> 112 scoped_refptr<ChromeURLRequestContextGetter>
112 main_request_context_getter_; 113 main_request_context_getter_;
113 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory> 114 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory>
114 protocol_handler_interceptor_; 115 protocol_handler_interceptor_;
115 content::ProtocolHandlerMap protocol_handlers_; 116 content::ProtocolHandlerMap protocol_handlers_;
116 content::ProtocolHandlerScopedVector protocol_interceptors_; 117 content::URLRequestInterceptorScopedVector request_interceptors_;
117 }; 118 };
118 119
119 // Factory that creates the media ChromeURLRequestContext for a given isolated 120 // Factory that creates the media ChromeURLRequestContext for a given isolated
120 // app. The media context is based on the corresponding isolated app's context. 121 // app. The media context is based on the corresponding isolated app's context.
121 class FactoryForIsolatedMedia : public ChromeURLRequestContextFactory { 122 class FactoryForIsolatedMedia : public ChromeURLRequestContextFactory {
122 public: 123 public:
123 FactoryForIsolatedMedia( 124 FactoryForIsolatedMedia(
124 const ProfileIOData* profile_io_data, 125 const ProfileIOData* profile_io_data,
125 const StoragePartitionDescriptor& partition_descriptor, 126 const StoragePartitionDescriptor& partition_descriptor,
126 ChromeURLRequestContextGetter* app_context) 127 ChromeURLRequestContextGetter* app_context)
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 scoped_refptr<base::SingleThreadTaskRunner> 196 scoped_refptr<base::SingleThreadTaskRunner>
196 ChromeURLRequestContextGetter::GetNetworkTaskRunner() const { 197 ChromeURLRequestContextGetter::GetNetworkTaskRunner() const {
197 return BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO); 198 return BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO);
198 } 199 }
199 200
200 // static 201 // static
201 ChromeURLRequestContextGetter* ChromeURLRequestContextGetter::Create( 202 ChromeURLRequestContextGetter* ChromeURLRequestContextGetter::Create(
202 Profile* profile, 203 Profile* profile,
203 const ProfileIOData* profile_io_data, 204 const ProfileIOData* profile_io_data,
204 content::ProtocolHandlerMap* protocol_handlers, 205 content::ProtocolHandlerMap* protocol_handlers,
205 content::ProtocolHandlerScopedVector protocol_interceptors) { 206 content::URLRequestInterceptorScopedVector request_interceptors) {
206 return new ChromeURLRequestContextGetter(new FactoryForMain( 207 return new ChromeURLRequestContextGetter(new FactoryForMain(
207 profile_io_data, protocol_handlers, protocol_interceptors.Pass())); 208 profile_io_data, protocol_handlers, request_interceptors.Pass()));
208 } 209 }
209 210
210 // static 211 // static
211 ChromeURLRequestContextGetter* 212 ChromeURLRequestContextGetter*
212 ChromeURLRequestContextGetter::CreateForMedia( 213 ChromeURLRequestContextGetter::CreateForMedia(
213 Profile* profile, const ProfileIOData* profile_io_data) { 214 Profile* profile, const ProfileIOData* profile_io_data) {
214 return new ChromeURLRequestContextGetter( 215 return new ChromeURLRequestContextGetter(
215 new FactoryForMedia(profile_io_data)); 216 new FactoryForMedia(profile_io_data));
216 } 217 }
217 218
218 // static 219 // static
219 ChromeURLRequestContextGetter* 220 ChromeURLRequestContextGetter*
220 ChromeURLRequestContextGetter::CreateForExtensions( 221 ChromeURLRequestContextGetter::CreateForExtensions(
221 Profile* profile, const ProfileIOData* profile_io_data) { 222 Profile* profile, const ProfileIOData* profile_io_data) {
222 return new ChromeURLRequestContextGetter( 223 return new ChromeURLRequestContextGetter(
223 new FactoryForExtensions(profile_io_data)); 224 new FactoryForExtensions(profile_io_data));
224 } 225 }
225 226
226 // static 227 // static
227 ChromeURLRequestContextGetter* 228 ChromeURLRequestContextGetter*
228 ChromeURLRequestContextGetter::CreateForIsolatedApp( 229 ChromeURLRequestContextGetter::CreateForIsolatedApp(
229 Profile* profile, 230 Profile* profile,
230 const ProfileIOData* profile_io_data, 231 const ProfileIOData* profile_io_data,
231 const StoragePartitionDescriptor& partition_descriptor, 232 const StoragePartitionDescriptor& partition_descriptor,
232 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory> 233 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory>
233 protocol_handler_interceptor, 234 protocol_handler_interceptor,
234 content::ProtocolHandlerMap* protocol_handlers, 235 content::ProtocolHandlerMap* protocol_handlers,
235 content::ProtocolHandlerScopedVector protocol_interceptors) { 236 content::URLRequestInterceptorScopedVector request_interceptors) {
236 ChromeURLRequestContextGetter* main_context = 237 ChromeURLRequestContextGetter* main_context =
237 static_cast<ChromeURLRequestContextGetter*>(profile->GetRequestContext()); 238 static_cast<ChromeURLRequestContextGetter*>(profile->GetRequestContext());
238 return new ChromeURLRequestContextGetter( 239 return new ChromeURLRequestContextGetter(
239 new FactoryForIsolatedApp(profile_io_data, 240 new FactoryForIsolatedApp(profile_io_data,
240 partition_descriptor, 241 partition_descriptor,
241 main_context, 242 main_context,
242 protocol_handler_interceptor.Pass(), 243 protocol_handler_interceptor.Pass(),
243 protocol_handlers, 244 protocol_handlers,
244 protocol_interceptors.Pass())); 245 request_interceptors.Pass()));
245 } 246 }
246 247
247 // static 248 // static
248 ChromeURLRequestContextGetter* 249 ChromeURLRequestContextGetter*
249 ChromeURLRequestContextGetter::CreateForIsolatedMedia( 250 ChromeURLRequestContextGetter::CreateForIsolatedMedia(
250 Profile* profile, 251 Profile* profile,
251 ChromeURLRequestContextGetter* app_context, 252 ChromeURLRequestContextGetter* app_context,
252 const ProfileIOData* profile_io_data, 253 const ProfileIOData* profile_io_data,
253 const StoragePartitionDescriptor& partition_descriptor) { 254 const StoragePartitionDescriptor& partition_descriptor) {
254 return new ChromeURLRequestContextGetter( 255 return new ChromeURLRequestContextGetter(
(...skipping 12 matching lines...) Expand all
267 268
268 ChromeURLRequestContext::~ChromeURLRequestContext() { 269 ChromeURLRequestContext::~ChromeURLRequestContext() {
269 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 270 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
270 } 271 }
271 272
272 void ChromeURLRequestContext::CopyFrom(ChromeURLRequestContext* other) { 273 void ChromeURLRequestContext::CopyFrom(ChromeURLRequestContext* other) {
273 URLRequestContext::CopyFrom(other); 274 URLRequestContext::CopyFrom(other);
274 275
275 // Copy ChromeURLRequestContext parameters. 276 // Copy ChromeURLRequestContext parameters.
276 } 277 }
OLDNEW
« no previous file with comments | « chrome/browser/net/chrome_url_request_context.h ('k') | chrome/browser/profiles/off_the_record_profile_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698