Skip to content

Commit 14bc880

Browse files
committed
enable protocol interceptors
1 parent 0038f72 commit 14bc880

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

src/net/shell_url_request_context_getter.cc

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
#include "net/url_request/static_http_user_agent_settings.h"
6161
#include "net/url_request/url_request_context.h"
6262
#include "net/url_request/url_request_context_storage.h"
63+
#include "net/url_request/url_request_intercepting_job_factory.h"
6364
#include "net/url_request/url_request_job_factory_impl.h"
6465
#include "ui/base/l10n/l10n_util.h"
6566

@@ -132,6 +133,7 @@ ShellURLRequestContextGetter::ShellURLRequestContextGetter(
132133
MessageLoop* file_loop,
133134
ProtocolHandlerMap* protocol_handlers,
134135
ShellBrowserContext* browser_context,
136+
URLRequestInterceptorScopedVector request_interceptors,
135137
const std::string& auth_schemes,
136138
const std::string& auth_server_whitelist,
137139
const std::string& auth_delegate_whitelist,
@@ -149,6 +151,7 @@ ShellURLRequestContextGetter::ShellURLRequestContextGetter(
149151
io_loop_(io_loop),
150152
file_loop_(file_loop),
151153
browser_context_(browser_context),
154+
request_interceptors_(request_interceptors.Pass()),
152155
extension_info_map_(extension_info_map){
153156
// Must first be created on the UI thread.
154157
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -244,7 +247,7 @@ net::URLRequestContext* ShellURLRequestContextGetter::GetURLRequestContext() {
244247
net::HttpCache::DefaultBackend* main_backend =
245248
new net::HttpCache::DefaultBackend(
246249
net::DISK_CACHE,
247-
net::CACHE_BACKEND_SIMPLE,
250+
net::CACHE_BACKEND_BLOCKFILE,
248251
cache_path,
249252
10 * 1024 * 1024, // 10M
250253
BrowserThread::GetMessageLoopProxyForThread(
@@ -292,8 +295,19 @@ net::URLRequestContext* ShellURLRequestContextGetter::GetURLRequestContext() {
292295
new net::AppProtocolHandler(root_path_));
293296
job_factory->SetProtocolHandler("nw", new nw::NwProtocolHandler());
294297

295-
storage_->set_job_factory(job_factory.release());
298+
// Set up interceptors in the reverse order.
299+
scoped_ptr<net::URLRequestJobFactory> top_job_factory =
300+
job_factory.Pass();
301+
for (URLRequestInterceptorScopedVector::reverse_iterator i =
302+
request_interceptors_.rbegin();
303+
i != request_interceptors_.rend();
304+
++i) {
305+
top_job_factory.reset(new net::URLRequestInterceptingJobFactory(
306+
top_job_factory.Pass(), make_scoped_ptr(*i)));
307+
}
308+
request_interceptors_.weak_clear();
296309

310+
storage_->set_job_factory(top_job_factory.release());
297311
}
298312

299313
return url_request_context_.get();

src/net/shell_url_request_context_getter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class ShellBrowserContext;
6262
base::MessageLoop* file_loop,
6363
ProtocolHandlerMap* protocol_handlers,
6464
ShellBrowserContext*,
65+
URLRequestInterceptorScopedVector request_interceptors,
6566
const std::string& auth_schemes,
6667
const std::string& auth_server_whitelist,
6768
const std::string& auth_delegate_whitelist,
@@ -108,6 +109,7 @@ class ShellBrowserContext;
108109
scoped_ptr<net::URLSecurityManager> url_security_manager_;
109110
ProtocolHandlerMap protocol_handlers_;
110111
ShellBrowserContext* browser_context_;
112+
URLRequestInterceptorScopedVector request_interceptors_;
111113
extensions::InfoMap* extension_info_map_;
112114

113115
DISALLOW_COPY_AND_ASSIGN(ShellURLRequestContextGetter);

src/shell_browser_context.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ net::URLRequestContextGetter* ShellBrowserContext::CreateRequestContext(
185185
package_->path(),
186186
BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::IO),
187187
BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::FILE),
188-
protocol_handlers, this,
188+
protocol_handlers, this, protocol_interceptors.Pass(),
189189
auth_schemes, auth_server_whitelist, auth_delegate_whitelist,
190190
gssapi_library_name, extension_info_map);
191191

0 commit comments

Comments
 (0)