summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshalev@chromium.org <shalev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-24 01:06:58 +0000
committershalev@chromium.org <shalev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-24 01:06:58 +0000
commit9f170464e1ab4f1f75802a391db76408bc8998f2 (patch)
tree50ecf1c9c893ab12c59ee653d57732572128b7ed
parent3dc4019ef862889073cf16e875050a512e93aa3a (diff)
downloadchromium_src-9f170464e1ab4f1f75802a391db76408bc8998f2.zip
chromium_src-9f170464e1ab4f1f75802a391db76408bc8998f2.tar.gz
chromium_src-9f170464e1ab4f1f75802a391db76408bc8998f2.tar.bz2
Refactoring: ProtocolHandler::MaybeCreateJob and other functions take NetworkDelegate as argument
This change goes a long way to prepare for removing NetworkDelegate from URLRequestContext. TBR=sky@chromium.org, michaeln@chromium.org, benjhayden@chromium.org, brettw@chromium.org, ben@chromium.org, davemoore@chromium.org, zelidrag@chromium.org, mnissler@chromium.org, thestig@chromium.org, asargent@chromium.org, jhawkins@chromium.org, bulach@chromium.org BUG=crbug.com/142945 Review URL: https://chromiumcodereview.appspot.com/10855209 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153133 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/android/android_protocol_adapter.cc7
-rw-r--r--chrome/browser/android/android_stream_reader_url_request_job.cc4
-rw-r--r--chrome/browser/android/android_stream_reader_url_request_job.h6
-rw-r--r--chrome/browser/automation/url_request_automation_job.cc11
-rw-r--r--chrome/browser/automation/url_request_automation_job.h5
-rw-r--r--chrome/browser/captive_portal/captive_portal_browsertest.cc18
-rw-r--r--chrome/browser/chromeos/gdata/gdata_protocol_handler.cc13
-rw-r--r--chrome/browser/chromeos/gdata/gdata_protocol_handler.h3
-rw-r--r--chrome/browser/chromeos/gview_request_interceptor.cc9
-rw-r--r--chrome/browser/chromeos/gview_request_interceptor.h9
-rw-r--r--chrome/browser/chromeos/gview_request_interceptor_unittest.cc10
-rw-r--r--chrome/browser/chromeos/login/registration_screen.cc8
-rw-r--r--chrome/browser/chromeos/login/registration_screen.h2
-rw-r--r--chrome/browser/component_updater/component_updater_interceptor.cc4
-rw-r--r--chrome/browser/component_updater/component_updater_interceptor.h4
-rw-r--r--chrome/browser/custom_handlers/protocol_handler_registry.cc22
-rw-r--r--chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc3
-rw-r--r--chrome/browser/extensions/api/downloads/downloads_api_unittest.cc4
-rw-r--r--chrome/browser/extensions/autoupdate_interceptor.cc7
-rw-r--r--chrome/browser/extensions/autoupdate_interceptor.h4
-rw-r--r--chrome/browser/extensions/extension_protocols.cc47
-rw-r--r--chrome/browser/extensions/extension_resource_protocols.cc17
-rw-r--r--chrome/browser/extensions/user_script_listener_unittest.cc14
-rw-r--r--chrome/browser/net/about_protocol_handler.cc4
-rw-r--r--chrome/browser/net/about_protocol_handler.h3
-rw-r--r--chrome/browser/net/connect_interceptor.cc7
-rw-r--r--chrome/browser/net/connect_interceptor.h10
-rw-r--r--chrome/browser/net/url_request_mock_link_doctor_job.cc7
-rw-r--r--chrome/browser/net/url_request_mock_link_doctor_job.h3
-rw-r--r--chrome/browser/policy/device_management_service_browsertest.cc4
-rw-r--r--chrome/browser/printing/print_dialog_cloud_interative_uitest.cc23
-rw-r--r--chrome/browser/profiles/off_the_record_profile_io_data.cc10
-rw-r--r--chrome/browser/profiles/profile_impl_io_data.cc12
-rw-r--r--chrome/browser/ui/webui/chrome_url_data_manager_backend.cc21
-rw-r--r--chrome_frame/test/net/test_automation_provider.cc9
-rw-r--r--chrome_frame/test/net/test_automation_provider.h2
-rw-r--r--content/browser/histogram_internals_request_job.cc3
-rw-r--r--content/browser/histogram_internals_request_job.h3
-rw-r--r--content/browser/net/view_blob_internals_job_factory.cc4
-rw-r--r--content/browser/net/view_blob_internals_job_factory.h2
-rw-r--r--content/browser/net/view_http_cache_job_factory.cc10
-rw-r--r--content/browser/net/view_http_cache_job_factory.h4
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host_unittest.cc68
-rw-r--r--content/browser/resource_context_impl.cc20
-rw-r--r--content/browser/tcmalloc_internals_request_job.cc3
-rw-r--r--content/browser/tcmalloc_internals_request_job.h3
-rw-r--r--content/test/net/url_request_abort_on_end_job.cc9
-rw-r--r--content/test/net/url_request_abort_on_end_job.h4
-rw-r--r--content/test/net/url_request_failed_job.cc11
-rw-r--r--content/test/net/url_request_failed_job.h5
-rw-r--r--content/test/net/url_request_mock_http_job.cc18
-rw-r--r--content/test/net/url_request_mock_http_job.h4
-rw-r--r--content/test/net/url_request_slow_download_job.cc10
-rw-r--r--content/test/net/url_request_slow_download_job.h4
-rw-r--r--content/test/net/url_request_slow_http_job.cc16
-rw-r--r--content/test/net/url_request_slow_http_job.h4
-rw-r--r--net/proxy/proxy_script_fetcher_impl_unittest.cc14
-rw-r--r--net/url_request/data_protocol_handler.cc4
-rw-r--r--net/url_request/data_protocol_handler.h3
-rw-r--r--net/url_request/file_protocol_handler.cc19
-rw-r--r--net/url_request/file_protocol_handler.h7
-rw-r--r--net/url_request/ftp_protocol_handler.cc10
-rw-r--r--net/url_request/ftp_protocol_handler.h7
-rw-r--r--net/url_request/url_request.cc24
-rw-r--r--net/url_request/url_request.h13
-rw-r--r--net/url_request/url_request_about_job.cc10
-rw-r--r--net/url_request/url_request_about_job.h2
-rw-r--r--net/url_request/url_request_data_job.cc8
-rw-r--r--net/url_request/url_request_data_job.h2
-rw-r--r--net/url_request/url_request_error_job.cc7
-rw-r--r--net/url_request/url_request_error_job.h4
-rw-r--r--net/url_request/url_request_file_dir_job.cc6
-rw-r--r--net/url_request/url_request_file_dir_job.h4
-rw-r--r--net/url_request/url_request_file_job.cc20
-rw-r--r--net/url_request/url_request_file_job.h4
-rw-r--r--net/url_request/url_request_filter.cc8
-rw-r--r--net/url_request/url_request_filter.h1
-rw-r--r--net/url_request/url_request_filter_unittest.cc32
-rw-r--r--net/url_request/url_request_ftp_job.cc7
-rw-r--r--net/url_request/url_request_ftp_job.h1
-rw-r--r--net/url_request/url_request_ftp_job_unittest.cc4
-rw-r--r--net/url_request/url_request_http_job.cc13
-rw-r--r--net/url_request/url_request_http_job.h3
-rw-r--r--net/url_request/url_request_job_factory.cc18
-rw-r--r--net/url_request/url_request_job_factory.h30
-rw-r--r--net/url_request/url_request_job_factory_unittest.cc26
-rw-r--r--net/url_request/url_request_job_manager.cc38
-rw-r--r--net/url_request/url_request_job_manager.h9
-rw-r--r--net/url_request/url_request_redirect_job.cc5
-rw-r--r--net/url_request/url_request_redirect_job.h4
-rw-r--r--net/url_request/url_request_simple_job.cc7
-rw-r--r--net/url_request/url_request_simple_job.h2
-rw-r--r--net/url_request/url_request_test_job.cc16
-rw-r--r--net/url_request/url_request_test_job.h7
-rw-r--r--net/url_request/url_request_unittest.cc79
-rw-r--r--webkit/appcache/appcache_interceptor.cc12
-rw-r--r--webkit/appcache/appcache_interceptor.h8
-rw-r--r--webkit/appcache/appcache_request_handler.cc29
-rw-r--r--webkit/appcache/appcache_request_handler.h19
-rw-r--r--webkit/appcache/appcache_request_handler_unittest.cc156
-rw-r--r--webkit/appcache/appcache_update_job_unittest.cc46
-rw-r--r--webkit/appcache/appcache_url_request_job.cc7
-rw-r--r--webkit/appcache/appcache_url_request_job.h4
-rw-r--r--webkit/appcache/appcache_url_request_job_unittest.cc33
-rw-r--r--webkit/appcache/view_appcache_internals_job.cc54
-rw-r--r--webkit/appcache/view_appcache_internals_job.h5
-rw-r--r--webkit/blob/blob_url_request_job.cc3
-rw-r--r--webkit/blob/blob_url_request_job.h1
-rw-r--r--webkit/blob/blob_url_request_job_factory.cc5
-rw-r--r--webkit/blob/blob_url_request_job_factory.h3
-rw-r--r--webkit/blob/blob_url_request_job_unittest.cc2
-rw-r--r--webkit/blob/view_blob_internals_job.cc6
-rw-r--r--webkit/blob/view_blob_internals_job.h1
-rw-r--r--webkit/fileapi/file_system_dir_url_request_job.cc8
-rw-r--r--webkit/fileapi/file_system_dir_url_request_job.h1
-rw-r--r--webkit/fileapi/file_system_dir_url_request_job_unittest.cc8
-rw-r--r--webkit/fileapi/file_system_url_request_job.cc8
-rw-r--r--webkit/fileapi/file_system_url_request_job.h1
-rw-r--r--webkit/fileapi/file_system_url_request_job_factory.cc11
-rw-r--r--webkit/fileapi/file_system_url_request_job_unittest.cc3
-rw-r--r--webkit/fileapi/file_writer_delegate_unittest.cc6
-rw-r--r--webkit/fileapi/local_file_system_operation_write_unittest.cc4
-rw-r--r--webkit/tools/test_shell/test_shell.cc17
123 files changed, 931 insertions, 559 deletions
diff --git a/chrome/browser/android/android_protocol_adapter.cc b/chrome/browser/android/android_protocol_adapter.cc
index 3229ee4..aea7092 100644
--- a/chrome/browser/android/android_protocol_adapter.cc
+++ b/chrome/browser/android/android_protocol_adapter.cc
@@ -74,7 +74,9 @@ static bool InitJNIBindings(JNIEnv* env) {
// static
net::URLRequestJob* AndroidProtocolAdapter::Factory(
- net::URLRequest* request, const std::string& scheme) {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
DCHECK(scheme == chrome::kFileScheme ||
scheme == chrome::kContentScheme);
JNIEnv* env = AttachCurrentThread();
@@ -90,11 +92,12 @@ net::URLRequestJob* AndroidProtocolAdapter::Factory(
if (scheme == chrome::kFileScheme &&
!StartsWithASCII(url, assetPrefix, /*case_sensitive=*/ true) &&
!StartsWithASCII(url, resourcePrefix, /*case_sensitive=*/ true)) {
- return net::URLRequestFileJob::Factory(request, scheme);
+ return net::URLRequestFileJob::Factory(request, network_delegate, scheme);
}
return new AndroidStreamReaderURLRequestJob(
request,
+ network_delegate,
scoped_ptr<AndroidStreamReaderURLRequestJob::Delegate>(
new AndroidStreamReaderURLRequestJobDelegateImpl()));
}
diff --git a/chrome/browser/android/android_stream_reader_url_request_job.cc b/chrome/browser/android/android_stream_reader_url_request_job.cc
index 1c67b69..49c1d6b 100644
--- a/chrome/browser/android/android_stream_reader_url_request_job.cc
+++ b/chrome/browser/android/android_stream_reader_url_request_job.cc
@@ -12,7 +12,6 @@
#include "net/base/net_util.h"
#include "net/http/http_util.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_error_job.h"
#include "net/url_request/url_request_file_job.h"
#include "net/url_request/url_request_job_manager.h"
@@ -41,8 +40,9 @@ const int kBufferSize = 4096;
AndroidStreamReaderURLRequestJob::AndroidStreamReaderURLRequestJob(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
scoped_ptr<Delegate> delegate)
- : URLRequestJob(request, request->context()->network_delegate()),
+ : URLRequestJob(request, network_delegate),
delegate_(delegate.Pass()) {
DCHECK(delegate_.get());
}
diff --git a/chrome/browser/android/android_stream_reader_url_request_job.h b/chrome/browser/android/android_stream_reader_url_request_job.h
index 9200701..06394f8 100644
--- a/chrome/browser/android/android_stream_reader_url_request_job.h
+++ b/chrome/browser/android/android_stream_reader_url_request_job.h
@@ -43,8 +43,10 @@ class AndroidStreamReaderURLRequestJob : public net::URLRequestJob {
virtual ~Delegate() {}
};
- explicit AndroidStreamReaderURLRequestJob(net::URLRequest* request,
- scoped_ptr<Delegate> delegate);
+ explicit AndroidStreamReaderURLRequestJob(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ scoped_ptr<Delegate> delegate);
// Register JNI methods.
static bool InitJNIBindings(JNIEnv* env);
diff --git a/chrome/browser/automation/url_request_automation_job.cc b/chrome/browser/automation/url_request_automation_job.cc
index 8b41e57..f7cd433 100644
--- a/chrome/browser/automation/url_request_automation_job.cc
+++ b/chrome/browser/automation/url_request_automation_job.cc
@@ -52,11 +52,12 @@ net::URLRequest::ProtocolFactory* URLRequestAutomationJob::old_https_factory_
URLRequestAutomationJob::URLRequestAutomationJob(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
int tab,
int request_id,
AutomationResourceMessageFilter* filter,
bool is_pending)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
id_(0),
tab_(tab),
message_filter_(filter),
@@ -95,6 +96,7 @@ void URLRequestAutomationJob::EnsureProtocolFactoryRegistered() {
net::URLRequestJob* URLRequestAutomationJob::Factory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
bool scheme_is_http = request->url().SchemeIs("http");
bool scheme_is_https = request->url().SchemeIs("https");
@@ -108,7 +110,8 @@ net::URLRequestJob* URLRequestAutomationJob::Factory(
AutomationResourceMessageFilter::AutomationDetails details;
if (AutomationResourceMessageFilter::LookupRegisteredRenderView(
child_id, route_id, &details)) {
- URLRequestAutomationJob* job = new URLRequestAutomationJob(request,
+ URLRequestAutomationJob* job = new URLRequestAutomationJob(
+ request, network_delegate,
details.tab_handle, info->GetRequestID(), details.filter,
details.is_pending_render_view);
return job;
@@ -116,9 +119,9 @@ net::URLRequestJob* URLRequestAutomationJob::Factory(
}
if (scheme_is_http && old_http_factory_)
- return old_http_factory_(request, scheme);
+ return old_http_factory_(request, network_delegate, scheme);
else if (scheme_is_https && old_https_factory_)
- return old_https_factory_(request, scheme);
+ return old_https_factory_(request, network_delegate, scheme);
}
return NULL;
}
diff --git a/chrome/browser/automation/url_request_automation_job.h b/chrome/browser/automation/url_request_automation_job.h
index 6fedd07..ec7cce7 100644
--- a/chrome/browser/automation/url_request_automation_job.h
+++ b/chrome/browser/automation/url_request_automation_job.h
@@ -28,7 +28,10 @@ class Message;
// automation.
class URLRequestAutomationJob : public net::URLRequestJob {
public:
- URLRequestAutomationJob(net::URLRequest* request, int tab, int request_id,
+ URLRequestAutomationJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ int tab,
+ int request_id,
AutomationResourceMessageFilter* filter,
bool is_pending);
diff --git a/chrome/browser/captive_portal/captive_portal_browsertest.cc b/chrome/browser/captive_portal/captive_portal_browsertest.cc
index 09b3460..3077621 100644
--- a/chrome/browser/captive_portal/captive_portal_browsertest.cc
+++ b/chrome/browser/captive_portal/captive_portal_browsertest.cc
@@ -134,7 +134,8 @@ class URLRequestTimeoutOnDemandJob : public net::URLRequestJob,
ABANDON_JOBS,
};
- explicit URLRequestTimeoutOnDemandJob(net::URLRequest* request);
+ URLRequestTimeoutOnDemandJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
virtual ~URLRequestTimeoutOnDemandJob();
// Attempts to removes |this| from |jobs_|. Returns true if it was removed
@@ -226,8 +227,8 @@ void URLRequestTimeoutOnDemandJob::AbandonJobs(int expected_num_jobs) {
}
URLRequestTimeoutOnDemandJob::URLRequestTimeoutOnDemandJob(
- net::URLRequest* request)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ net::URLRequest* request, net::NetworkDelegate* network_delegate)
+ : net::URLRequestJob(request, network_delegate),
next_job_(NULL) {
}
@@ -343,6 +344,7 @@ class URLRequestMockCaptivePortalJobFactory {
// kMockHttpsQuickTimeoutUrl. See documentation of individual URLs for
// actual behavior.
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme);
static bool behind_captive_portal_;
@@ -398,6 +400,7 @@ void URLRequestMockCaptivePortalJobFactory::SetBehindCaptivePortalOnIOThread(
// static
net::URLRequestJob* URLRequestMockCaptivePortalJobFactory::Factory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -408,19 +411,22 @@ net::URLRequestJob* URLRequestMockCaptivePortalJobFactory::Factory(
if (request->url() == GURL(kMockHttpsUrl) ||
request->url() == GURL(kMockHttpsUrl2)) {
if (behind_captive_portal_)
- return new URLRequestTimeoutOnDemandJob(request);
+ return new URLRequestTimeoutOnDemandJob(request, network_delegate);
// Once logged in to the portal, HTTPS requests return the page that was
// actually requested.
return new URLRequestMockHTTPJob(
request,
+ network_delegate,
root_http.Append(FILE_PATH_LITERAL("title2.html")));
} else if (request->url() == GURL(kMockHttpsQuickTimeoutUrl)) {
if (behind_captive_portal_)
- return new URLRequestFailedJob(request, net::ERR_CONNECTION_TIMED_OUT);
+ return new URLRequestFailedJob(
+ request, network_delegate, net::ERR_CONNECTION_TIMED_OUT);
// Once logged in to the portal, HTTPS requests return the page that was
// actually requested.
return new URLRequestMockHTTPJob(
request,
+ network_delegate,
root_http.Append(FILE_PATH_LITERAL("title2.html")));
} else {
// The URL should be the captive portal test URL.
@@ -430,12 +436,14 @@ net::URLRequestJob* URLRequestMockCaptivePortalJobFactory::Factory(
// Prior to logging in to the portal, HTTP requests go to the login page.
return new URLRequestMockHTTPJob(
request,
+ network_delegate,
root_http.Append(FILE_PATH_LITERAL("captive_portal/login.html")));
}
// After logging in to the portal, the test URL returns a 204 response.
return new URLRequestMockHTTPJob(
request,
+ network_delegate,
root_http.Append(FILE_PATH_LITERAL("captive_portal/page204.html")));
}
}
diff --git a/chrome/browser/chromeos/gdata/gdata_protocol_handler.cc b/chrome/browser/chromeos/gdata/gdata_protocol_handler.cc
index c45ae80..079b111 100644
--- a/chrome/browser/chromeos/gdata/gdata_protocol_handler.cc
+++ b/chrome/browser/chromeos/gdata/gdata_protocol_handler.cc
@@ -34,7 +34,6 @@
#include "net/http/http_response_headers.h"
#include "net/http/http_response_info.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_job.h"
using content::BrowserThread;
@@ -130,7 +129,8 @@ void CancelGDataDownloadOnUIThread(const FilePath& gdata_file_path) {
// formatted as drive://<resource-id>.
class GDataURLRequestJob : public net::URLRequestJob {
public:
- explicit GDataURLRequestJob(net::URLRequest* request);
+ GDataURLRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
// net::URLRequestJob overrides:
virtual void Start() OVERRIDE;
@@ -224,8 +224,9 @@ class GDataURLRequestJob : public net::URLRequestJob {
DISALLOW_COPY_AND_ASSIGN(GDataURLRequestJob);
};
-GDataURLRequestJob::GDataURLRequestJob(net::URLRequest* request)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+GDataURLRequestJob::GDataURLRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestJob(request, network_delegate),
weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(
new base::WeakPtrFactory<GDataURLRequestJob>(this))),
file_system_(NULL),
@@ -934,9 +935,9 @@ GDataProtocolHandler::~GDataProtocolHandler() {
}
net::URLRequestJob* GDataProtocolHandler::MaybeCreateJob(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
DVLOG(1) << "Handling url: " << request->url().spec();
- return new GDataURLRequestJob(request);
+ return new GDataURLRequestJob(request, network_delegate);
}
} // namespace gdata
diff --git a/chrome/browser/chromeos/gdata/gdata_protocol_handler.h b/chrome/browser/chromeos/gdata/gdata_protocol_handler.h
index 90b9bcd..5396716 100644
--- a/chrome/browser/chromeos/gdata/gdata_protocol_handler.h
+++ b/chrome/browser/chromeos/gdata/gdata_protocol_handler.h
@@ -15,7 +15,8 @@ class GDataProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler {
virtual ~GDataProtocolHandler();
// Creates URLRequestJobs for drive:// URLs.
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
};
} // namespace gdata
diff --git a/chrome/browser/chromeos/gview_request_interceptor.cc b/chrome/browser/chromeos/gview_request_interceptor.cc
index 67aa267..530e2a9 100644
--- a/chrome/browser/chromeos/gview_request_interceptor.cc
+++ b/chrome/browser/chromeos/gview_request_interceptor.cc
@@ -51,7 +51,7 @@ GViewRequestInterceptor::~GViewRequestInterceptor() {
}
net::URLRequestJob* GViewRequestInterceptor::MaybeIntercept(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
// Don't attempt to intercept here as we want to wait until the mime
// type is fully determined.
return NULL;
@@ -59,7 +59,8 @@ net::URLRequestJob* GViewRequestInterceptor::MaybeIntercept(
net::URLRequestJob* GViewRequestInterceptor::MaybeInterceptRedirect(
const GURL& location,
- net::URLRequest* request) const {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const {
return NULL;
}
@@ -87,7 +88,7 @@ bool GViewRequestInterceptor::ShouldInterceptScheme(
}
net::URLRequestJob* GViewRequestInterceptor::MaybeInterceptResponse(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
// Do not intercept this request if it is a download.
if (request->load_flags() & net::LOAD_IS_DOWNLOAD) {
return NULL;
@@ -112,7 +113,7 @@ net::URLRequestJob* GViewRequestInterceptor::MaybeInterceptResponse(
if (supported_mime_types_.count(mime_type) > 0) {
std::string url(kGViewUrlPrefix);
url += net::EscapePath(request->url().spec());
- return new net::URLRequestRedirectJob(request, GURL(url));
+ return new net::URLRequestRedirectJob(request, network_delegate, GURL(url));
}
return NULL;
}
diff --git a/chrome/browser/chromeos/gview_request_interceptor.h b/chrome/browser/chromeos/gview_request_interceptor.h
index 6b2ca83..41b7947 100644
--- a/chrome/browser/chromeos/gview_request_interceptor.h
+++ b/chrome/browser/chromeos/gview_request_interceptor.h
@@ -26,18 +26,21 @@ class GViewRequestInterceptor : public net::URLRequestJobFactory::Interceptor {
// Always returns NULL because we don't want to attempt a redirect
// before seeing the detected mime type of the request.
virtual net::URLRequestJob* MaybeIntercept(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
// Always returns NULL.
virtual net::URLRequestJob* MaybeInterceptRedirect(
const GURL& location,
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
// Determines if the requested document can be viewed by the Google
// Document Viewer. If it can, returns a net::URLRequestJob that
// redirects the browser to the view URL.
virtual net::URLRequestJob* MaybeInterceptResponse(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
bool ShouldUsePdfPlugin(net::URLRequest* request) const;
diff --git a/chrome/browser/chromeos/gview_request_interceptor_unittest.cc b/chrome/browser/chromeos/gview_request_interceptor_unittest.cc
index 76c0c0c..ca074a9 100644
--- a/chrome/browser/chromeos/gview_request_interceptor_unittest.cc
+++ b/chrome/browser/chromeos/gview_request_interceptor_unittest.cc
@@ -45,8 +45,9 @@ const char kPptUrlIntercepted[] =
class GViewURLRequestTestJob : public net::URLRequestTestJob {
public:
- explicit GViewURLRequestTestJob(net::URLRequest* request)
- : net::URLRequestTestJob(request, true) {
+ GViewURLRequestTestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestTestJob(request, network_delegate, true) {
}
virtual bool GetMimeType(std::string* mime_type) const {
@@ -79,8 +80,9 @@ class GViewRequestProtocolFactory
GViewRequestProtocolFactory() {}
virtual ~GViewRequestProtocolFactory() {}
- virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const {
- return new GViewURLRequestTestJob(request);
+ virtual net::URLRequestJob* MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
+ return new GViewURLRequestTestJob(request, network_delegate);
}
};
diff --git a/chrome/browser/chromeos/login/registration_screen.cc b/chrome/browser/chromeos/login/registration_screen.cc
index 913aada..c156159 100644
--- a/chrome/browser/chromeos/login/registration_screen.cc
+++ b/chrome/browser/chromeos/login/registration_screen.cc
@@ -138,10 +138,12 @@ void RegistrationScreen::CloseScreen(ScreenObserver::ExitCodes code) {
}
// static
-net::URLRequestJob* RegistrationScreen::Factory(net::URLRequest* request,
- const std::string& scheme) {
+net::URLRequestJob* RegistrationScreen::Factory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
VLOG(1) << "Handling url: " << request->url().spec().c_str();
- return new net::URLRequestAboutJob(request);
+ return new net::URLRequestAboutJob(request, network_delegate);
}
} // namespace chromeos
diff --git a/chrome/browser/chromeos/login/registration_screen.h b/chrome/browser/chromeos/login/registration_screen.h
index 3ba1af2..31bde9b 100644
--- a/chrome/browser/chromeos/login/registration_screen.h
+++ b/chrome/browser/chromeos/login/registration_screen.h
@@ -18,6 +18,7 @@ class GURL;
class Profile;
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
} // namespace net
@@ -57,6 +58,7 @@ class RegistrationScreen : public ViewScreen<RegistrationView>,
// Handler factory for net::URLRequestFilter::AddHostnameHandler.
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme);
private:
diff --git a/chrome/browser/component_updater/component_updater_interceptor.cc b/chrome/browser/component_updater/component_updater_interceptor.cc
index afd7b0d..41d7eae 100644
--- a/chrome/browser/component_updater/component_updater_interceptor.cc
+++ b/chrome/browser/component_updater/component_updater_interceptor.cc
@@ -6,6 +6,7 @@
#include "base/file_util.h"
#include "base/threading/thread_restrictions.h"
#include "content/public/browser/browser_thread.h"
+#include "net/url_request/url_request.h"
#include "net/url_request/url_request_test_job.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -21,7 +22,7 @@ ComponentUpdateInterceptor::~ComponentUpdateInterceptor() {
}
net::URLRequestJob* ComponentUpdateInterceptor::MaybeIntercept(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO));
if (request->url().scheme() != "http" ||
request->url().host() != "localhost") {
@@ -43,6 +44,7 @@ net::URLRequestJob* ComponentUpdateInterceptor::MaybeIntercept(
EXPECT_TRUE(file_util::ReadFileToString(response.data_path, &contents));
return new net::URLRequestTestJob(request,
+ network_delegate,
response.headers,
contents,
true);
diff --git a/chrome/browser/component_updater/component_updater_interceptor.h b/chrome/browser/component_updater/component_updater_interceptor.h
index 9f310a4..67b9199 100644
--- a/chrome/browser/component_updater/component_updater_interceptor.h
+++ b/chrome/browser/component_updater/component_updater_interceptor.h
@@ -37,7 +37,9 @@ class ComponentUpdateInterceptor
private:
// When computing matches, this ignores the query parameters of the url.
- virtual net::URLRequestJob* MaybeIntercept(net::URLRequest* request) OVERRIDE;
+ virtual net::URLRequestJob* MaybeIntercept(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) OVERRIDE;
friend class base::RefCountedThreadSafe<ComponentUpdateInterceptor>;
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.cc b/chrome/browser/custom_handlers/protocol_handler_registry.cc
index 518be11..12ca2f2 100644
--- a/chrome/browser/custom_handlers/protocol_handler_registry.cc
+++ b/chrome/browser/custom_handlers/protocol_handler_registry.cc
@@ -90,7 +90,8 @@ class ProtocolHandlerRegistry::Core
// Creates a URL request job for the given request if there is a matching
// protocol handler, returns NULL otherwise.
- net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const;
+ net::URLRequestJob* MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const;
// Indicate that the registry has been enabled in the IO thread's
// copy of the data.
@@ -137,7 +138,7 @@ void ProtocolHandlerRegistry::Core::SetDefault(const ProtocolHandler& handler) {
// is registered and the associated handler is able to interpret
// the url from |request|.
net::URLRequestJob* ProtocolHandlerRegistry::Core::MaybeCreateJob(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
ProtocolHandler handler = LookupHandler(default_handlers_,
@@ -149,7 +150,8 @@ net::URLRequestJob* ProtocolHandlerRegistry::Core::MaybeCreateJob(
if (!translated_url.is_valid())
return NULL;
- return new net::URLRequestRedirectJob(request, translated_url);
+ return new net::URLRequestRedirectJob(
+ request, network_delegate, translated_url);
}
// URLInterceptor ------------------------------------------------------------
@@ -165,17 +167,21 @@ class ProtocolHandlerRegistry::URLInterceptor
virtual ~URLInterceptor();
virtual net::URLRequestJob* MaybeIntercept(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
virtual bool WillHandleProtocol(const std::string& protocol) const OVERRIDE;
virtual net::URLRequestJob* MaybeInterceptRedirect(
- const GURL& url, net::URLRequest* request) const OVERRIDE {
+ const GURL& url,
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
virtual net::URLRequestJob* MaybeInterceptResponse(
- net::URLRequest* request) const OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
@@ -193,10 +199,10 @@ ProtocolHandlerRegistry::URLInterceptor::~URLInterceptor() {
}
net::URLRequestJob* ProtocolHandlerRegistry::URLInterceptor::MaybeIntercept(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- return core_->MaybeCreateJob(request);
+ return core_->MaybeCreateJob(request, network_delegate);
}
bool ProtocolHandlerRegistry::URLInterceptor::WillHandleProtocol(
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
index 784e134..26a2fb4 100644
--- a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
+++ b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
@@ -34,7 +34,8 @@ void AssertInterceptedIO(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
net::URLRequestContext context;
net::URLRequest request(url, NULL, &context);
- scoped_refptr<net::URLRequestJob> job = interceptor->MaybeIntercept(&request);
+ scoped_refptr<net::URLRequestJob> job = interceptor->MaybeIntercept(
+ &request, context.network_delegate());
ASSERT_TRUE(job.get() != NULL);
}
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_unittest.cc b/chrome/browser/extensions/api/downloads/downloads_api_unittest.cc
index d4cd8d3..88be724 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api_unittest.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api_unittest.cc
@@ -626,9 +626,11 @@ class TestProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler {
virtual ~TestProtocolHandler() {}
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
return new webkit_blob::BlobURLRequestJob(
request,
+ network_delegate,
blob_storage_controller_->GetBlobDataFromUrl(request->url()),
base::MessageLoopProxy::current());
}
diff --git a/chrome/browser/extensions/autoupdate_interceptor.cc b/chrome/browser/extensions/autoupdate_interceptor.cc
index 34e01b6..febc9cf 100644
--- a/chrome/browser/extensions/autoupdate_interceptor.cc
+++ b/chrome/browser/extensions/autoupdate_interceptor.cc
@@ -8,6 +8,7 @@
#include "base/file_util.h"
#include "base/threading/thread_restrictions.h"
#include "content/public/browser/browser_thread.h"
+#include "net/url_request/url_request.h"
#include "net/url_request/url_request_test_job.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -21,8 +22,10 @@ namespace extensions {
class AutoUpdateTestRequestJob : public net::URLRequestTestJob {
public:
AutoUpdateTestRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& response_data)
: net::URLRequestTestJob(request,
+ network_delegate,
net::URLRequestTestJob::test_headers(),
response_data,
true) {
@@ -44,7 +47,7 @@ AutoUpdateInterceptor::~AutoUpdateInterceptor() {
}
net::URLRequestJob* AutoUpdateInterceptor::MaybeIntercept(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO));
if (request->url().scheme() != "http" ||
request->url().host() != "localhost") {
@@ -69,7 +72,7 @@ net::URLRequestJob* AutoUpdateInterceptor::MaybeIntercept(
std::string contents;
EXPECT_TRUE(file_util::ReadFileToString(i->second, &contents));
- return new AutoUpdateTestRequestJob(request, contents);
+ return new AutoUpdateTestRequestJob(request, network_delegate, contents);
}
diff --git a/chrome/browser/extensions/autoupdate_interceptor.h b/chrome/browser/extensions/autoupdate_interceptor.h
index 36dd7c9..cfc06590 100644
--- a/chrome/browser/extensions/autoupdate_interceptor.h
+++ b/chrome/browser/extensions/autoupdate_interceptor.h
@@ -23,7 +23,9 @@ class AutoUpdateInterceptor
// When computing matches, this ignores query parameters (since the autoupdate
// fetch code appends a bunch of them to manifest fetches).
- virtual net::URLRequestJob* MaybeIntercept(net::URLRequest* request) OVERRIDE;
+ virtual net::URLRequestJob* MaybeIntercept(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) OVERRIDE;
// When requests for |url| arrive, respond with the contents of |path|. The
// hostname of |url| must be "localhost" to avoid DNS lookups, and the scheme
diff --git a/chrome/browser/extensions/extension_protocols.cc b/chrome/browser/extensions/extension_protocols.cc
index 8dc1af8..70af6bf 100644
--- a/chrome/browser/extensions/extension_protocols.cc
+++ b/chrome/browser/extensions/extension_protocols.cc
@@ -31,7 +31,6 @@
#include "net/base/net_errors.h"
#include "net/http/http_response_headers.h"
#include "net/http/http_response_info.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_error_job.h"
#include "net/url_request/url_request_file_job.h"
#include "net/url_request/url_request_simple_job.h"
@@ -69,10 +68,13 @@ void ReadMimeTypeFromFile(const FilePath& filename,
class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
public:
- URLRequestResourceBundleJob(
- net::URLRequest* request, const FilePath& filename, int resource_id,
- const std::string& content_security_policy, bool send_cors_header)
- : net::URLRequestSimpleJob(request),
+ URLRequestResourceBundleJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const FilePath& filename,
+ int resource_id,
+ const std::string& content_security_policy,
+ bool send_cors_header)
+ : net::URLRequestSimpleJob(request, network_delegate),
filename_(filename),
resource_id_(resource_id),
weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
@@ -146,9 +148,10 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
class GeneratedBackgroundPageJob : public net::URLRequestSimpleJob {
public:
GeneratedBackgroundPageJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const scoped_refptr<const Extension> extension,
const std::string& content_security_policy)
- : net::URLRequestSimpleJob(request),
+ : net::URLRequestSimpleJob(request, network_delegate),
extension_(extension) {
const bool send_cors_headers = false;
response_info_.headers = BuildHttpHeaders(content_security_policy,
@@ -192,13 +195,12 @@ void ReadResourceFilePath(const ExtensionResource& resource,
class URLRequestExtensionJob : public net::URLRequestFileJob {
public:
URLRequestExtensionJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& extension_id,
const FilePath& directory_path,
const std::string& content_security_policy,
bool send_cors_header)
- : net::URLRequestFileJob(request,
- FilePath(),
- request->context()->network_delegate()),
+ : net::URLRequestFileJob(request, network_delegate, FilePath()),
// TODO(tc): Move all of these files into resources.pak so we don't break
// when updating on Linux.
resource_(extension_id, directory_path,
@@ -306,7 +308,8 @@ class ExtensionProtocolHandler
virtual ~ExtensionProtocolHandler() {}
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
const bool is_incognito_;
@@ -316,11 +319,13 @@ class ExtensionProtocolHandler
// Creates URLRequestJobs for extension:// URLs.
net::URLRequestJob*
-ExtensionProtocolHandler::MaybeCreateJob(net::URLRequest* request) const {
+ExtensionProtocolHandler::MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
// TODO(mpcomplete): better error code.
if (!AllowExtensionResourceLoad(
request, is_incognito_, extension_info_map_)) {
- return new net::URLRequestErrorJob(request, net::ERR_ADDRESS_UNREACHABLE);
+ return new net::URLRequestErrorJob(
+ request, network_delegate, net::ERR_ADDRESS_UNREACHABLE);
}
// chrome-extension://extension-id/resource/path.js
@@ -357,7 +362,7 @@ ExtensionProtocolHandler::MaybeCreateJob(net::URLRequest* request) const {
if (path.size() > 1 &&
path.substr(1) == extension_filenames::kGeneratedBackgroundPageFilename) {
return new GeneratedBackgroundPageJob(
- request, extension, content_security_policy);
+ request, network_delegate, extension, content_security_policy);
}
FilePath resources_path;
@@ -382,15 +387,23 @@ ExtensionProtocolHandler::MaybeCreateJob(net::URLRequest* request) const {
FilePath().AppendASCII(kComponentExtensionResources[i].name);
bm_resource_path = bm_resource_path.NormalizePathSeparators();
if (relative_path == bm_resource_path) {
- return new URLRequestResourceBundleJob(request, relative_path,
- kComponentExtensionResources[i].value, content_security_policy,
+ return new URLRequestResourceBundleJob(
+ request,
+ network_delegate,
+ relative_path,
+ kComponentExtensionResources[i].value,
+ content_security_policy,
send_cors_header);
}
}
}
- return new URLRequestExtensionJob(request, extension_id, directory_path,
- content_security_policy, send_cors_header);
+ return new URLRequestExtensionJob(request,
+ network_delegate,
+ extension_id,
+ directory_path,
+ content_security_policy,
+ send_cors_header);
}
} // namespace
diff --git a/chrome/browser/extensions/extension_resource_protocols.cc b/chrome/browser/extensions/extension_resource_protocols.cc
index 91a9b02..cb3d2cc 100644
--- a/chrome/browser/extensions/extension_resource_protocols.cc
+++ b/chrome/browser/extensions/extension_resource_protocols.cc
@@ -9,18 +9,16 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/extension_file_util.h"
#include "content/public/browser/browser_thread.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_file_job.h"
namespace {
class ExtensionResourcesJob : public net::URLRequestFileJob {
public:
- explicit ExtensionResourcesJob(net::URLRequest* request)
- : net::URLRequestFileJob(request,
- FilePath(),
- request->context()->network_delegate()),
- thread_id_(content::BrowserThread::UI) {
+ ExtensionResourcesJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestFileJob(request, network_delegate, FilePath()),
+ thread_id_(content::BrowserThread::UI) {
}
virtual void Start() OVERRIDE;
@@ -65,7 +63,8 @@ class ExtensionResourceProtocolHandler
virtual ~ExtensionResourceProtocolHandler() {}
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
DISALLOW_COPY_AND_ASSIGN(ExtensionResourceProtocolHandler);
@@ -74,8 +73,8 @@ class ExtensionResourceProtocolHandler
// Creates URLRequestJobs for chrome-extension-resource:// URLs.
net::URLRequestJob*
ExtensionResourceProtocolHandler::MaybeCreateJob(
- net::URLRequest* request) const {
- return new ExtensionResourcesJob(request);
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
+ return new ExtensionResourcesJob(request, network_delegate);
}
} // namespace
diff --git a/chrome/browser/extensions/user_script_listener_unittest.cc b/chrome/browser/extensions/user_script_listener_unittest.cc
index 93d7c0b..42d2011 100644
--- a/chrome/browser/extensions/user_script_listener_unittest.cc
+++ b/chrome/browser/extensions/user_script_listener_unittest.cc
@@ -58,8 +58,13 @@ class ThrottleController : public base::SupportsUserData::Data,
// whether it starts and finishes.
class SimpleTestJob : public net::URLRequestTestJob {
public:
- explicit SimpleTestJob(net::URLRequest* request)
- : net::URLRequestTestJob(request, test_headers(), kTestData, true) {}
+ SimpleTestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestTestJob(request,
+ network_delegate,
+ test_headers(),
+ kTestData,
+ true) {}
private:
~SimpleTestJob() {}
};
@@ -116,8 +121,9 @@ class UserScriptListenerTest
}
// net::URLRequest::Interceptor
- virtual net::URLRequestJob* MaybeIntercept(net::URLRequest* request) {
- return new SimpleTestJob(request);
+ virtual net::URLRequestJob* MaybeIntercept(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
+ return new SimpleTestJob(request, network_delegate);
}
protected:
diff --git a/chrome/browser/net/about_protocol_handler.cc b/chrome/browser/net/about_protocol_handler.cc
index 9eea3d5..20a8f1f 100644
--- a/chrome/browser/net/about_protocol_handler.cc
+++ b/chrome/browser/net/about_protocol_handler.cc
@@ -12,9 +12,9 @@ AboutProtocolHandler::AboutProtocolHandler() {
}
URLRequestJob* AboutProtocolHandler::MaybeCreateJob(
- URLRequest* request) const {
+ URLRequest* request, NetworkDelegate* network_delegate) const {
DCHECK(false);
- return new URLRequestAboutJob(request);
+ return new URLRequestAboutJob(request, network_delegate);
}
} // namespace net
diff --git a/chrome/browser/net/about_protocol_handler.h b/chrome/browser/net/about_protocol_handler.h
index 6e1c5da..46bbe6f 100644
--- a/chrome/browser/net/about_protocol_handler.h
+++ b/chrome/browser/net/about_protocol_handler.h
@@ -17,7 +17,8 @@ class URLRequestJob;
class AboutProtocolHandler : public URLRequestJobFactory::ProtocolHandler {
public:
AboutProtocolHandler();
- virtual URLRequestJob* MaybeCreateJob(URLRequest* request) const OVERRIDE;
+ virtual URLRequestJob* MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
private:
DISALLOW_COPY_AND_ASSIGN(AboutProtocolHandler);
diff --git a/chrome/browser/net/connect_interceptor.cc b/chrome/browser/net/connect_interceptor.cc
index 0ea6dbd..c1d6dea 100644
--- a/chrome/browser/net/connect_interceptor.cc
+++ b/chrome/browser/net/connect_interceptor.cc
@@ -28,7 +28,7 @@ ConnectInterceptor::~ConnectInterceptor() {
}
net::URLRequestJob* ConnectInterceptor::MaybeIntercept(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
GURL request_scheme_host(Predictor::CanonicalizeUrl(request->url()));
if (request_scheme_host == GURL::EmptyGURL())
return NULL;
@@ -88,13 +88,14 @@ net::URLRequestJob* ConnectInterceptor::MaybeIntercept(
}
net::URLRequestJob* ConnectInterceptor::MaybeInterceptResponse(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
return NULL;
}
net::URLRequestJob* ConnectInterceptor::MaybeInterceptRedirect(
const GURL& location,
- net::URLRequest* request) const {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const {
return NULL;
}
diff --git a/chrome/browser/net/connect_interceptor.h b/chrome/browser/net/connect_interceptor.h
index 5fb3da7..1cef9fe 100644
--- a/chrome/browser/net/connect_interceptor.h
+++ b/chrome/browser/net/connect_interceptor.h
@@ -28,11 +28,15 @@ class ConnectInterceptor : public net::URLRequestJobFactory::Interceptor {
// Overridden from net::URLRequest::Interceptor:
// Learn about referrers, and optionally preconnect based on history.
virtual net::URLRequestJob* MaybeIntercept(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
virtual net::URLRequestJob* MaybeInterceptResponse(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
virtual net::URLRequestJob* MaybeInterceptRedirect(
- const GURL& location, net::URLRequest* request) const OVERRIDE;
+ const GURL& location,
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
// Provide access to local class TimedCache for testing.
diff --git a/chrome/browser/net/url_request_mock_link_doctor_job.cc b/chrome/browser/net/url_request_mock_link_doctor_job.cc
index fb6563e..d68122b 100644
--- a/chrome/browser/net/url_request_mock_link_doctor_job.cc
+++ b/chrome/browser/net/url_request_mock_link_doctor_job.cc
@@ -24,8 +24,9 @@ FilePath GetMockFilePath() {
// static
net::URLRequestJob* URLRequestMockLinkDoctorJob::Factory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
- return new URLRequestMockLinkDoctorJob(request);
+ return new URLRequestMockLinkDoctorJob(request, network_delegate);
}
// static
@@ -37,6 +38,6 @@ void URLRequestMockLinkDoctorJob::AddUrlHandler() {
}
URLRequestMockLinkDoctorJob::URLRequestMockLinkDoctorJob(
- net::URLRequest* request)
- : URLRequestMockHTTPJob(request, GetMockFilePath()) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate)
+ : URLRequestMockHTTPJob(request, network_delegate, GetMockFilePath()) {
}
diff --git a/chrome/browser/net/url_request_mock_link_doctor_job.h b/chrome/browser/net/url_request_mock_link_doctor_job.h
index eba6c57..c559d06 100644
--- a/chrome/browser/net/url_request_mock_link_doctor_job.h
+++ b/chrome/browser/net/url_request_mock_link_doctor_job.h
@@ -11,7 +11,8 @@
class URLRequestMockLinkDoctorJob : public URLRequestMockHTTPJob {
public:
- explicit URLRequestMockLinkDoctorJob(net::URLRequest* request);
+ URLRequestMockLinkDoctorJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
static net::URLRequest::ProtocolFactory Factory;
diff --git a/chrome/browser/policy/device_management_service_browsertest.cc b/chrome/browser/policy/device_management_service_browsertest.cc
index ff532ba..e01cc0a 100644
--- a/chrome/browser/policy/device_management_service_browsertest.cc
+++ b/chrome/browser/policy/device_management_service_browsertest.cc
@@ -42,7 +42,8 @@ class CannedResponseInterceptor : public net::URLRequest::Interceptor {
// net::URLRequest::Interceptor overrides.
virtual net::URLRequestJob* MaybeIntercept(
- net::URLRequest* request) OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) OVERRIDE {
em::DeviceManagementRequest dm_request;
net::UploadData* upload = request->get_upload_mutable();
if (request->url().GetOrigin() == service_url_.GetOrigin() &&
@@ -54,6 +55,7 @@ class CannedResponseInterceptor : public net::URLRequest::Interceptor {
upload->elements()->at(0).bytes_length(),
&response_data);
return new net::URLRequestTestJob(request,
+ network_delegate,
net::URLRequestTestJob::test_headers(),
response_data,
true);
diff --git a/chrome/browser/printing/print_dialog_cloud_interative_uitest.cc b/chrome/browser/printing/print_dialog_cloud_interative_uitest.cc
index cb71eaa..fabc49e 100644
--- a/chrome/browser/printing/print_dialog_cloud_interative_uitest.cc
+++ b/chrome/browser/printing/print_dialog_cloud_interative_uitest.cc
@@ -29,6 +29,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/test_browser_thread.h"
+#include "net/url_request/url_request.h"
#include "net/url_request/url_request_filter.h"
#include "net/url_request/url_request_test_job.h"
#include "net/url_request/url_request_test_util.h"
@@ -70,9 +71,13 @@ class TestData {
// whether it starts and finishes.
class SimpleTestJob : public net::URLRequestTestJob {
public:
- explicit SimpleTestJob(net::URLRequest* request)
- : net::URLRequestTestJob(request, test_headers(),
- TestData::GetInstance()->GetTestData(), true) {}
+ SimpleTestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestTestJob(request,
+ network_delegate,
+ test_headers(),
+ TestData::GetInstance()->GetTestData(),
+ true) {}
virtual void GetResponseInfo(net::HttpResponseInfo* info) {
net::URLRequestTestJob::GetResponseInfo(info);
@@ -220,18 +225,22 @@ class PrintDialogCloudTest : public InProcessBrowserTest {
AutoQuitDelegate delegate_;
};
-net::URLRequestJob* PrintDialogCloudTest::Factory(net::URLRequest* request,
- const std::string& scheme) {
+net::URLRequestJob* PrintDialogCloudTest::Factory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
if (request &&
(request->url() == TestController::GetInstance()->expected_url())) {
if (TestController::GetInstance()->use_delegate())
request->set_delegate(TestController::GetInstance()->delegate());
TestController::GetInstance()->set_result(true);
- return new SimpleTestJob(request);
+ return new SimpleTestJob(request, network_delegate);
}
return new net::URLRequestTestJob(request,
+ network_delegate,
net::URLRequestTestJob::test_headers(),
- "", true);
+ "",
+ true);
}
#if defined(OS_WIN)
diff --git a/chrome/browser/profiles/off_the_record_profile_io_data.cc b/chrome/browser/profiles/off_the_record_profile_io_data.cc
index eca2df4..2e0b896 100644
--- a/chrome/browser/profiles/off_the_record_profile_io_data.cc
+++ b/chrome/browser/profiles/off_the_record_profile_io_data.cc
@@ -256,14 +256,15 @@ void OffTheRecordProfileIOData::LazyInitializeInternal(
extensions_job_factory_.reset(new net::URLRequestJobFactory);
int set_protocol = main_job_factory_->SetProtocolHandler(
- chrome::kFileScheme, new net::FileProtocolHandler(network_delegate()));
+ chrome::kFileScheme, new net::FileProtocolHandler());
DCHECK(set_protocol);
- // TODO(shalev): Without a network_delegate this protocol handler will never
+ // TODO(shalev): The extension_job_factory_ has a NULL NetworkDelegate.
+ // Without a network_delegate, this protocol handler will never
// handle file: requests, but as a side effect it makes
// job_factory::IsHandledProtocol return true, which prevents attempts to
// handle the protocol externally.
set_protocol = extensions_job_factory_->SetProtocolHandler(
- chrome::kFileScheme, new net::FileProtocolHandler(NULL));
+ chrome::kFileScheme, new net::FileProtocolHandler());
DCHECK(set_protocol);
set_protocol = main_job_factory_->SetProtocolHandler(
@@ -359,8 +360,7 @@ void OffTheRecordProfileIOData::CreateFtpProtocolHandler(
net::FtpAuthCache* ftp_auth_cache) const {
job_factory->SetProtocolHandler(
chrome::kFtpScheme,
- new net::FtpProtocolHandler(
- network_delegate(), ftp_factory_.get(), ftp_auth_cache));
+ new net::FtpProtocolHandler(ftp_factory_.get(), ftp_auth_cache));
}
chrome_browser_net::LoadTimeStats* OffTheRecordProfileIOData::GetLoadTimeStats(
diff --git a/chrome/browser/profiles/profile_impl_io_data.cc b/chrome/browser/profiles/profile_impl_io_data.cc
index 60a349f..d2afc28 100644
--- a/chrome/browser/profiles/profile_impl_io_data.cc
+++ b/chrome/browser/profiles/profile_impl_io_data.cc
@@ -456,17 +456,18 @@ void ProfileImplIOData::LazyInitializeInternal(
extensions_job_factory_.reset(new net::URLRequestJobFactory);
int set_protocol = main_job_factory_->SetProtocolHandler(
- chrome::kFileScheme, new net::FileProtocolHandler(network_delegate()));
+ chrome::kFileScheme, new net::FileProtocolHandler());
DCHECK(set_protocol);
set_protocol = media_request_job_factory_->SetProtocolHandler(
- chrome::kFileScheme, new net::FileProtocolHandler(network_delegate()));
+ chrome::kFileScheme, new net::FileProtocolHandler());
DCHECK(set_protocol);
- // TODO(shalev): Without a network_delegate this protocol handler will never
+ // TODO(shalev): The extensions_job_factory has a NULL NetworkDelegate.
+ // Without a network_delegate, this protocol handler will never
// handle file: requests, but as a side effect it makes
// job_factory::IsHandledProtocol return true, which prevents attempts to
// handle the protocol externally.
set_protocol = extensions_job_factory_->SetProtocolHandler(
- chrome::kFileScheme, new net::FileProtocolHandler(NULL));
+ chrome::kFileScheme, new net::FileProtocolHandler());
DCHECK(set_protocol);
set_protocol = main_job_factory_->SetProtocolHandler(
@@ -662,8 +663,7 @@ void ProfileImplIOData::CreateFtpProtocolHandler(
net::FtpAuthCache* ftp_auth_cache) const {
job_factory->SetProtocolHandler(
chrome::kFtpScheme,
- new net::FtpProtocolHandler(network_delegate(),
- ftp_factory_.get(),
+ new net::FtpProtocolHandler(ftp_factory_.get(),
ftp_auth_cache));
}
diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc
index b11da17..aa1a7e0 100644
--- a/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc
+++ b/chrome/browser/ui/webui/chrome_url_data_manager_backend.cc
@@ -162,6 +162,7 @@ class URLRequestChromeJob : public net::URLRequestJob,
public base::SupportsWeakPtr<URLRequestChromeJob> {
public:
URLRequestChromeJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
ChromeURLDataManagerBackend* backend);
// net::URLRequestJob implementation.
@@ -223,8 +224,9 @@ class URLRequestChromeJob : public net::URLRequestJob,
};
URLRequestChromeJob::URLRequestChromeJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
ChromeURLDataManagerBackend* backend)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
data_offset_(0),
pending_buf_size_(0),
allow_caching_(true),
@@ -361,7 +363,8 @@ class ChromeProtocolHandler
~ChromeProtocolHandler();
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
// These members are owned by ProfileIOData, which owns this ProtocolHandler.
@@ -377,11 +380,11 @@ ChromeProtocolHandler::ChromeProtocolHandler(
ChromeProtocolHandler::~ChromeProtocolHandler() {}
net::URLRequestJob* ChromeProtocolHandler::MaybeCreateJob(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
DCHECK(request);
// Fall back to using a custom handler
- return new URLRequestChromeJob(request, backend_);
+ return new URLRequestChromeJob(request, network_delegate, backend_);
}
} // namespace
@@ -573,7 +576,8 @@ class DevToolsJobFactory
virtual ~DevToolsJobFactory();
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
// |backend_| and |network_delegate_| are owned by ProfileIOData, which owns
@@ -594,14 +598,15 @@ DevToolsJobFactory::DevToolsJobFactory(ChromeURLDataManagerBackend* backend,
DevToolsJobFactory::~DevToolsJobFactory() {}
net::URLRequestJob*
-DevToolsJobFactory::MaybeCreateJob(net::URLRequest* request) const {
+DevToolsJobFactory::MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
if (ShouldLoadFromDisk()) {
FilePath path;
if (IsSupportedURL(request->url(), &path))
- return new net::URLRequestFileJob(request, path, network_delegate_);
+ return new net::URLRequestFileJob(request, network_delegate, path);
}
- return new URLRequestChromeJob(request, backend_);
+ return new URLRequestChromeJob(request, network_delegate, backend_);
}
} // namespace
diff --git a/chrome_frame/test/net/test_automation_provider.cc b/chrome_frame/test/net/test_automation_provider.cc
index 980b3e5..9012a19 100644
--- a/chrome_frame/test/net/test_automation_provider.cc
+++ b/chrome_frame/test/net/test_automation_provider.cc
@@ -69,8 +69,10 @@ bool TestAutomationProvider::Send(IPC::Message* msg) {
return AutomationProvider::Send(msg);
}
-net::URLRequestJob* TestAutomationProvider::Factory(net::URLRequest* request,
- const std::string& scheme) {
+net::URLRequestJob* TestAutomationProvider::Factory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
if (CFTestsDisabled())
return NULL;
@@ -89,7 +91,8 @@ net::URLRequestJob* TestAutomationProvider::Factory(net::URLRequest* request,
// and without userdata, we're OK. However, just to make debugging
// a little easier, we have a significantly higher start value.
static int new_id = 0x00100000;
- URLRequestAutomationJob* job = new URLRequestAutomationJob(request,
+ URLRequestAutomationJob* job = new URLRequestAutomationJob(
+ request, network_delegate,
g_provider_instance_->tab_handle_, new_id++,
g_provider_instance_->automation_resource_message_filter_, false);
return job;
diff --git a/chrome_frame/test/net/test_automation_provider.h b/chrome_frame/test/net/test_automation_provider.h
index 76c74b8..2c84d76 100644
--- a/chrome_frame/test/net/test_automation_provider.h
+++ b/chrome_frame/test/net/test_automation_provider.h
@@ -8,6 +8,7 @@
#include "chrome/browser/automation/automation_provider.h"
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
} // namespace net
@@ -42,6 +43,7 @@ class TestAutomationProvider
// Protocol factory for handling http/https requests over automation.
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme);
// Call to instantiate and initialize a new instance of
diff --git a/content/browser/histogram_internals_request_job.cc b/content/browser/histogram_internals_request_job.cc
index 8989210..ad59f2a 100644
--- a/content/browser/histogram_internals_request_job.cc
+++ b/content/browser/histogram_internals_request_job.cc
@@ -15,7 +15,8 @@
namespace content {
HistogramInternalsRequestJob::HistogramInternalsRequestJob(
- net::URLRequest* request) : net::URLRequestSimpleJob(request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate)
+ : net::URLRequestSimpleJob(request, network_delegate) {
const std::string& spec = request->url().possibly_invalid_spec();
const url_parse::Parsed& parsed =
request->url().parsed_for_possibly_invalid_spec();
diff --git a/content/browser/histogram_internals_request_job.h b/content/browser/histogram_internals_request_job.h
index b5d11ce..4be774b 100644
--- a/content/browser/histogram_internals_request_job.h
+++ b/content/browser/histogram_internals_request_job.h
@@ -14,7 +14,8 @@ namespace content {
class HistogramInternalsRequestJob : public net::URLRequestSimpleJob {
public:
- explicit HistogramInternalsRequestJob(net::URLRequest* request);
+ HistogramInternalsRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
virtual int GetData(std::string* mime_type,
std::string* charset,
diff --git a/content/browser/net/view_blob_internals_job_factory.cc b/content/browser/net/view_blob_internals_job_factory.cc
index 32dbd99..ab98a97 100644
--- a/content/browser/net/view_blob_internals_job_factory.cc
+++ b/content/browser/net/view_blob_internals_job_factory.cc
@@ -7,7 +7,6 @@
#include "base/memory/scoped_ptr.h"
#include "base/string_util.h"
#include "content/public/common/url_constants.h"
-#include "net/url_request/url_request.h"
#include "webkit/blob/view_blob_internals_job.h"
// static.
@@ -19,7 +18,8 @@ bool ViewBlobInternalsJobFactory::IsSupportedURL(const GURL& url) {
// static.
net::URLRequestJob* ViewBlobInternalsJobFactory::CreateJobForRequest(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
webkit_blob::BlobStorageController* blob_storage_controller) {
return new webkit_blob::ViewBlobInternalsJob(
- request, blob_storage_controller);
+ request, network_delegate, blob_storage_controller);
}
diff --git a/content/browser/net/view_blob_internals_job_factory.h b/content/browser/net/view_blob_internals_job_factory.h
index 71ba830..e4c36eb 100644
--- a/content/browser/net/view_blob_internals_job_factory.h
+++ b/content/browser/net/view_blob_internals_job_factory.h
@@ -6,6 +6,7 @@
#define CONTENT_BROWSER_NET_VIEW_BLOB_INTERNALS_JOB_FACTORY_H_
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
} // namespace net
@@ -20,6 +21,7 @@ class ViewBlobInternalsJobFactory {
static bool IsSupportedURL(const GURL& url);
static net::URLRequestJob* CreateJobForRequest(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
webkit_blob::BlobStorageController* blob_storage_controller);
};
diff --git a/content/browser/net/view_http_cache_job_factory.cc b/content/browser/net/view_http_cache_job_factory.cc
index dddb9ba..716f4a3 100644
--- a/content/browser/net/view_http_cache_job_factory.cc
+++ b/content/browser/net/view_http_cache_job_factory.cc
@@ -15,7 +15,6 @@
#include "net/base/completion_callback.h"
#include "net/base/net_errors.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_simple_job.h"
#include "net/url_request/view_cache_helper.h"
@@ -24,8 +23,9 @@ namespace {
// A job subclass that dumps an HTTP cache entry.
class ViewHttpCacheJob : public net::URLRequestJob {
public:
- explicit ViewHttpCacheJob(net::URLRequest* request)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ ViewHttpCacheJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestJob(request, network_delegate),
core_(new Core),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
ALLOW_THIS_IN_INITIALIZER_LIST(
@@ -197,6 +197,6 @@ bool ViewHttpCacheJobFactory::IsSupportedURL(const GURL& url) {
// Static.
net::URLRequestJob* ViewHttpCacheJobFactory::CreateJobForRequest(
- net::URLRequest* request) {
- return new ViewHttpCacheJob(request);
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
+ return new ViewHttpCacheJob(request, network_delegate);
}
diff --git a/content/browser/net/view_http_cache_job_factory.h b/content/browser/net/view_http_cache_job_factory.h
index abd5777..88c84da 100644
--- a/content/browser/net/view_http_cache_job_factory.h
+++ b/content/browser/net/view_http_cache_job_factory.h
@@ -6,6 +6,7 @@
#define CONTENT_BROWSER_NET_VIEW_HTTP_CACHE_JOB_FACTORY_H_
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
} // namespace net
@@ -15,7 +16,8 @@ class GURL;
class ViewHttpCacheJobFactory {
public:
static bool IsSupportedURL(const GURL& url);
- static net::URLRequestJob* CreateJobForRequest(net::URLRequest* request);
+ static net::URLRequestJob* CreateJobForRequest(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate);
};
#endif // CONTENT_BROWSER_NET_VIEW_HTTP_CACHE_JOB_FACTORY_H_
diff --git a/content/browser/renderer_host/resource_dispatcher_host_unittest.cc b/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
index d22181d..6d96949 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
@@ -209,20 +209,27 @@ class ForwardingFilter : public ResourceMessageFilter {
// not complete start upon entry, only when specifically told to.
class URLRequestTestDelayedStartJob : public net::URLRequestTestJob {
public:
- URLRequestTestDelayedStartJob(net::URLRequest* request)
- : net::URLRequestTestJob(request) {
+ URLRequestTestDelayedStartJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestTestJob(request, network_delegate) {
Init();
}
- URLRequestTestDelayedStartJob(net::URLRequest* request, bool auto_advance)
- : net::URLRequestTestJob(request, auto_advance) {
+ URLRequestTestDelayedStartJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ bool auto_advance)
+ : net::URLRequestTestJob(request, network_delegate, auto_advance) {
Init();
}
URLRequestTestDelayedStartJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& response_headers,
const std::string& response_data,
bool auto_advance)
- : net::URLRequestTestJob(
- request, response_headers, response_data, auto_advance) {
+ : net::URLRequestTestJob(request,
+ network_delegate,
+ response_headers,
+ response_data,
+ auto_advance) {
Init();
}
@@ -286,17 +293,23 @@ URLRequestTestDelayedStartJob::list_head_ = NULL;
// returns IO_pending errors before every read, not just the first one.
class URLRequestTestDelayedCompletionJob : public net::URLRequestTestJob {
public:
- explicit URLRequestTestDelayedCompletionJob(net::URLRequest* request)
- : net::URLRequestTestJob(request) {}
URLRequestTestDelayedCompletionJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestTestJob(request, network_delegate) {}
+ URLRequestTestDelayedCompletionJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
bool auto_advance)
- : net::URLRequestTestJob(request, auto_advance) {}
+ : net::URLRequestTestJob(request, network_delegate, auto_advance) {}
URLRequestTestDelayedCompletionJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& response_headers,
const std::string& response_data,
bool auto_advance)
- : net::URLRequestTestJob(request, response_headers,
- response_data, auto_advance) {}
+ : net::URLRequestTestJob(request,
+ network_delegate,
+ response_headers,
+ response_data,
+ auto_advance) {}
protected:
~URLRequestTestDelayedCompletionJob() {}
@@ -307,8 +320,9 @@ class URLRequestTestDelayedCompletionJob : public net::URLRequestTestJob {
class URLRequestBigJob : public net::URLRequestSimpleJob {
public:
- URLRequestBigJob(net::URLRequest* request)
- : net::URLRequestSimpleJob(request) {
+ URLRequestBigJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate)
+ : net::URLRequestSimpleJob(request, network_delegate) {
}
virtual int GetData(std::string* mime_type,
@@ -564,31 +578,35 @@ class ResourceDispatcherHostTest : public testing::Test,
// Our own net::URLRequestJob factory.
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
if (test_fixture_->response_headers_.empty()) {
if (delay_start_) {
- return new URLRequestTestDelayedStartJob(request);
+ return new URLRequestTestDelayedStartJob(request, network_delegate);
} else if (delay_complete_) {
- return new URLRequestTestDelayedCompletionJob(request);
+ return new URLRequestTestDelayedCompletionJob(request,
+ network_delegate);
} else if (scheme == "big-job") {
- return new URLRequestBigJob(request);
+ return new URLRequestBigJob(request, network_delegate);
} else {
- return new net::URLRequestTestJob(request);
+ return new net::URLRequestTestJob(request, network_delegate);
}
} else {
if (delay_start_) {
return new URLRequestTestDelayedStartJob(
- request, test_fixture_->response_headers_,
- test_fixture_->response_data_, false);
+ request, network_delegate,
+ test_fixture_->response_headers_, test_fixture_->response_data_,
+ false);
} else if (delay_complete_) {
return new URLRequestTestDelayedCompletionJob(
- request, test_fixture_->response_headers_,
- test_fixture_->response_data_, false);
+ request, network_delegate,
+ test_fixture_->response_headers_, test_fixture_->response_data_,
+ false);
} else {
- return new net::URLRequestTestJob(request,
- test_fixture_->response_headers_,
- test_fixture_->response_data_,
- false);
+ return new net::URLRequestTestJob(
+ request, network_delegate,
+ test_fixture_->response_headers_, test_fixture_->response_data_,
+ false);
}
}
}
diff --git a/content/browser/resource_context_impl.cc b/content/browser/resource_context_impl.cc
index 8281aea..7e3555d 100644
--- a/content/browser/resource_context_impl.cc
+++ b/content/browser/resource_context_impl.cc
@@ -94,36 +94,38 @@ class DeveloperProtocolHandler
virtual ~DeveloperProtocolHandler() {}
virtual net::URLRequestJob* MaybeIntercept(
- net::URLRequest* request) const OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
// Check for chrome://view-http-cache/*, which uses its own job type.
if (ViewHttpCacheJobFactory::IsSupportedURL(request->url()))
- return ViewHttpCacheJobFactory::CreateJobForRequest(request);
+ return ViewHttpCacheJobFactory::CreateJobForRequest(request,
+ network_delegate);
// Next check for chrome://appcache-internals/, which uses its own job type.
if (request->url().SchemeIs(chrome::kChromeUIScheme) &&
request->url().host() == chrome::kChromeUIAppCacheInternalsHost) {
return appcache::ViewAppCacheInternalsJobFactory::CreateJobForRequest(
- request, appcache_service_);
+ request, network_delegate, appcache_service_);
}
// Next check for chrome://blob-internals/, which uses its own job type.
if (ViewBlobInternalsJobFactory::IsSupportedURL(request->url())) {
return ViewBlobInternalsJobFactory::CreateJobForRequest(
- request, blob_storage_controller_);
+ request, network_delegate, blob_storage_controller_);
}
#if defined(USE_TCMALLOC)
// Next check for chrome://tcmalloc/, which uses its own job type.
if (request->url().SchemeIs(chrome::kChromeUIScheme) &&
request->url().host() == chrome::kChromeUITcmallocHost) {
- return new TcmallocInternalsRequestJob(request);
+ return new TcmallocInternalsRequestJob(request, network_delegate);
}
#endif
// Next check for chrome://histograms/, which uses its own job type.
if (request->url().SchemeIs(chrome::kChromeUIScheme) &&
request->url().host() == chrome::kChromeUIHistogramHost) {
- return new HistogramInternalsRequestJob(request);
+ return new HistogramInternalsRequestJob(request, network_delegate);
}
return NULL;
@@ -131,12 +133,14 @@ class DeveloperProtocolHandler
virtual net::URLRequestJob* MaybeInterceptRedirect(
const GURL& location,
- net::URLRequest* request) const OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
virtual net::URLRequestJob* MaybeInterceptResponse(
- net::URLRequest* request) const OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
diff --git a/content/browser/tcmalloc_internals_request_job.cc b/content/browser/tcmalloc_internals_request_job.cc
index 5b0c45b..2c4ef0d 100644
--- a/content/browser/tcmalloc_internals_request_job.cc
+++ b/content/browser/tcmalloc_internals_request_job.cc
@@ -57,7 +57,8 @@ void AboutTcmallocOutputs::DumpToHTMLTable(std::string* data) {
}
TcmallocInternalsRequestJob::TcmallocInternalsRequestJob(
- net::URLRequest* request) : net::URLRequestSimpleJob(request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate)
+ : net::URLRequestSimpleJob(request, network_delegate) {
}
#if defined(USE_TCMALLOC)
diff --git a/content/browser/tcmalloc_internals_request_job.h b/content/browser/tcmalloc_internals_request_job.h
index e70c274..d74b656 100644
--- a/content/browser/tcmalloc_internals_request_job.h
+++ b/content/browser/tcmalloc_internals_request_job.h
@@ -48,7 +48,8 @@ class AboutTcmallocOutputs {
class TcmallocInternalsRequestJob : public net::URLRequestSimpleJob {
public:
- explicit TcmallocInternalsRequestJob(net::URLRequest* request);
+ TcmallocInternalsRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
virtual int GetData(std::string* mime_type,
std::string* charset,
diff --git a/content/test/net/url_request_abort_on_end_job.cc b/content/test/net/url_request_abort_on_end_job.cc
index 8216220..17312ad 100644
--- a/content/test/net/url_request_abort_on_end_job.cc
+++ b/content/test/net/url_request_abort_on_end_job.cc
@@ -14,7 +14,6 @@
#include "net/base/net_errors.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_filter.h"
#include "net/url_request/url_request_status.h"
@@ -35,9 +34,10 @@ void URLRequestAbortOnEndJob::AddUrlHandler() {
// static
net::URLRequestJob* URLRequestAbortOnEndJob::Factory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
- return new URLRequestAbortOnEndJob(request);
+ return new URLRequestAbortOnEndJob(request, network_delegate);
}
// Private const version.
@@ -58,8 +58,9 @@ void URLRequestAbortOnEndJob::GetResponseInfoConst(
info->headers = new net::HttpResponseHeaders(raw_headers);
}
-URLRequestAbortOnEndJob::URLRequestAbortOnEndJob(net::URLRequest* request)
- : URLRequestJob(request, request->context()->network_delegate()),
+URLRequestAbortOnEndJob::URLRequestAbortOnEndJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate)
+ : URLRequestJob(request, network_delegate),
sent_data_(false),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
diff --git a/content/test/net/url_request_abort_on_end_job.h b/content/test/net/url_request_abort_on_end_job.h
index 56e80b2..e1045a28 100644
--- a/content/test/net/url_request_abort_on_end_job.h
+++ b/content/test/net/url_request_abort_on_end_job.h
@@ -29,12 +29,14 @@ class URLRequestAbortOnEndJob : public net::URLRequestJob {
int* bytes_read) OVERRIDE;
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme);
static void AddUrlHandler();
private:
- explicit URLRequestAbortOnEndJob(net::URLRequest* request);
+ URLRequestAbortOnEndJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
virtual ~URLRequestAbortOnEndJob();
void GetResponseInfoConst(net::HttpResponseInfo* info) const;
diff --git a/content/test/net/url_request_failed_job.cc b/content/test/net/url_request_failed_job.cc
index a9efd18..0283386 100644
--- a/content/test/net/url_request_failed_job.cc
+++ b/content/test/net/url_request_failed_job.cc
@@ -10,7 +10,6 @@
#include "base/string_number_conversions.h"
#include "net/base/net_errors.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_filter.h"
namespace {
@@ -42,8 +41,9 @@ GURL GetMockUrl(const std::string& scheme, int net_error) {
} // namespace
URLRequestFailedJob::URLRequestFailedJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
int net_error)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
net_error_(net_error),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {}
@@ -77,9 +77,12 @@ GURL URLRequestFailedJob::GetMockHttpsUrl(int net_error) {
}
// static
-net::URLRequestJob* URLRequestFailedJob::Factory(net::URLRequest* request,
+net::URLRequestJob* URLRequestFailedJob::Factory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
- return new URLRequestFailedJob(request, GetErrorCode(request));
+ return new URLRequestFailedJob(
+ request, network_delegate, GetErrorCode(request));
}
void URLRequestFailedJob::StartAsync() {
diff --git a/content/test/net/url_request_failed_job.h b/content/test/net/url_request_failed_job.h
index 9c8a387..39ab9d0f 100644
--- a/content/test/net/url_request_failed_job.h
+++ b/content/test/net/url_request_failed_job.h
@@ -16,7 +16,9 @@
// trying to connect.
class URLRequestFailedJob : public net::URLRequestJob {
public:
- URLRequestFailedJob(net::URLRequest* request, int net_error);
+ URLRequestFailedJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ int net_error);
virtual void Start() OVERRIDE;
@@ -31,6 +33,7 @@ class URLRequestFailedJob : public net::URLRequestJob {
private:
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme);
virtual ~URLRequestFailedJob();
diff --git a/content/test/net/url_request_mock_http_job.cc b/content/test/net/url_request_mock_http_job.cc
index 69f57622d..5a4d28d 100644
--- a/content/test/net/url_request_mock_http_job.cc
+++ b/content/test/net/url_request_mock_http_job.cc
@@ -12,7 +12,6 @@
#include "content/public/common/url_constants.h"
#include "net/base/net_util.h"
#include "net/http/http_response_headers.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_filter.h"
const char kMockHostname[] = "mock.http";
@@ -31,9 +30,12 @@ FilePath& BasePath() {
} // namespace
// static
-net::URLRequestJob* URLRequestMockHTTPJob::Factory(net::URLRequest* request,
- const std::string& scheme) {
+net::URLRequestJob* URLRequestMockHTTPJob::Factory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
return new URLRequestMockHTTPJob(request,
+ network_delegate,
GetOnDiskPath(BasePath(), request, scheme));
}
@@ -81,11 +83,11 @@ FilePath URLRequestMockHTTPJob::GetOnDiskPath(const FilePath& base_path,
return file_path;
}
-URLRequestMockHTTPJob::URLRequestMockHTTPJob(net::URLRequest* request,
- const FilePath& file_path)
- : net::URLRequestFileJob(request,
- file_path,
- request->context()->network_delegate()) { }
+URLRequestMockHTTPJob::URLRequestMockHTTPJob(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const FilePath& file_path)
+ : net::URLRequestFileJob(request, network_delegate, file_path) { }
// Public virtual version.
void URLRequestMockHTTPJob::GetResponseInfo(net::HttpResponseInfo* info) {
diff --git a/content/test/net/url_request_mock_http_job.h b/content/test/net/url_request_mock_http_job.h
index d5bbee1..2c8434c 100644
--- a/content/test/net/url_request_mock_http_job.h
+++ b/content/test/net/url_request_mock_http_job.h
@@ -15,7 +15,9 @@ class FilePath;
class URLRequestMockHTTPJob : public net::URLRequestFileJob {
public:
- URLRequestMockHTTPJob(net::URLRequest* request, const FilePath& file_path);
+ URLRequestMockHTTPJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const FilePath& file_path);
virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
virtual int GetResponseCode() const OVERRIDE;
diff --git a/content/test/net/url_request_slow_download_job.cc b/content/test/net/url_request_slow_download_job.cc
index 5fc435d..4d69145 100644
--- a/content/test/net/url_request_slow_download_job.cc
+++ b/content/test/net/url_request_slow_download_job.cc
@@ -15,7 +15,6 @@
#include "net/base/io_buffer.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_filter.h"
using content::BrowserThread;
@@ -55,9 +54,11 @@ void URLRequestSlowDownloadJob::AddUrlHandler() {
// static
net::URLRequestJob* URLRequestSlowDownloadJob::Factory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- URLRequestSlowDownloadJob* job = new URLRequestSlowDownloadJob(request);
+ URLRequestSlowDownloadJob* job = new URLRequestSlowDownloadJob(
+ request, network_delegate);
if (request->url().spec() != kFinishDownloadUrl)
pending_requests_.Get().insert(job);
return job;
@@ -79,8 +80,9 @@ void URLRequestSlowDownloadJob::FinishPendingRequests() {
}
}
-URLRequestSlowDownloadJob::URLRequestSlowDownloadJob(net::URLRequest* request)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+URLRequestSlowDownloadJob::URLRequestSlowDownloadJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate)
+ : net::URLRequestJob(request, network_delegate),
bytes_already_sent_(0),
should_finish_download_(false),
buffer_size_(0),
diff --git a/content/test/net/url_request_slow_download_job.h b/content/test/net/url_request_slow_download_job.h
index fe5489e..bc7c1ea 100644
--- a/content/test/net/url_request_slow_download_job.h
+++ b/content/test/net/url_request_slow_download_job.h
@@ -40,6 +40,7 @@ class URLRequestSlowDownloadJob : public net::URLRequestJob {
int *bytes_read) OVERRIDE;
static net::URLRequestJob* Factory(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme);
// Returns the current number of URLRequestSlowDownloadJobs that have
@@ -50,7 +51,8 @@ class URLRequestSlowDownloadJob : public net::URLRequestJob {
static void AddUrlHandler();
private:
- explicit URLRequestSlowDownloadJob(net::URLRequest* request);
+ URLRequestSlowDownloadJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
virtual ~URLRequestSlowDownloadJob();
// Enum indicating where we are in the read after a call to
diff --git a/content/test/net/url_request_slow_http_job.cc b/content/test/net/url_request_slow_http_job.cc
index 7aa6001..b5d30aa 100644
--- a/content/test/net/url_request_slow_http_job.cc
+++ b/content/test/net/url_request_slow_http_job.cc
@@ -27,9 +27,11 @@ const int URLRequestSlowHTTPJob::kDelayMs = 1000;
using base::TimeDelta;
// static
-net::URLRequestJob* URLRequestSlowHTTPJob::Factory(net::URLRequest* request,
- const std::string& scheme) {
- return new URLRequestSlowHTTPJob(request,
+net::URLRequestJob* URLRequestSlowHTTPJob::Factory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
+ return new URLRequestSlowHTTPJob(request, network_delegate,
GetOnDiskPath(BasePath(), request, scheme));
}
@@ -54,9 +56,11 @@ GURL URLRequestSlowHTTPJob::GetMockUrl(const FilePath& path) {
return GURL(url);
}
-URLRequestSlowHTTPJob::URLRequestSlowHTTPJob(net::URLRequest* request,
- const FilePath& file_path)
- : URLRequestMockHTTPJob(request, file_path) { }
+URLRequestSlowHTTPJob::URLRequestSlowHTTPJob(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const FilePath& file_path)
+ : URLRequestMockHTTPJob(request, network_delegate, file_path) { }
void URLRequestSlowHTTPJob::Start() {
delay_timer_.Start(FROM_HERE, TimeDelta::FromMilliseconds(kDelayMs), this,
diff --git a/content/test/net/url_request_slow_http_job.h b/content/test/net/url_request_slow_http_job.h
index 27265a7..cbb2d7e 100644
--- a/content/test/net/url_request_slow_http_job.h
+++ b/content/test/net/url_request_slow_http_job.h
@@ -12,7 +12,9 @@
class URLRequestSlowHTTPJob : public URLRequestMockHTTPJob {
public:
- URLRequestSlowHTTPJob(net::URLRequest* request, const FilePath& file_path);
+ URLRequestSlowHTTPJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const FilePath& file_path);
static const int kDelayMs;
diff --git a/net/proxy/proxy_script_fetcher_impl_unittest.cc b/net/proxy/proxy_script_fetcher_impl_unittest.cc
index bd6404b..7ece88c 100644
--- a/net/proxy/proxy_script_fetcher_impl_unittest.cc
+++ b/net/proxy/proxy_script_fetcher_impl_unittest.cc
@@ -49,19 +49,21 @@ struct FetchResult {
class CheckNoRevocationFlagSetInterceptor :
public URLRequestJobFactory::Interceptor {
public:
- virtual URLRequestJob* MaybeIntercept(URLRequest* request) const OVERRIDE {
+ virtual URLRequestJob* MaybeIntercept(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
EXPECT_TRUE(request->load_flags() & LOAD_DISABLE_CERT_REVOCATION_CHECKING);
return NULL;
}
- virtual URLRequestJob* MaybeInterceptRedirect(const GURL& location,
- URLRequest* request)
- const OVERRIDE {
+ virtual URLRequestJob* MaybeInterceptRedirect(
+ const GURL& location,
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
- virtual URLRequestJob* MaybeInterceptResponse(URLRequest* request)
- const OVERRIDE{
+ virtual URLRequestJob* MaybeInterceptResponse(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
};
diff --git a/net/url_request/data_protocol_handler.cc b/net/url_request/data_protocol_handler.cc
index 3ad5e21..3222f72 100644
--- a/net/url_request/data_protocol_handler.cc
+++ b/net/url_request/data_protocol_handler.cc
@@ -12,8 +12,8 @@ DataProtocolHandler::DataProtocolHandler() {
}
URLRequestJob* DataProtocolHandler::MaybeCreateJob(
- URLRequest* request) const {
- return new URLRequestDataJob(request);
+ URLRequest* request, NetworkDelegate* network_delegate) const {
+ return new URLRequestDataJob(request, network_delegate);
}
} // namespace net
diff --git a/net/url_request/data_protocol_handler.h b/net/url_request/data_protocol_handler.h
index d87212e..abb5abe 100644
--- a/net/url_request/data_protocol_handler.h
+++ b/net/url_request/data_protocol_handler.h
@@ -18,7 +18,8 @@ class NET_EXPORT DataProtocolHandler
: public URLRequestJobFactory::ProtocolHandler {
public:
DataProtocolHandler();
- virtual URLRequestJob* MaybeCreateJob(URLRequest* request) const OVERRIDE;
+ virtual URLRequestJob* MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
private:
DISALLOW_COPY_AND_ASSIGN(DataProtocolHandler);
diff --git a/net/url_request/file_protocol_handler.cc b/net/url_request/file_protocol_handler.cc
index ec77772..0f9f73c 100644
--- a/net/url_request/file_protocol_handler.cc
+++ b/net/url_request/file_protocol_handler.cc
@@ -7,25 +7,24 @@
#include "base/logging.h"
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
+#include "net/url_request/url_request.h"
#include "net/url_request/url_request_error_job.h"
#include "net/url_request/url_request_file_dir_job.h"
#include "net/url_request/url_request_file_job.h"
namespace net {
-FileProtocolHandler::FileProtocolHandler(
- NetworkDelegate* network_delegate)
- : network_delegate_(network_delegate) {
-}
+FileProtocolHandler::FileProtocolHandler() { }
-URLRequestJob* FileProtocolHandler::MaybeCreateJob(URLRequest* request) const {
+URLRequestJob* FileProtocolHandler::MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const {
FilePath file_path;
const bool is_file = FileURLToFilePath(request->url(), &file_path);
// Check file access permissions.
- if (!network_delegate_ ||
- !network_delegate_->CanAccessFile(*request, file_path)) {
- return new URLRequestErrorJob(request, ERR_ACCESS_DENIED);
+ if (!network_delegate ||
+ !network_delegate->CanAccessFile(*request, file_path)) {
+ return new URLRequestErrorJob(request, network_delegate, ERR_ACCESS_DENIED);
}
// We need to decide whether to create URLRequestFileJob for file access or
@@ -37,12 +36,12 @@ URLRequestJob* FileProtocolHandler::MaybeCreateJob(URLRequest* request) const {
if (is_file &&
file_util::EndsWithSeparator(file_path) &&
file_path.IsAbsolute()) {
- return new URLRequestFileDirJob(request, file_path);
+ return new URLRequestFileDirJob(request, network_delegate, file_path);
}
// Use a regular file request job for all non-directories (including invalid
// file names).
- return new URLRequestFileJob(request, file_path, network_delegate_);
+ return new URLRequestFileJob(request, network_delegate, file_path);
}
} // namespace net
diff --git a/net/url_request/file_protocol_handler.h b/net/url_request/file_protocol_handler.h
index 6c93ab2..619227b 100644
--- a/net/url_request/file_protocol_handler.h
+++ b/net/url_request/file_protocol_handler.h
@@ -19,12 +19,11 @@ class URLRequestJob;
class NET_EXPORT FileProtocolHandler :
public URLRequestJobFactory::ProtocolHandler {
public:
- explicit FileProtocolHandler(NetworkDelegate* network_delegate);
- virtual URLRequestJob* MaybeCreateJob(URLRequest* request) const OVERRIDE;
+ FileProtocolHandler();
+ virtual URLRequestJob* MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
private:
- NetworkDelegate* network_delegate_;
-
DISALLOW_COPY_AND_ASSIGN(FileProtocolHandler);
};
diff --git a/net/url_request/ftp_protocol_handler.cc b/net/url_request/ftp_protocol_handler.cc
index b9dc0fa0..7d9ba88 100644
--- a/net/url_request/ftp_protocol_handler.cc
+++ b/net/url_request/ftp_protocol_handler.cc
@@ -15,26 +15,24 @@
namespace net {
FtpProtocolHandler::FtpProtocolHandler(
- NetworkDelegate* network_delegate,
FtpTransactionFactory* ftp_transaction_factory,
FtpAuthCache* ftp_auth_cache)
- : network_delegate_(network_delegate),
- ftp_transaction_factory_(ftp_transaction_factory),
+ : ftp_transaction_factory_(ftp_transaction_factory),
ftp_auth_cache_(ftp_auth_cache) {
DCHECK(ftp_transaction_factory_);
DCHECK(ftp_auth_cache_);
}
URLRequestJob* FtpProtocolHandler::MaybeCreateJob(
- URLRequest* request) const {
+ URLRequest* request, NetworkDelegate* network_delegate) const {
int port = request->url().IntPort();
if (request->url().has_port() &&
!IsPortAllowedByFtp(port) && !IsPortAllowedByOverride(port)) {
- return new URLRequestErrorJob(request, ERR_UNSAFE_PORT);
+ return new URLRequestErrorJob(request, network_delegate, ERR_UNSAFE_PORT);
}
return new URLRequestFtpJob(request,
- network_delegate_,
+ network_delegate,
ftp_transaction_factory_,
ftp_auth_cache_);
}
diff --git a/net/url_request/ftp_protocol_handler.h b/net/url_request/ftp_protocol_handler.h
index ab1596f..871f422 100644
--- a/net/url_request/ftp_protocol_handler.h
+++ b/net/url_request/ftp_protocol_handler.h
@@ -20,13 +20,12 @@ class URLRequestJob;
class NET_EXPORT FtpProtocolHandler :
public URLRequestJobFactory::ProtocolHandler {
public:
- FtpProtocolHandler(NetworkDelegate* network_delegate,
- FtpTransactionFactory* ftp_transaction_factory,
+ FtpProtocolHandler(FtpTransactionFactory* ftp_transaction_factory,
FtpAuthCache* ftp_auth_cache);
- virtual URLRequestJob* MaybeCreateJob(URLRequest* request) const OVERRIDE;
+ virtual URLRequestJob* MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE;
private:
- NetworkDelegate* network_delegate_;
FtpTransactionFactory* ftp_transaction_factory_;
FtpAuthCache* ftp_auth_cache_;
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
index a63171e..ec48c6a 100644
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -96,12 +96,13 @@ void URLRequest::Deprecated::UnregisterRequestInterceptor(
URLRequestJob* URLRequest::Interceptor::MaybeInterceptRedirect(
URLRequest* request,
+ NetworkDelegate* network_delegate,
const GURL& location) {
return NULL;
}
URLRequestJob* URLRequest::Interceptor::MaybeInterceptResponse(
- URLRequest* request) {
+ URLRequest* request, NetworkDelegate* network_delegate) {
return NULL;
}
@@ -428,7 +429,8 @@ void URLRequest::Start() {
return;
}
- StartJob(URLRequestJobManager::GetInstance()->CreateJob(this));
+ StartJob(URLRequestJobManager::GetInstance()->CreateJob(
+ this, context_->network_delegate()));
}
///////////////////////////////////////////////////////////////////////////////
@@ -447,18 +449,20 @@ void URLRequest::BeforeRequestComplete(int error) {
std::string source("delegate");
net_log_.AddEvent(NetLog::TYPE_CANCELLED,
NetLog::StringCallback("source", &source));
- StartJob(new URLRequestErrorJob(this, error));
+ StartJob(new URLRequestErrorJob(this, context_->network_delegate(), error));
} else if (!delegate_redirect_url_.is_empty()) {
GURL new_url;
new_url.Swap(&delegate_redirect_url_);
- URLRequestRedirectJob* job = new URLRequestRedirectJob(this, new_url);
+ URLRequestRedirectJob* job = new URLRequestRedirectJob(
+ this, context_->network_delegate(), new_url);
// Use status code 307 to preserve the method, so POST requests work.
job->set_redirect_code(
URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT);
StartJob(job);
} else {
- StartJob(URLRequestJobManager::GetInstance()->CreateJob(this));
+ StartJob(URLRequestJobManager::GetInstance()->CreateJob(
+ this, context_->network_delegate()));
}
}
@@ -491,7 +495,8 @@ void URLRequest::StartJob(URLRequestJob* job) {
void URLRequest::Restart() {
// Should only be called if the original job didn't make any progress.
DCHECK(job_ && !job_->has_response_started());
- RestartWithJob(URLRequestJobManager::GetInstance()->CreateJob(this));
+ RestartWithJob(URLRequestJobManager::GetInstance()->CreateJob(
+ this, context_->network_delegate()));
}
void URLRequest::RestartWithJob(URLRequestJob *job) {
@@ -586,8 +591,8 @@ void URLRequest::StopCaching() {
void URLRequest::NotifyReceivedRedirect(const GURL& location,
bool* defer_redirect) {
URLRequestJob* job =
- URLRequestJobManager::GetInstance()->MaybeInterceptRedirect(this,
- location);
+ URLRequestJobManager::GetInstance()->MaybeInterceptRedirect(
+ this, context_->network_delegate(), location);
if (job) {
RestartWithJob(job);
} else if (delegate_) {
@@ -603,7 +608,8 @@ void URLRequest::NotifyResponseStarted() {
net_error);
URLRequestJob* job =
- URLRequestJobManager::GetInstance()->MaybeInterceptResponse(this);
+ URLRequestJobManager::GetInstance()->MaybeInterceptResponse(
+ this, context_->network_delegate());
if (job) {
RestartWithJob(job);
} else {
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
index 1ccc339..091f23f2 100644
--- a/net/url_request/url_request.h
+++ b/net/url_request/url_request.h
@@ -119,6 +119,7 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
// factories to be queried. If no factory handles the request, then the
// default job will be used.
typedef URLRequestJob* (ProtocolFactory)(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme);
// HTTP request/response header IDs (via some preprocessor fun) for use with
@@ -153,7 +154,8 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
// Called for every request made. Should return a new job to handle the
// request if it should be intercepted, or NULL to allow the request to
// be handled in the normal manner.
- virtual URLRequestJob* MaybeIntercept(URLRequest* request) = 0;
+ virtual URLRequestJob* MaybeIntercept(
+ URLRequest* request, NetworkDelegate* network_delegate) = 0;
// Called after having received a redirect response, but prior to the
// the request delegate being informed of the redirect. Can return a new
@@ -161,8 +163,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
// to allow the normal handling to continue. If a new job is provided,
// the delegate never sees the original redirect response, instead the
// response produced by the intercept job will be returned.
- virtual URLRequestJob* MaybeInterceptRedirect(URLRequest* request,
- const GURL& location);
+ virtual URLRequestJob* MaybeInterceptRedirect(
+ URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const GURL& location);
// Called after having received a final response, but prior to the
// the request delegate being informed of the response. This is also
@@ -172,7 +176,8 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
// continue. If a new job is provided, the delegate never sees the original
// response, instead the response produced by the intercept job will be
// returned.
- virtual URLRequestJob* MaybeInterceptResponse(URLRequest* request);
+ virtual URLRequestJob* MaybeInterceptResponse(
+ URLRequest* request, NetworkDelegate* network_delegate);
};
// Deprecated interfaces in net::URLRequest. They have been moved to
diff --git a/net/url_request/url_request_about_job.cc b/net/url_request/url_request_about_job.cc
index d96f2d4..242a735 100644
--- a/net/url_request/url_request_about_job.cc
+++ b/net/url_request/url_request_about_job.cc
@@ -11,20 +11,20 @@
#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/message_loop.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
namespace net {
-URLRequestAboutJob::URLRequestAboutJob(URLRequest* request)
- : URLRequestJob(request, request->context()->network_delegate()),
+URLRequestAboutJob::URLRequestAboutJob(URLRequest* request,
+ NetworkDelegate* network_delegate)
+ : URLRequestJob(request, network_delegate),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
// static
URLRequestJob* URLRequestAboutJob::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
- return new URLRequestAboutJob(request);
+ return new URLRequestAboutJob(request, network_delegate);
}
void URLRequestAboutJob::Start() {
diff --git a/net/url_request/url_request_about_job.h b/net/url_request/url_request_about_job.h
index 39d37cd..ea2b83f 100644
--- a/net/url_request/url_request_about_job.h
+++ b/net/url_request/url_request_about_job.h
@@ -15,7 +15,7 @@ namespace net {
class NET_EXPORT URLRequestAboutJob : public URLRequestJob {
public:
- explicit URLRequestAboutJob(URLRequest* request);
+ URLRequestAboutJob(URLRequest* request, NetworkDelegate* network_delegate);
static URLRequest::ProtocolFactory Factory;
diff --git a/net/url_request/url_request_data_job.cc b/net/url_request/url_request_data_job.cc
index ed58cbb..5dffe32 100644
--- a/net/url_request/url_request_data_job.cc
+++ b/net/url_request/url_request_data_job.cc
@@ -11,14 +11,16 @@
namespace net {
-URLRequestDataJob::URLRequestDataJob(URLRequest* request)
- : URLRequestSimpleJob(request) {
+URLRequestDataJob::URLRequestDataJob(
+ URLRequest* request, NetworkDelegate* network_delegate)
+ : URLRequestSimpleJob(request, network_delegate) {
}
// static
URLRequestJob* URLRequestDataJob::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
- return new URLRequestDataJob(request);
+ return new URLRequestDataJob(request, network_delegate);
}
int URLRequestDataJob::GetData(std::string* mime_type,
diff --git a/net/url_request/url_request_data_job.h b/net/url_request/url_request_data_job.h
index 4d1f5c1..7ab6561 100644
--- a/net/url_request/url_request_data_job.h
+++ b/net/url_request/url_request_data_job.h
@@ -16,7 +16,7 @@ class URLRequest;
class URLRequestDataJob : public URLRequestSimpleJob {
public:
- explicit URLRequestDataJob(URLRequest* request);
+ URLRequestDataJob(URLRequest* request, NetworkDelegate* network_delegate);
static URLRequest::ProtocolFactory Factory;
diff --git a/net/url_request/url_request_error_job.cc b/net/url_request/url_request_error_job.cc
index c3dc95e..71069f2 100644
--- a/net/url_request/url_request_error_job.cc
+++ b/net/url_request/url_request_error_job.cc
@@ -8,14 +8,13 @@
#include "base/compiler_specific.h"
#include "base/message_loop.h"
#include "net/base/net_errors.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_status.h"
namespace net {
-URLRequestErrorJob::URLRequestErrorJob(URLRequest* request, int error)
- : URLRequestJob(request, request->context()->network_delegate()),
+URLRequestErrorJob::URLRequestErrorJob(
+ URLRequest* request, NetworkDelegate* network_delegate, int error)
+ : URLRequestJob(request, network_delegate),
error_(error),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {}
diff --git a/net/url_request/url_request_error_job.h b/net/url_request/url_request_error_job.h
index 7ab745f..7c162f0 100644
--- a/net/url_request/url_request_error_job.h
+++ b/net/url_request/url_request_error_job.h
@@ -16,7 +16,9 @@ namespace net {
class NET_EXPORT URLRequestErrorJob : public URLRequestJob {
public:
- URLRequestErrorJob(URLRequest* request, int error);
+ URLRequestErrorJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ int error);
virtual void Start() OVERRIDE;
diff --git a/net/url_request/url_request_file_dir_job.cc b/net/url_request/url_request_file_dir_job.cc
index 796cbf9..7e59234 100644
--- a/net/url_request/url_request_file_dir_job.cc
+++ b/net/url_request/url_request_file_dir_job.cc
@@ -15,8 +15,7 @@
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
+#include "net/url_request/url_request_status.h"
#if defined(OS_POSIX)
#include <sys/stat.h>
@@ -25,8 +24,9 @@
namespace net {
URLRequestFileDirJob::URLRequestFileDirJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
const FilePath& dir_path)
- : URLRequestJob(request, request->context()->network_delegate()),
+ : URLRequestJob(request, network_delegate),
ALLOW_THIS_IN_INITIALIZER_LIST(lister_(dir_path, this)),
dir_path_(dir_path),
canceled_(false),
diff --git a/net/url_request/url_request_file_dir_job.h b/net/url_request/url_request_file_dir_job.h
index 7153831..bc6cccb 100644
--- a/net/url_request/url_request_file_dir_job.h
+++ b/net/url_request/url_request_file_dir_job.h
@@ -19,7 +19,9 @@ class URLRequestFileDirJob
: public URLRequestJob,
public DirectoryLister::DirectoryListerDelegate {
public:
- URLRequestFileDirJob(URLRequest* request, const FilePath& dir_path);
+ URLRequestFileDirJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const FilePath& dir_path);
bool list_complete() const { return list_complete_; }
diff --git a/net/url_request/url_request_file_job.cc b/net/url_request/url_request_file_job.cc
index f07e92fc..5f33508 100644
--- a/net/url_request/url_request_file_job.cc
+++ b/net/url_request/url_request_file_job.cc
@@ -35,8 +35,6 @@
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
#include "net/http/http_util.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_error_job.h"
#include "net/url_request/url_request_file_dir_job.h"
@@ -84,8 +82,8 @@ class URLRequestFileJob::AsyncResolver
};
URLRequestFileJob::URLRequestFileJob(URLRequest* request,
- const FilePath& file_path,
- NetworkDelegate* network_delegate)
+ NetworkDelegate* network_delegate,
+ const FilePath& file_path)
: URLRequestJob(request, network_delegate),
file_path_(file_path),
stream_(NULL),
@@ -95,17 +93,16 @@ URLRequestFileJob::URLRequestFileJob(URLRequest* request,
// static
URLRequestJob* URLRequestFileJob::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
FilePath file_path;
const bool is_file = FileURLToFilePath(request->url(), &file_path);
// Check file access permissions.
- if (!request->context()->network_delegate() ||
- !request->context()->network_delegate()->CanAccessFile(
- *request, file_path)) {
- return new URLRequestErrorJob(request, ERR_ACCESS_DENIED);
+ if (!network_delegate ||
+ !network_delegate->CanAccessFile(*request, file_path)) {
+ return new URLRequestErrorJob(request, network_delegate, ERR_ACCESS_DENIED);
}
-
// We need to decide whether to create URLRequestFileJob for file access or
// URLRequestFileDirJob for directory access. To avoid accessing the
// filesystem, we only look at the path string here.
@@ -115,12 +112,11 @@ URLRequestJob* URLRequestFileJob::Factory(URLRequest* request,
if (is_file &&
file_util::EndsWithSeparator(file_path) &&
file_path.IsAbsolute())
- return new URLRequestFileDirJob(request, file_path);
+ return new URLRequestFileDirJob(request, network_delegate, file_path);
// Use a regular file request job for all non-directories (including invalid
// file names).
- return new URLRequestFileJob(
- request, file_path, request->context()->network_delegate());
+ return new URLRequestFileJob(request, network_delegate, file_path);
}
void URLRequestFileJob::Start() {
diff --git a/net/url_request/url_request_file_job.h b/net/url_request/url_request_file_job.h
index 011a894..45dabed 100644
--- a/net/url_request/url_request_file_job.h
+++ b/net/url_request/url_request_file_job.h
@@ -25,8 +25,8 @@ namespace net {
class NET_EXPORT URLRequestFileJob : public URLRequestJob {
public:
URLRequestFileJob(URLRequest* request,
- const FilePath& file_path,
- NetworkDelegate* network_delegate);
+ NetworkDelegate* network_delegate,
+ const FilePath& file_path);
static URLRequest::ProtocolFactory Factory;
diff --git a/net/url_request/url_request_filter.cc b/net/url_request/url_request_filter.cc
index 913c0fd..01b6069 100644
--- a/net/url_request/url_request_filter.cc
+++ b/net/url_request/url_request_filter.cc
@@ -16,9 +16,10 @@ URLRequestFilter::~URLRequestFilter() {}
// static
URLRequestJob* URLRequestFilter::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
// Returning null here just means that the built-in handler will be used.
- return GetInstance()->FindRequestHandler(request, scheme);
+ return GetInstance()->FindRequestHandler(request, network_delegate, scheme);
}
// static
@@ -119,6 +120,7 @@ URLRequestFilter::URLRequestFilter() : hit_count_(0) { }
URLRequestJob* URLRequestFilter::FindRequestHandler(
URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
URLRequestJob* job = NULL;
if (request->url().is_valid()) {
@@ -128,14 +130,14 @@ URLRequestJob* URLRequestFilter::FindRequestHandler(
HostnameHandlerMap::iterator i =
hostname_handler_map_.find(make_pair(scheme, hostname));
if (i != hostname_handler_map_.end())
- job = i->second(request, scheme);
+ job = i->second(request, network_delegate, scheme);
if (!job) {
// Not in the hostname map, check the url map.
const std::string& url = request->url().spec();
UrlHandlerMap::iterator i = url_handler_map_.find(url);
if (i != url_handler_map_.end())
- job = i->second(request, scheme);
+ job = i->second(request, network_delegate, scheme);
}
}
if (job) {
diff --git a/net/url_request/url_request_filter.h b/net/url_request/url_request_filter.h
index 7e86c39..c039300 100644
--- a/net/url_request/url_request_filter.h
+++ b/net/url_request/url_request_filter.h
@@ -71,6 +71,7 @@ class NET_EXPORT URLRequestFilter {
// Helper method that looks up the request in the url_handler_map_.
URLRequestJob* FindRequestHandler(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme);
// Maps hostnames to factories. Hostnames take priority over URLs.
diff --git a/net/url_request/url_request_filter_unittest.cc b/net/url_request/url_request_filter_unittest.cc
index 938747a..9f11675 100644
--- a/net/url_request/url_request_filter_unittest.cc
+++ b/net/url_request/url_request_filter_unittest.cc
@@ -19,15 +19,19 @@ namespace {
URLRequestTestJob* job_a;
-URLRequestJob* FactoryA(URLRequest* request, const std::string& scheme) {
- job_a = new URLRequestTestJob(request);
+URLRequestJob* FactoryA(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const std::string& scheme) {
+ job_a = new URLRequestTestJob(request, network_delegate);
return job_a;
}
URLRequestTestJob* job_b;
-URLRequestJob* FactoryB(URLRequest* request, const std::string& scheme) {
- job_b = new URLRequestTestJob(request);
+URLRequestJob* FactoryB(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const std::string& scheme) {
+ job_b = new URLRequestTestJob(request, network_delegate);
return job_b;
}
@@ -51,7 +55,7 @@ TEST(URLRequestFilter, BasicMatching) {
&FactoryA));
{
scoped_refptr<URLRequestJob> found = URLRequestFilter::Factory(
- &request_1, url_1.scheme());
+ &request_1, request_context.network_delegate(), url_1.scheme());
EXPECT_EQ(job_a, found);
EXPECT_TRUE(job_a != NULL);
job_a = NULL;
@@ -59,7 +63,8 @@ TEST(URLRequestFilter, BasicMatching) {
EXPECT_EQ(URLRequestFilter::GetInstance()->hit_count(), 1);
// Check we don't match other URLs.
- EXPECT_TRUE(URLRequestFilter::Factory(&request_2, url_2.scheme()) == NULL);
+ EXPECT_TRUE(URLRequestFilter::Factory(
+ &request_2, request_context.network_delegate(), url_2.scheme()) == NULL);
EXPECT_EQ(1, URLRequestFilter::GetInstance()->hit_count());
// Check we can overwrite URL handler.
@@ -67,7 +72,7 @@ TEST(URLRequestFilter, BasicMatching) {
&FactoryB));
{
scoped_refptr<URLRequestJob> found = URLRequestFilter::Factory(
- &request_1, url_1.scheme());
+ &request_1, request_context.network_delegate(), url_1.scheme());
EXPECT_EQ(job_b, found);
EXPECT_TRUE(job_b != NULL);
job_b = NULL;
@@ -76,7 +81,8 @@ TEST(URLRequestFilter, BasicMatching) {
// Check we can remove URL matching.
URLRequestFilter::GetInstance()->RemoveUrlHandler(url_1);
- EXPECT_TRUE(URLRequestFilter::Factory(&request_1, url_1.scheme()) == NULL);
+ EXPECT_TRUE(URLRequestFilter::Factory(
+ &request_1, request_context.network_delegate(), url_1.scheme()) == NULL);
EXPECT_EQ(URLRequestFilter::GetInstance()->hit_count(), 2);
// Check hostname matching.
@@ -87,7 +93,7 @@ TEST(URLRequestFilter, BasicMatching) {
&FactoryB);
{
scoped_refptr<URLRequestJob> found = URLRequestFilter::Factory(
- &request_1, url_1.scheme());
+ &request_1, request_context.network_delegate(), url_1.scheme());
EXPECT_EQ(job_b, found);
EXPECT_TRUE(job_b != NULL);
job_b = NULL;
@@ -95,7 +101,8 @@ TEST(URLRequestFilter, BasicMatching) {
EXPECT_EQ(1, URLRequestFilter::GetInstance()->hit_count());
// Check we don't match other hostnames.
- EXPECT_TRUE(URLRequestFilter::Factory(&request_2, url_2.scheme()) == NULL);
+ EXPECT_TRUE(URLRequestFilter::Factory(
+ &request_2, request_context.network_delegate(), url_2.scheme()) == NULL);
EXPECT_EQ(URLRequestFilter::GetInstance()->hit_count(), 1);
// Check we can overwrite hostname handler.
@@ -104,7 +111,7 @@ TEST(URLRequestFilter, BasicMatching) {
&FactoryA);
{
scoped_refptr<URLRequestJob> found = URLRequestFilter::Factory(
- &request_1, url_1.scheme());
+ &request_1, request_context.network_delegate(), url_1.scheme());
EXPECT_EQ(job_a, found);
EXPECT_TRUE(job_a != NULL);
job_a = NULL;
@@ -114,7 +121,8 @@ TEST(URLRequestFilter, BasicMatching) {
// Check we can remove hostname matching.
URLRequestFilter::GetInstance()->RemoveHostnameHandler(url_1.scheme(),
url_1.host());
- EXPECT_TRUE(URLRequestFilter::Factory(&request_1, url_1.scheme()) == NULL);
+ EXPECT_TRUE(URLRequestFilter::Factory(
+ &request_1, request_context.network_delegate(), url_1.scheme()) == NULL);
EXPECT_EQ(2, URLRequestFilter::GetInstance()->hit_count());
}
diff --git a/net/url_request/url_request_ftp_job.cc b/net/url_request/url_request_ftp_job.cc
index fb34599..e910625 100644
--- a/net/url_request/url_request_ftp_job.cc
+++ b/net/url_request/url_request_ftp_job.cc
@@ -35,17 +35,20 @@ URLRequestFtpJob::URLRequestFtpJob(
// static
URLRequestJob* URLRequestFtpJob::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK_EQ(scheme, "ftp");
int port = request->url().IntPort();
if (request->url().has_port() &&
!IsPortAllowedByFtp(port) && !IsPortAllowedByOverride(port)) {
- return new URLRequestErrorJob(request, ERR_UNSAFE_PORT);
+ return new URLRequestErrorJob(request,
+ network_delegate,
+ ERR_UNSAFE_PORT);
}
return new URLRequestFtpJob(request,
- request->context()->network_delegate(),
+ network_delegate,
request->context()->ftp_transaction_factory(),
request->context()->ftp_auth_cache());
}
diff --git a/net/url_request/url_request_ftp_job.h b/net/url_request/url_request_ftp_job.h
index eadf445..6deaf0a 100644
--- a/net/url_request/url_request_ftp_job.h
+++ b/net/url_request/url_request_ftp_job.h
@@ -31,6 +31,7 @@ class URLRequestFtpJob : public URLRequestJob {
// TODO(shalev): get rid of this function in favor of FtpProtocolHandler.
static URLRequestJob* Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme);
// Overridden from URLRequestJob:
diff --git a/net/url_request/url_request_ftp_job_unittest.cc b/net/url_request/url_request_ftp_job_unittest.cc
index d1ad36a..743daf1f 100644
--- a/net/url_request/url_request_ftp_job_unittest.cc
+++ b/net/url_request/url_request_ftp_job_unittest.cc
@@ -57,10 +57,10 @@ TEST(FtpProtocolHandlerTest, CreateTransactionFails) {
URLRequest url_request(url, &delegate, &context);
FtpProtocolHandler ftp_protocol_handler(
- NULL, &ftp_transaction_factory, &ftp_auth_cache);
+ &ftp_transaction_factory, &ftp_auth_cache);
scoped_refptr<URLRequestJob> ftp_job(
- ftp_protocol_handler.MaybeCreateJob(&url_request));
+ ftp_protocol_handler.MaybeCreateJob(&url_request, NULL));
ASSERT_TRUE(ftp_job.get());
EXPECT_CALL(ftp_transaction_factory, CreateTransaction())
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 1d60eef..64906ef 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -208,23 +208,26 @@ void URLRequestHttpJob::HttpFilterContext::RecordPacketStats(
// TODO(darin): make sure the port blocking code is not lost
// static
URLRequestJob* URLRequestHttpJob::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK(scheme == "http" || scheme == "https");
if (!request->context()->http_transaction_factory()) {
NOTREACHED() << "requires a valid context";
- return new URLRequestErrorJob(request, ERR_INVALID_ARGUMENT);
+ return new URLRequestErrorJob(
+ request, network_delegate, ERR_INVALID_ARGUMENT);
}
GURL redirect_url;
if (request->GetHSTSRedirect(&redirect_url))
- return new URLRequestRedirectJob(request, redirect_url);
- return new URLRequestHttpJob(request);
+ return new URLRequestRedirectJob(request, network_delegate, redirect_url);
+ return new URLRequestHttpJob(request, network_delegate);
}
-URLRequestHttpJob::URLRequestHttpJob(URLRequest* request)
- : URLRequestJob(request, request->context()->network_delegate()),
+URLRequestHttpJob::URLRequestHttpJob(URLRequest* request,
+ NetworkDelegate* network_delegate)
+ : URLRequestJob(request, network_delegate),
response_info_(NULL),
response_cookies_save_index_(0),
proxy_auth_state_(AUTH_STATE_DONT_NEED_AUTH),
diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h
index d028348..063d399 100644
--- a/net/url_request/url_request_http_job.h
+++ b/net/url_request/url_request_http_job.h
@@ -31,10 +31,11 @@ class URLRequestContext;
class URLRequestHttpJob : public URLRequestJob {
public:
static URLRequestJob* Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme);
protected:
- explicit URLRequestHttpJob(URLRequest* request);
+ URLRequestHttpJob(URLRequest* request, NetworkDelegate* network_delegate);
// Shadows URLRequestJob's version of this method so we can grab cookies.
void NotifyHeadersComplete();
diff --git a/net/url_request/url_request_job_factory.cc b/net/url_request/url_request_job_factory.cc
index 44bc002..4961c03 100644
--- a/net/url_request/url_request_job_factory.cc
+++ b/net/url_request/url_request_job_factory.cc
@@ -56,14 +56,14 @@ void URLRequestJobFactory::AddInterceptor(Interceptor* interceptor) {
}
URLRequestJob* URLRequestJobFactory::MaybeCreateJobWithInterceptor(
- URLRequest* request) const {
+ URLRequest* request, NetworkDelegate* network_delegate) const {
DCHECK(CalledOnValidThread());
URLRequestJob* job = NULL;
if (!(request->load_flags() & LOAD_DISABLE_INTERCEPT)) {
InterceptorList::const_iterator i;
for (i = interceptors_.begin(); i != interceptors_.end(); ++i) {
- job = (*i)->MaybeIntercept(request);
+ job = (*i)->MaybeIntercept(request, network_delegate);
if (job)
return job;
}
@@ -73,24 +73,26 @@ URLRequestJob* URLRequestJobFactory::MaybeCreateJobWithInterceptor(
URLRequestJob* URLRequestJobFactory::MaybeCreateJobWithProtocolHandler(
const std::string& scheme,
- URLRequest* request) const {
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const {
DCHECK(CalledOnValidThread());
ProtocolHandlerMap::const_iterator it = protocol_handler_map_.find(scheme);
if (it == protocol_handler_map_.end())
return NULL;
- return it->second->MaybeCreateJob(request);
+ return it->second->MaybeCreateJob(request, network_delegate);
}
URLRequestJob* URLRequestJobFactory::MaybeInterceptRedirect(
const GURL& location,
- URLRequest* request) const {
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const {
DCHECK(CalledOnValidThread());
URLRequestJob* job = NULL;
if (!(request->load_flags() & LOAD_DISABLE_INTERCEPT)) {
InterceptorList::const_iterator i;
for (i = interceptors_.begin(); i != interceptors_.end(); ++i) {
- job = (*i)->MaybeInterceptRedirect(location, request);
+ job = (*i)->MaybeInterceptRedirect(location, request, network_delegate);
if (job)
return job;
}
@@ -99,14 +101,14 @@ URLRequestJob* URLRequestJobFactory::MaybeInterceptRedirect(
}
URLRequestJob* URLRequestJobFactory::MaybeInterceptResponse(
- URLRequest* request) const {
+ URLRequest* request, NetworkDelegate* network_delegate) const {
DCHECK(CalledOnValidThread());
URLRequestJob* job = NULL;
if (!(request->load_flags() & LOAD_DISABLE_INTERCEPT)) {
InterceptorList::const_iterator i;
for (i = interceptors_.begin(); i != interceptors_.end(); ++i) {
- job = (*i)->MaybeInterceptResponse(request);
+ job = (*i)->MaybeInterceptResponse(request, network_delegate);
if (job)
return job;
}
diff --git a/net/url_request/url_request_job_factory.h b/net/url_request/url_request_job_factory.h
index 746e948..5f4e1ae 100644
--- a/net/url_request/url_request_job_factory.h
+++ b/net/url_request/url_request_job_factory.h
@@ -16,6 +16,7 @@ class GURL;
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
@@ -26,7 +27,8 @@ class NET_EXPORT URLRequestJobFactory
public:
virtual ~ProtocolHandler();
- virtual URLRequestJob* MaybeCreateJob(URLRequest* request) const = 0;
+ virtual URLRequestJob* MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const = 0;
};
class NET_EXPORT Interceptor {
@@ -36,7 +38,8 @@ class NET_EXPORT URLRequestJobFactory
// Called for every request made. Should return a new job to handle the
// request if it should be intercepted, or NULL to allow the request to
// be handled in the normal manner.
- virtual URLRequestJob* MaybeIntercept(URLRequest* request) const = 0;
+ virtual URLRequestJob* MaybeIntercept(
+ URLRequest* request, NetworkDelegate* network_delegate) const = 0;
// Called after having received a redirect response, but prior to the
// the request delegate being informed of the redirect. Can return a new
@@ -46,7 +49,8 @@ class NET_EXPORT URLRequestJobFactory
// response produced by the intercept job will be returned.
virtual URLRequestJob* MaybeInterceptRedirect(
const GURL& location,
- URLRequest* request) const = 0;
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const = 0;
// Called after having received a final response, but prior to the
// the request delegate being informed of the response. This is also
@@ -57,7 +61,7 @@ class NET_EXPORT URLRequestJobFactory
// response, instead the response produced by the intercept job will be
// returned.
virtual URLRequestJob* MaybeInterceptResponse(
- URLRequest* request) const = 0;
+ URLRequest* request, NetworkDelegate* network_delegate) const = 0;
// Returns true if this interceptor handles requests for URLs with the
// given protocol. Returning false does not imply that this interceptor
@@ -78,15 +82,21 @@ class NET_EXPORT URLRequestJobFactory
// list.
void AddInterceptor(Interceptor* interceptor);
- URLRequestJob* MaybeCreateJobWithInterceptor(URLRequest* request) const;
+ URLRequestJob* MaybeCreateJobWithInterceptor(
+ URLRequest* request, NetworkDelegate* network_delegate) const;
- URLRequestJob* MaybeCreateJobWithProtocolHandler(const std::string& scheme,
- URLRequest* request) const;
+ URLRequestJob* MaybeCreateJobWithProtocolHandler(
+ const std::string& scheme,
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const;
- URLRequestJob* MaybeInterceptRedirect(const GURL& location,
- URLRequest* request) const;
+ URLRequestJob* MaybeInterceptRedirect(
+ const GURL& location,
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const;
- URLRequestJob* MaybeInterceptResponse(URLRequest* request) const;
+ URLRequestJob* MaybeInterceptResponse(
+ URLRequest* request, NetworkDelegate* network_delegate) const;
bool IsHandledProtocol(const std::string& scheme) const;
diff --git a/net/url_request/url_request_job_factory_unittest.cc b/net/url_request/url_request_job_factory_unittest.cc
index a87c717..673e007 100644
--- a/net/url_request/url_request_job_factory_unittest.cc
+++ b/net/url_request/url_request_job_factory_unittest.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/memory/weak_ptr.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_job.h"
#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -18,8 +17,10 @@ namespace {
class MockURLRequestJob : public URLRequestJob {
public:
- MockURLRequestJob(URLRequest* request, const URLRequestStatus& status)
- : URLRequestJob(request, request->context()->network_delegate()),
+ MockURLRequestJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const URLRequestStatus& status)
+ : URLRequestJob(request, network_delegate),
status_(status),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {}
@@ -47,9 +48,12 @@ class MockURLRequestJob : public URLRequestJob {
class DummyProtocolHandler : public URLRequestJobFactory::ProtocolHandler {
public:
- virtual URLRequestJob* MaybeCreateJob(URLRequest* request) const OVERRIDE {
+ virtual URLRequestJob* MaybeCreateJob(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
return new MockURLRequestJob(
- request, URLRequestStatus(URLRequestStatus::SUCCESS, OK));
+ request,
+ network_delegate,
+ URLRequestStatus(URLRequestStatus::SUCCESS, OK));
}
};
@@ -60,21 +64,25 @@ class DummyInterceptor : public URLRequestJobFactory::Interceptor {
handle_all_protocols_(false) {
}
- virtual URLRequestJob* MaybeIntercept(URLRequest* request) const OVERRIDE {
+ virtual URLRequestJob* MaybeIntercept(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
did_intercept_ = true;
return new MockURLRequestJob(
request,
+ network_delegate,
URLRequestStatus(URLRequestStatus::FAILED, ERR_FAILED));
}
virtual URLRequestJob* MaybeInterceptRedirect(
- const GURL& /* location */,
- URLRequest* /* request */) const OVERRIDE {
+ const GURL& /* location */,
+ URLRequest* /* request */,
+ NetworkDelegate* network_delegate /* network delegate */) const OVERRIDE {
return NULL;
}
virtual URLRequestJob* MaybeInterceptResponse(
- URLRequest* /* request */) const OVERRIDE {
+ URLRequest* /* request */,
+ NetworkDelegate* network_delegate /* network delegate */) const OVERRIDE {
return NULL;
}
diff --git a/net/url_request/url_request_job_manager.cc b/net/url_request/url_request_job_manager.cc
index b345628..2a68088 100644
--- a/net/url_request/url_request_job_manager.cc
+++ b/net/url_request/url_request_job_manager.cc
@@ -48,12 +48,12 @@ URLRequestJobManager* URLRequestJobManager::GetInstance() {
}
URLRequestJob* URLRequestJobManager::CreateJob(
- URLRequest* request) const {
+ URLRequest* request, NetworkDelegate* network_delegate) const {
DCHECK(IsAllowedThread());
// If we are given an invalid URL, then don't even try to inspect the scheme.
if (!request->url().is_valid())
- return new URLRequestErrorJob(request, ERR_INVALID_URL);
+ return new URLRequestErrorJob(request, network_delegate, ERR_INVALID_URL);
// We do this here to avoid asking interceptors about unsupported schemes.
const URLRequestJobFactory* job_factory = NULL;
@@ -62,10 +62,12 @@ URLRequestJob* URLRequestJobManager::CreateJob(
const std::string& scheme = request->url().scheme(); // already lowercase
if (job_factory) {
if (!job_factory->IsHandledProtocol(scheme)) {
- return new URLRequestErrorJob(request, ERR_UNKNOWN_URL_SCHEME);
+ return new URLRequestErrorJob(
+ request, network_delegate, ERR_UNKNOWN_URL_SCHEME);
}
} else if (!SupportsScheme(scheme)) {
- return new URLRequestErrorJob(request, ERR_UNKNOWN_URL_SCHEME);
+ return new URLRequestErrorJob(
+ request, network_delegate, ERR_UNKNOWN_URL_SCHEME);
}
// THREAD-SAFETY NOTICE:
@@ -76,7 +78,8 @@ URLRequestJob* URLRequestJobManager::CreateJob(
//
if (job_factory) {
- URLRequestJob* job = job_factory->MaybeCreateJobWithInterceptor(request);
+ URLRequestJob* job = job_factory->MaybeCreateJobWithInterceptor(
+ request, network_delegate);
if (job)
return job;
}
@@ -85,15 +88,15 @@ URLRequestJob* URLRequestJobManager::CreateJob(
if (!(request->load_flags() & LOAD_DISABLE_INTERCEPT)) {
InterceptorList::const_iterator i;
for (i = interceptors_.begin(); i != interceptors_.end(); ++i) {
- URLRequestJob* job = (*i)->MaybeIntercept(request);
+ URLRequestJob* job = (*i)->MaybeIntercept(request, network_delegate);
if (job)
return job;
}
}
if (job_factory) {
- URLRequestJob* job =
- job_factory->MaybeCreateJobWithProtocolHandler(scheme, request);
+ URLRequestJob* job = job_factory->MaybeCreateJobWithProtocolHandler(
+ scheme, request, network_delegate);
if (job)
return job;
}
@@ -105,7 +108,7 @@ URLRequestJob* URLRequestJobManager::CreateJob(
// built-in protocol factory.
FactoryMap::const_iterator i = factories_.find(scheme);
if (i != factories_.end()) {
- URLRequestJob* job = i->second(request, scheme);
+ URLRequestJob* job = i->second(request, network_delegate, scheme);
if (job)
return job;
}
@@ -113,7 +116,8 @@ URLRequestJob* URLRequestJobManager::CreateJob(
// See if the request should be handled by a built-in protocol factory.
for (size_t i = 0; i < arraysize(kBuiltinFactories); ++i) {
if (scheme == kBuiltinFactories[i].scheme) {
- URLRequestJob* job = (kBuiltinFactories[i].factory)(request, scheme);
+ URLRequestJob* job = (kBuiltinFactories[i].factory)(
+ request, network_delegate, scheme);
DCHECK(job); // The built-in factories are not expected to fail!
return job;
}
@@ -123,11 +127,12 @@ URLRequestJob* URLRequestJobManager::CreateJob(
// wasn't interested in handling the URL. That is fairly unexpected, and we
// don't have a specific error to report here :-(
LOG(WARNING) << "Failed to map: " << request->url().spec();
- return new URLRequestErrorJob(request, ERR_FAILED);
+ return new URLRequestErrorJob(request, network_delegate, ERR_FAILED);
}
URLRequestJob* URLRequestJobManager::MaybeInterceptRedirect(
URLRequest* request,
+ NetworkDelegate* network_delegate,
const GURL& location) const {
DCHECK(IsAllowedThread());
if (!request->url().is_valid() ||
@@ -150,13 +155,14 @@ URLRequestJob* URLRequestJobManager::MaybeInterceptRedirect(
URLRequestJob* job = NULL;
if (job_factory)
- job = job_factory->MaybeInterceptRedirect(location, request);
+ job = job_factory->MaybeInterceptRedirect(
+ location, request, network_delegate);
if (job)
return job;
InterceptorList::const_iterator i;
for (i = interceptors_.begin(); i != interceptors_.end(); ++i) {
- job = (*i)->MaybeInterceptRedirect(request, location);
+ job = (*i)->MaybeInterceptRedirect(request, network_delegate, location);
if (job)
return job;
}
@@ -164,7 +170,7 @@ URLRequestJob* URLRequestJobManager::MaybeInterceptRedirect(
}
URLRequestJob* URLRequestJobManager::MaybeInterceptResponse(
- URLRequest* request) const {
+ URLRequest* request, NetworkDelegate* network_delegate) const {
DCHECK(IsAllowedThread());
if (!request->url().is_valid() ||
request->load_flags() & LOAD_DISABLE_INTERCEPT ||
@@ -186,13 +192,13 @@ URLRequestJob* URLRequestJobManager::MaybeInterceptResponse(
URLRequestJob* job = NULL;
if (job_factory)
- job = job_factory->MaybeInterceptResponse(request);
+ job = job_factory->MaybeInterceptResponse(request, network_delegate);
if (job)
return job;
InterceptorList::const_iterator i;
for (i = interceptors_.begin(); i != interceptors_.end(); ++i) {
- job = (*i)->MaybeInterceptResponse(request);
+ job = (*i)->MaybeInterceptResponse(request, network_delegate);
if (job)
return job;
}
diff --git a/net/url_request/url_request_job_manager.h b/net/url_request/url_request_job_manager.h
index 5412ef0..ea441be 100644
--- a/net/url_request/url_request_job_manager.h
+++ b/net/url_request/url_request_job_manager.h
@@ -36,18 +36,21 @@ class URLRequestJobManager {
// Instantiate an URLRequestJob implementation based on the registered
// interceptors and protocol factories. This will always succeed in
// returning a job unless we are--in the extreme case--out of memory.
- URLRequestJob* CreateJob(URLRequest* request) const;
+ URLRequestJob* CreateJob(URLRequest* request,
+ NetworkDelegate* network_delegate) const;
// Allows interceptors to hijack the request after examining the new location
// of a redirect. Returns NULL if no interceptor intervenes.
URLRequestJob* MaybeInterceptRedirect(URLRequest* request,
- const GURL& location) const;
+ NetworkDelegate* network_delegate,
+ const GURL& location) const;
// Allows interceptors to hijack the request after examining the response
// status and headers. This is also called when there is no server response
// at all to allow interception of failed requests due to network errors.
// Returns NULL if no interceptor intervenes.
- URLRequestJob* MaybeInterceptResponse(URLRequest* request) const;
+ URLRequestJob* MaybeInterceptResponse(
+ URLRequest* request, NetworkDelegate* network_delegate) const;
// Returns true if there is a protocol factory registered for the given
// scheme. Note: also returns true if there is a built-in handler for the
diff --git a/net/url_request/url_request_redirect_job.cc b/net/url_request/url_request_redirect_job.cc
index 9960ea6..998ad18 100644
--- a/net/url_request/url_request_redirect_job.cc
+++ b/net/url_request/url_request_redirect_job.cc
@@ -7,14 +7,13 @@
#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/message_loop.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
namespace net {
URLRequestRedirectJob::URLRequestRedirectJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
const GURL& redirect_destination)
- : URLRequestJob(request, request->context()->network_delegate()),
+ : URLRequestJob(request, network_delegate),
redirect_destination_(redirect_destination),
http_status_code_(302),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {}
diff --git a/net/url_request/url_request_redirect_job.h b/net/url_request/url_request_redirect_job.h
index be5ffb9..08b84a7f 100644
--- a/net/url_request/url_request_redirect_job.h
+++ b/net/url_request/url_request_redirect_job.h
@@ -26,7 +26,9 @@ class NET_EXPORT URLRequestRedirectJob : public URLRequestJob {
};
// Constructs a job that redirects to the specified URL.
- URLRequestRedirectJob(URLRequest* request, const GURL& redirect_destination);
+ URLRequestRedirectJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const GURL& redirect_destination);
// Change the HTTP status code to use for the redirect. Default is
// REDIRECT_302_FOUND.
diff --git a/net/url_request/url_request_simple_job.cc b/net/url_request/url_request_simple_job.cc
index 8ab59f6..fda1012 100644
--- a/net/url_request/url_request_simple_job.cc
+++ b/net/url_request/url_request_simple_job.cc
@@ -9,14 +9,13 @@
#include "base/message_loop.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_status.h"
namespace net {
-URLRequestSimpleJob::URLRequestSimpleJob(URLRequest* request)
- : URLRequestJob(request, request->context()->network_delegate()),
+URLRequestSimpleJob::URLRequestSimpleJob(
+ URLRequest* request, NetworkDelegate* network_delegate)
+ : URLRequestJob(request, network_delegate),
data_offset_(0),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {}
diff --git a/net/url_request/url_request_simple_job.h b/net/url_request/url_request_simple_job.h
index 9e1945e..7577151d 100644
--- a/net/url_request/url_request_simple_job.h
+++ b/net/url_request/url_request_simple_job.h
@@ -18,7 +18,7 @@ class URLRequest;
class NET_EXPORT URLRequestSimpleJob : public URLRequestJob {
public:
- explicit URLRequestSimpleJob(URLRequest* request);
+ URLRequestSimpleJob(URLRequest* request, NetworkDelegate* network_delegate);
virtual void Start() OVERRIDE;
virtual bool ReadRawData(IOBuffer* buf,
diff --git a/net/url_request/url_request_test_job.cc b/net/url_request/url_request_test_job.cc
index 9ec31fc..05b562b 100644
--- a/net/url_request/url_request_test_job.cc
+++ b/net/url_request/url_request_test_job.cc
@@ -15,8 +15,6 @@
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/http/http_response_headers.h"
-#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
namespace net {
@@ -81,12 +79,14 @@ std::string URLRequestTestJob::test_error_headers() {
// static
URLRequestJob* URLRequestTestJob::Factory(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& scheme) {
- return new URLRequestTestJob(request);
+ return new URLRequestTestJob(request, network_delegate);
}
-URLRequestTestJob::URLRequestTestJob(URLRequest* request)
- : URLRequestJob(request, request->context()->network_delegate()),
+URLRequestTestJob::URLRequestTestJob(URLRequest* request,
+ NetworkDelegate* network_delegate)
+ : URLRequestJob(request, network_delegate),
auto_advance_(false),
stage_(WAITING),
offset_(0),
@@ -96,8 +96,9 @@ URLRequestTestJob::URLRequestTestJob(URLRequest* request)
}
URLRequestTestJob::URLRequestTestJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
bool auto_advance)
- : URLRequestJob(request, request->context()->network_delegate()),
+ : URLRequestJob(request, network_delegate),
auto_advance_(auto_advance),
stage_(WAITING),
offset_(0),
@@ -107,10 +108,11 @@ URLRequestTestJob::URLRequestTestJob(URLRequest* request,
}
URLRequestTestJob::URLRequestTestJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
const std::string& response_headers,
const std::string& response_data,
bool auto_advance)
- : URLRequestJob(request, request->context()->network_delegate()),
+ : URLRequestJob(request, network_delegate),
auto_advance_(auto_advance),
stage_(WAITING),
response_headers_(new HttpResponseHeaders(response_headers)),
diff --git a/net/url_request/url_request_test_job.h b/net/url_request/url_request_test_job.h
index 40b2f0f30..0c46d1b 100644
--- a/net/url_request/url_request_test_job.h
+++ b/net/url_request/url_request_test_job.h
@@ -39,16 +39,19 @@ class NET_EXPORT_PRIVATE URLRequestTestJob : public URLRequestJob {
public:
// Constructs a job to return one of the canned responses depending on the
// request url, with auto advance disabled.
- explicit URLRequestTestJob(URLRequest* request);
+ URLRequestTestJob(URLRequest* request, NetworkDelegate* network_delegate);
// Constructs a job to return one of the canned responses depending on the
// request url, optionally with auto advance enabled.
- URLRequestTestJob(URLRequest* request, bool auto_advance);
+ URLRequestTestJob(URLRequest* request,
+ NetworkDelegate* network_delegate,
+ bool auto_advance);
// Constructs a job to return the given response regardless of the request
// url. The headers should include the HTTP status line and be formatted as
// expected by HttpResponseHeaders.
URLRequestTestJob(URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& response_headers,
const std::string& response_data,
bool auto_advance);
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 3ded0da..325cdce 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -378,19 +378,22 @@ class TestJobInterceptor : public URLRequestJobFactory::Interceptor {
: main_intercept_job_(NULL) {
}
- virtual URLRequestJob* MaybeIntercept(URLRequest* request) const OVERRIDE {
+ virtual URLRequestJob* MaybeIntercept(
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
URLRequestJob* job = main_intercept_job_;
main_intercept_job_ = NULL;
return job;
}
virtual URLRequestJob* MaybeInterceptRedirect(
- const GURL& location, URLRequest* request) const OVERRIDE {
+ const GURL& location,
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
virtual URLRequestJob* MaybeInterceptResponse(
- URLRequest* request) const OVERRIDE {
+ URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
return NULL;
}
@@ -3560,8 +3563,8 @@ TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) {
base::UintToString(arraysize(kData) - 1));
req.SetExtraRequestHeaders(headers);
- URLRequestRedirectJob* job =
- new URLRequestRedirectJob(&req, test_server_.GetURL("echo"));
+ URLRequestRedirectJob* job = new URLRequestRedirectJob(
+ &req, default_context_.network_delegate(), test_server_.GetURL("echo"));
AddTestInterceptor()->set_main_intercept_job(job);
req.Start();
@@ -3583,8 +3586,8 @@ TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) {
base::UintToString(arraysize(kData) - 1));
req.SetExtraRequestHeaders(headers);
- URLRequestRedirectJob* job =
- new URLRequestRedirectJob(&req, test_server_.GetURL("echo"));
+ URLRequestRedirectJob* job = new URLRequestRedirectJob(
+ &req, default_context_.network_delegate(), test_server_.GetURL("echo"));
job->set_redirect_code(
URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT);
AddTestInterceptor()->set_main_intercept_job(job);
@@ -3598,8 +3601,8 @@ TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) {
// Custom URLRequestJobs for use with interceptor tests
class RestartTestJob : public URLRequestTestJob {
public:
- explicit RestartTestJob(URLRequest* request)
- : URLRequestTestJob(request, true) {}
+ RestartTestJob(URLRequest* request, NetworkDelegate* network_delegate)
+ : URLRequestTestJob(request, network_delegate, true) {}
protected:
virtual void StartAsync() {
this->NotifyRestartRequired();
@@ -3610,8 +3613,8 @@ class RestartTestJob : public URLRequestTestJob {
class CancelTestJob : public URLRequestTestJob {
public:
- explicit CancelTestJob(URLRequest* request)
- : URLRequestTestJob(request, true) {}
+ explicit CancelTestJob(URLRequest* request, NetworkDelegate* network_delegate)
+ : URLRequestTestJob(request, network_delegate, true) {}
protected:
virtual void StartAsync() {
request_->Cancel();
@@ -3622,8 +3625,9 @@ class CancelTestJob : public URLRequestTestJob {
class CancelThenRestartTestJob : public URLRequestTestJob {
public:
- explicit CancelThenRestartTestJob(URLRequest* request)
- : URLRequestTestJob(request, true) {
+ explicit CancelThenRestartTestJob(URLRequest* request,
+ NetworkDelegate* network_delegate)
+ : URLRequestTestJob(request, network_delegate, true) {
}
protected:
virtual void StartAsync() {
@@ -3655,69 +3659,76 @@ class TestInterceptor : URLRequest::Interceptor {
URLRequest::Deprecated::UnregisterRequestInterceptor(this);
}
- virtual URLRequestJob* MaybeIntercept(URLRequest* request) {
+ virtual URLRequestJob* MaybeIntercept(URLRequest* request,
+ NetworkDelegate* network_delegate) {
if (restart_main_request_) {
restart_main_request_ = false;
did_restart_main_ = true;
- return new RestartTestJob(request);
+ return new RestartTestJob(request, network_delegate);
}
if (cancel_main_request_) {
cancel_main_request_ = false;
did_cancel_main_ = true;
- return new CancelTestJob(request);
+ return new CancelTestJob(request, network_delegate);
}
if (cancel_then_restart_main_request_) {
cancel_then_restart_main_request_ = false;
did_cancel_then_restart_main_ = true;
- return new CancelThenRestartTestJob(request);
+ return new CancelThenRestartTestJob(request, network_delegate);
}
if (simulate_main_network_error_) {
simulate_main_network_error_ = false;
did_simulate_error_main_ = true;
// will error since the requeted url is not one of its canned urls
- return new URLRequestTestJob(request, true);
+ return new URLRequestTestJob(request, network_delegate, true);
}
if (!intercept_main_request_)
return NULL;
intercept_main_request_ = false;
did_intercept_main_ = true;
return new URLRequestTestJob(request,
- main_headers_,
- main_data_,
- true);
+ network_delegate,
+ main_headers_,
+ main_data_,
+ true);
}
- virtual URLRequestJob* MaybeInterceptRedirect(URLRequest* request,
- const GURL& location) {
+ virtual URLRequestJob* MaybeInterceptRedirect(
+ URLRequest* request,
+ NetworkDelegate* network_delegate,
+ const GURL& location) {
if (cancel_redirect_request_) {
cancel_redirect_request_ = false;
did_cancel_redirect_ = true;
- return new CancelTestJob(request);
+ return new CancelTestJob(request, network_delegate);
}
if (!intercept_redirect_)
return NULL;
intercept_redirect_ = false;
did_intercept_redirect_ = true;
return new URLRequestTestJob(request,
- redirect_headers_,
- redirect_data_,
- true);
+ network_delegate,
+ redirect_headers_,
+ redirect_data_,
+ true);
}
- virtual URLRequestJob* MaybeInterceptResponse(URLRequest* request) {
+ virtual URLRequestJob* MaybeInterceptResponse(
+ URLRequest* request, NetworkDelegate* network_delegate) {
if (cancel_final_request_) {
cancel_final_request_ = false;
did_cancel_final_ = true;
- return new CancelTestJob(request);
+ return new CancelTestJob(request, network_delegate);
}
if (!intercept_final_response_)
return NULL;
intercept_final_response_ = false;
did_intercept_final_ = true;
return new URLRequestTestJob(request,
- final_headers_,
- final_data_,
- true);
+ network_delegate,
+ final_headers_,
+ final_data_,
+ true);
}
// Whether to intercept the main request, and if so the response to return.
@@ -4161,13 +4172,11 @@ TEST_F(URLRequestTestFTP, UnsafePort) {
GURL url("ftp://127.0.0.1:7");
FtpProtocolHandler ftp_protocol_handler(
- default_context_.network_delegate(),
default_context_.ftp_transaction_factory(),
default_context_.ftp_auth_cache());
job_factory.SetProtocolHandler(
"ftp",
- new FtpProtocolHandler(default_context_.network_delegate(),
- default_context_.ftp_transaction_factory(),
+ new FtpProtocolHandler(default_context_.ftp_transaction_factory(),
default_context_.ftp_auth_cache()));
default_context_.set_job_factory(&job_factory);
diff --git a/webkit/appcache/appcache_interceptor.cc b/webkit/appcache/appcache_interceptor.cc
index f1be933..6342b93 100644
--- a/webkit/appcache/appcache_interceptor.cc
+++ b/webkit/appcache/appcache_interceptor.cc
@@ -71,28 +71,30 @@ AppCacheInterceptor::~AppCacheInterceptor() {
}
net::URLRequestJob* AppCacheInterceptor::MaybeIntercept(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
AppCacheRequestHandler* handler = GetHandler(request);
if (!handler)
return NULL;
- return handler->MaybeLoadResource(request);
+ return handler->MaybeLoadResource(request, network_delegate);
}
net::URLRequestJob* AppCacheInterceptor::MaybeInterceptRedirect(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const GURL& location) {
AppCacheRequestHandler* handler = GetHandler(request);
if (!handler)
return NULL;
- return handler->MaybeLoadFallbackForRedirect(request, location);
+ return handler->MaybeLoadFallbackForRedirect(
+ request, network_delegate, location);
}
net::URLRequestJob* AppCacheInterceptor::MaybeInterceptResponse(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
AppCacheRequestHandler* handler = GetHandler(request);
if (!handler)
return NULL;
- return handler->MaybeLoadFallbackForResponse(request);
+ return handler->MaybeLoadFallbackForResponse(request, network_delegate);
}
} // namespace appcache
diff --git a/webkit/appcache/appcache_interceptor.h b/webkit/appcache/appcache_interceptor.h
index 9f6759a..1bbe121 100644
--- a/webkit/appcache/appcache_interceptor.h
+++ b/webkit/appcache/appcache_interceptor.h
@@ -44,11 +44,15 @@ class APPCACHE_EXPORT AppCacheInterceptor
protected:
// Override from net::URLRequest::Interceptor:
- virtual net::URLRequestJob* MaybeIntercept(net::URLRequest* request) OVERRIDE;
+ virtual net::URLRequestJob* MaybeIntercept(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) OVERRIDE;
virtual net::URLRequestJob* MaybeInterceptResponse(
- net::URLRequest* request) OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) OVERRIDE;
virtual net::URLRequestJob* MaybeInterceptRedirect(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const GURL& location) OVERRIDE;
private:
diff --git a/webkit/appcache/appcache_request_handler.cc b/webkit/appcache/appcache_request_handler.cc
index 0f123a1..7673273 100644
--- a/webkit/appcache/appcache_request_handler.cc
+++ b/webkit/appcache/appcache_request_handler.cc
@@ -43,7 +43,7 @@ void AppCacheRequestHandler::GetExtraResponseInfo(
}
AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadResource(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
if (!host_ || !IsSchemeAndMethodSupported(request) || cache_entry_not_found_)
return NULL;
@@ -73,9 +73,9 @@ AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadResource(
found_network_namespace_ = false;
if (is_main_resource())
- MaybeLoadMainResource(request);
+ MaybeLoadMainResource(request, network_delegate);
else
- MaybeLoadSubResource(request);
+ MaybeLoadSubResource(request, network_delegate);
// If its been setup to deliver a network response, we can just delete
// it now and return NULL instead to achieve that since it couldn't
@@ -89,7 +89,9 @@ AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadResource(
}
AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadFallbackForRedirect(
- net::URLRequest* request, const GURL& location) {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const GURL& location) {
if (!host_ || !IsSchemeAndMethodSupported(request) || cache_entry_not_found_)
return NULL;
if (is_main_resource())
@@ -102,13 +104,13 @@ AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadFallbackForRedirect(
if (found_fallback_entry_.has_response_id()) {
// 6.9.6, step 4: If this results in a redirect to another origin,
// get the resource of the fallback entry.
- job_ = new AppCacheURLRequestJob(request, storage());
+ job_ = new AppCacheURLRequestJob(request, network_delegate, storage());
DeliverAppCachedResponse(
found_fallback_entry_, found_cache_id_, found_group_id_,
found_manifest_url_, true, found_namespace_entry_url_);
} else if (!found_network_namespace_) {
// 6.9.6, step 6: Fail the resource load.
- job_ = new AppCacheURLRequestJob(request, storage());
+ job_ = new AppCacheURLRequestJob(request, network_delegate, storage());
DeliverErrorResponse();
} else {
// 6.9.6 step 3 and 5: Fetch the resource normally.
@@ -118,7 +120,7 @@ AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadFallbackForRedirect(
}
AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadFallbackForResponse(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
if (!host_ || !IsSchemeAndMethodSupported(request) || cache_entry_not_found_)
return NULL;
if (!found_fallback_entry_.has_response_id())
@@ -154,7 +156,7 @@ AppCacheURLRequestJob* AppCacheRequestHandler::MaybeLoadFallbackForResponse(
// 6.9.6, step 4: If this results in a 4xx or 5xx status code
// or there were network errors, get the resource of the fallback entry.
- job_ = new AppCacheURLRequestJob(request, storage());
+ job_ = new AppCacheURLRequestJob(request, network_delegate, storage());
DeliverAppCachedResponse(
found_fallback_entry_, found_cache_id_, found_group_id_,
found_manifest_url_, true, found_namespace_entry_url_);
@@ -199,7 +201,8 @@ void AppCacheRequestHandler::DeliverNetworkResponse() {
// Main-resource handling ----------------------------------------------
-void AppCacheRequestHandler::MaybeLoadMainResource(net::URLRequest* request) {
+void AppCacheRequestHandler::MaybeLoadMainResource(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
DCHECK(!job_);
DCHECK(host_);
@@ -211,7 +214,7 @@ void AppCacheRequestHandler::MaybeLoadMainResource(net::URLRequest* request) {
// We may have to wait for our storage query to complete, but
// this query can also complete syncrhonously.
- job_ = new AppCacheURLRequestJob(request, storage());
+ job_ = new AppCacheURLRequestJob(request, network_delegate, storage());
storage()->FindResponseForMainRequest(
request->url(), preferred_manifest_url, this);
}
@@ -277,14 +280,14 @@ void AppCacheRequestHandler::OnMainResponseFound(
// Sub-resource handling ----------------------------------------------
void AppCacheRequestHandler::MaybeLoadSubResource(
- net::URLRequest* request) {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
DCHECK(!job_);
if (host_->is_selection_pending()) {
// We have to wait until cache selection is complete and the
// selected cache is loaded.
is_waiting_for_cache_selection_ = true;
- job_ = new AppCacheURLRequestJob(request, storage());
+ job_ = new AppCacheURLRequestJob(request, network_delegate, storage());
return;
}
@@ -293,7 +296,7 @@ void AppCacheRequestHandler::MaybeLoadSubResource(
return;
}
- job_ = new AppCacheURLRequestJob(request, storage());
+ job_ = new AppCacheURLRequestJob(request, network_delegate, storage());
ContinueMaybeLoadSubResource();
}
diff --git a/webkit/appcache/appcache_request_handler.h b/webkit/appcache/appcache_request_handler.h
index f7e8c23..bedd90d 100644
--- a/webkit/appcache/appcache_request_handler.h
+++ b/webkit/appcache/appcache_request_handler.h
@@ -13,6 +13,7 @@
#include "webkit/glue/resource_type.h"
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
} // namespace net
@@ -34,10 +35,14 @@ class APPCACHE_EXPORT AppCacheRequestHandler
virtual ~AppCacheRequestHandler();
// These are called on each request intercept opportunity.
- AppCacheURLRequestJob* MaybeLoadResource(net::URLRequest* request);
- AppCacheURLRequestJob* MaybeLoadFallbackForRedirect(net::URLRequest* request,
- const GURL& location);
- AppCacheURLRequestJob* MaybeLoadFallbackForResponse(net::URLRequest* request);
+ AppCacheURLRequestJob* MaybeLoadResource(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate);
+ AppCacheURLRequestJob* MaybeLoadFallbackForRedirect(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const GURL& location);
+ AppCacheURLRequestJob* MaybeLoadFallbackForResponse(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate);
void GetExtraResponseInfo(int64* cache_id, GURL* manifest_url);
@@ -74,7 +79,8 @@ class APPCACHE_EXPORT AppCacheRequestHandler
// Main-resource loading -------------------------------------
// Frame and SharedWorker main resources are handled here.
- void MaybeLoadMainResource(net::URLRequest* request);
+ void MaybeLoadMainResource(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
// AppCacheStorage::Delegate methods
virtual void OnMainResponseFound(
@@ -85,7 +91,8 @@ class APPCACHE_EXPORT AppCacheRequestHandler
// Sub-resource loading -------------------------------------
// Dedicated worker and all manner of sub-resources are handled here.
- void MaybeLoadSubResource(net::URLRequest* request);
+ void MaybeLoadSubResource(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate);
void ContinueMaybeLoadSubResource();
// AppCacheHost::Observer override
diff --git a/webkit/appcache/appcache_request_handler_unittest.cc b/webkit/appcache/appcache_request_handler_unittest.cc
index d537212..2abb0f4 100644
--- a/webkit/appcache/appcache_request_handler_unittest.cc
+++ b/webkit/appcache/appcache_request_handler_unittest.cc
@@ -74,14 +74,15 @@ class AppCacheRequestHandlerTest : public testing::Test {
class MockURLRequestJob : public net::URLRequestJob {
public:
MockURLRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
int response_code)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
response_code_(response_code),
has_response_info_(false) {}
MockURLRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const net::HttpResponseInfo& info)
- : net::URLRequestJob(request,
- request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
response_code_(info.headers->response_code()),
has_response_info_(true),
response_info_(info) {}
@@ -114,7 +115,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
}
void SimulateResponseCode(int http_response_code) {
- mock_factory_job_ = new MockURLRequestJob(this, http_response_code);
+ mock_factory_job_ = new MockURLRequestJob(
+ this, context()->network_delegate(), http_response_code);
Start();
DCHECK(!mock_factory_job_);
// All our simulation needs to satisfy are the following two DCHECKs
@@ -123,7 +125,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
}
void SimulateResponseInfo(const net::HttpResponseInfo& info) {
- mock_factory_job_ = new MockURLRequestJob(this, info);
+ mock_factory_job_ = new MockURLRequestJob(
+ this, context()->network_delegate(), info);
set_delegate(&delegate_); // needed to get the info back out
Start();
DCHECK(!mock_factory_job_);
@@ -132,8 +135,10 @@ class AppCacheRequestHandlerTest : public testing::Test {
MockURLRequestDelegate delegate_;
};
- static net::URLRequestJob* MockHttpJobFactory(net::URLRequest* request,
- const std::string& scheme) {
+ static net::URLRequestJob* MockHttpJobFactory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
if (mock_factory_job_) {
net::URLRequestJob* temp = mock_factory_job_;
mock_factory_job_ = NULL;
@@ -142,6 +147,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
// Some of these tests trigger UpdateJobs which start URLRequests.
// We short circuit those be returning error jobs.
return new net::URLRequestErrorJob(request,
+ network_delegate,
net::ERR_INTERNET_DISCONNECTED);
}
}
@@ -246,7 +252,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
ResourceType::MAIN_FRAME));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
@@ -267,9 +274,12 @@ class AppCacheRequestHandlerTest : public testing::Test {
AppCacheURLRequestJob* fallback_job;
fallback_job = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect"));
+ request_.get(),
+ request_->context()->network_delegate(),
+ GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), request_->context()->network_delegate());
EXPECT_FALSE(fallback_job);
EXPECT_TRUE(host_->preferred_manifest_url().is_empty());
@@ -294,7 +304,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
GURL(), AppCacheEntry(),
1, 2, GURL("http://blah/manifest/"));
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
@@ -314,7 +325,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
EXPECT_EQ(2, handler_->found_group_id_);
AppCacheURLRequestJob* fallback_job;
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), request_->context()->network_delegate());
EXPECT_FALSE(fallback_job);
EXPECT_EQ(GURL("http://blah/manifest/"),
@@ -341,7 +353,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
1, 2, GURL("http://blah/manifest/"));
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
@@ -356,13 +369,15 @@ class AppCacheRequestHandlerTest : public testing::Test {
// When the request is restarted, the existing job is dropped so a
// real network job gets created. We expect NULL here which will cause
// the net library to create a real job.
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_FALSE(job_);
// Simulate an http error of the real network job.
request_->SimulateResponseCode(500);
- job_ = handler_->MaybeLoadFallbackForResponse(request_.get());
+ job_ = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), request_->context()->network_delegate());
EXPECT_TRUE(job_);
EXPECT_TRUE(job_->is_delivering_appcache_response());
@@ -399,7 +414,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
1, 2, GURL("http://blah/manifest/"));
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
@@ -414,7 +430,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
// When the request is restarted, the existing job is dropped so a
// real network job gets created. We expect NULL here which will cause
// the net library to create a real job.
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_FALSE(job_);
// Simulate an http error of the real network job, but with custom
@@ -428,7 +445,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
std::string(kOverrideHeaders, arraysize(kOverrideHeaders)));
request_->SimulateResponseInfo(info);
- job_ = handler_->MaybeLoadFallbackForResponse(request_.get());
+ job_ = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), request_->context()->network_delegate());
EXPECT_FALSE(job_);
TestFinished();
@@ -460,15 +478,19 @@ class AppCacheRequestHandlerTest : public testing::Test {
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_delivering_error_response());
AppCacheURLRequestJob* fallback_job;
fallback_job = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect"));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate());
EXPECT_FALSE(fallback_job);
TestFinished();
@@ -486,7 +508,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
handler_.reset(host_->CreateRequestHandler(request_.get(),
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
@@ -496,9 +519,12 @@ class AppCacheRequestHandlerTest : public testing::Test {
AppCacheURLRequestJob* fallback_job;
fallback_job = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect"));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate());
EXPECT_FALSE(fallback_job);
TestFinished();
@@ -516,15 +542,19 @@ class AppCacheRequestHandlerTest : public testing::Test {
handler_.reset(host_->CreateRequestHandler(request_.get(),
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_delivering_appcache_response());
AppCacheURLRequestJob* fallback_job;
fallback_job = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect"));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate());
EXPECT_FALSE(fallback_job);
TestFinished();
@@ -544,16 +574,20 @@ class AppCacheRequestHandlerTest : public testing::Test {
handler_.reset(host_->CreateRequestHandler(request_.get(),
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_FALSE(job_.get());
job_ = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://not_blah/redirect"));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://not_blah/redirect"));
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_delivering_appcache_response());
AppCacheURLRequestJob* fallback_job;
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate());
EXPECT_FALSE(fallback_job);
TestFinished();
@@ -573,16 +607,20 @@ class AppCacheRequestHandlerTest : public testing::Test {
handler_.reset(host_->CreateRequestHandler(request_.get(),
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_FALSE(job_.get());
AppCacheURLRequestJob* fallback_job;
fallback_job = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect"));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
request_->SimulateResponseCode(200);
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate());
EXPECT_FALSE(fallback_job);
TestFinished();
@@ -603,14 +641,18 @@ class AppCacheRequestHandlerTest : public testing::Test {
handler_.reset(host_->CreateRequestHandler(request_.get(),
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_FALSE(job_.get());
AppCacheURLRequestJob* fallback_job;
fallback_job = handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect"));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect"));
EXPECT_FALSE(fallback_job);
- fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
+ fallback_job = handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate());
EXPECT_FALSE(fallback_job);
TestFinished();
@@ -632,10 +674,14 @@ class AppCacheRequestHandlerTest : public testing::Test {
backend_impl_->UnregisterHost(1);
host_ = NULL;
- EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
+ EXPECT_FALSE(handler_->MaybeLoadResource(
+ request_.get(), empty_context_.network_delegate()));
EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect")));
- EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect")));
+ EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate()));
TestFinished();
}
@@ -651,7 +697,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(
+ request_.get(), empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
@@ -659,10 +706,14 @@ class AppCacheRequestHandlerTest : public testing::Test {
host_ = NULL;
EXPECT_TRUE(job_->has_been_killed());
- EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
+ EXPECT_FALSE(handler_->MaybeLoadResource(
+ request_.get(), empty_context_.network_delegate()));
EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("http://blah/redirect")));
- EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("http://blah/redirect")));
+ EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate()));
TestFinished();
}
@@ -678,10 +729,14 @@ class AppCacheRequestHandlerTest : public testing::Test {
ResourceType::SUB_RESOURCE));
EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
- EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
+ EXPECT_FALSE(handler_->MaybeLoadResource(
+ request_.get(), empty_context_.network_delegate()));
EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
- request_.get(), GURL("ftp://blah/redirect")));
- EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
+ request_.get(),
+ empty_context_.network_delegate(),
+ GURL("ftp://blah/redirect")));
+ EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate()));
TestFinished();
}
@@ -694,7 +749,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
ResourceType::MAIN_FRAME));
EXPECT_TRUE(handler_.get());
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
EXPECT_FALSE(job_->has_been_started());
@@ -706,7 +762,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
request_->Cancel();
EXPECT_TRUE(job_->has_been_killed());
- EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
+ EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
+ request_.get(), empty_context_.network_delegate()));
TestFinished();
}
@@ -771,7 +828,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
GURL(), AppCacheEntry(),
1, 2, GURL("http://blah/manifest/"));
- job_ = handler_->MaybeLoadResource(request_.get());
+ job_ = handler_->MaybeLoadResource(request_.get(),
+ empty_context_.network_delegate());
EXPECT_TRUE(job_.get());
EXPECT_TRUE(job_->is_waiting());
diff --git a/webkit/appcache/appcache_update_job_unittest.cc b/webkit/appcache/appcache_update_job_unittest.cc
index 123a563..73f8692 100644
--- a/webkit/appcache/appcache_update_job_unittest.cc
+++ b/webkit/appcache/appcache_update_job_unittest.cc
@@ -51,14 +51,16 @@ class MockHttpServer {
return GURL("https://cross_origin_host/" + path);
}
- static net::URLRequestJob* JobFactory(net::URLRequest* request) {
+ static net::URLRequestJob* JobFactory(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
if (request->url().host() != "mockhost" &&
request->url().host() != "cross_origin_host")
- return new net::URLRequestErrorJob(request, -100);
+ return new net::URLRequestErrorJob(request, network_delegate, -100);
std::string headers, body;
GetMockResponse(request->url().path(), &headers, &body);
- return new net::URLRequestTestJob(request, headers, body, true);
+ return new net::URLRequestTestJob(
+ request, network_delegate, headers, body, true);
}
private:
@@ -194,8 +196,9 @@ class MockHttpServer {
class MockHttpServerJobFactory
: public net::URLRequestJobFactory::ProtocolHandler {
public:
- virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const {
- return MockHttpServer::JobFactory(request);
+ virtual net::URLRequestJob* MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
+ return MockHttpServer::JobFactory(request, network_delegate);
}
};
@@ -336,9 +339,11 @@ class MockFrontend : public AppCacheFrontend {
// Helper factories to simulate redirected URL responses for tests.
class RedirectFactory : public net::URLRequestJobFactory::ProtocolHandler {
public:
- virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const {
+ virtual net::URLRequestJob* MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
return new net::URLRequestTestJob(
request,
+ network_delegate,
net::URLRequestTestJob::test_redirect_headers(),
net::URLRequestTestJob::test_data_1(),
true);
@@ -372,15 +377,18 @@ class RetryRequestTestJob : public net::URLRequestTestJob {
expected_requests_ = 0;
}
- static net::URLRequestJob* RetryFactory(net::URLRequest* request) {
+ static net::URLRequestJob* RetryFactory(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
++num_requests_;
if (num_retries_ > 0 && request->original_url() == kRetryUrl) {
--num_retries_;
return new RetryRequestTestJob(
- request, RetryRequestTestJob::retry_headers(), 503);
+ request, network_delegate, RetryRequestTestJob::retry_headers(), 503);
} else {
return new RetryRequestTestJob(
- request, RetryRequestTestJob::manifest_headers(), 200);
+ request,
+ network_delegate,
+ RetryRequestTestJob::manifest_headers(), 200);
}
}
@@ -427,9 +435,11 @@ class RetryRequestTestJob : public net::URLRequestTestJob {
}
RetryRequestTestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& headers,
int response_code)
- : net::URLRequestTestJob(request, headers, data(), true),
+ : net::URLRequestTestJob(
+ request, network_delegate, headers, data(), true),
response_code_(response_code) {
}
@@ -444,8 +454,9 @@ class RetryRequestTestJob : public net::URLRequestTestJob {
class RetryRequestTestJobFactory
: public net::URLRequestJobFactory::ProtocolHandler {
public:
- virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const {
- return RetryRequestTestJob::RetryFactory(request);
+ virtual net::URLRequestJob* MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
+ return RetryRequestTestJob::RetryFactory(request, network_delegate);
}
};
@@ -481,7 +492,8 @@ class HttpHeadersRequestTestJob : public net::URLRequestTestJob {
already_checked_ = false;
}
- static net::URLRequestJob* IfModifiedSinceFactory(net::URLRequest* request) {
+ static net::URLRequestJob* IfModifiedSinceFactory(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) {
if (!already_checked_) {
already_checked_ = true; // only check once for a test
const net::HttpRequestHeaders& extra_headers =
@@ -497,7 +509,7 @@ class HttpHeadersRequestTestJob : public net::URLRequestTestJob {
net::HttpRequestHeaders::kIfNoneMatch, &header_value) &&
header_value == expect_if_none_match_;
}
- return MockHttpServer::JobFactory(request);
+ return MockHttpServer::JobFactory(request, network_delegate);
}
protected:
@@ -521,8 +533,10 @@ bool HttpHeadersRequestTestJob::already_checked_ = false;
class IfModifiedSinceJobFactory
: public net::URLRequestJobFactory::ProtocolHandler {
public:
- virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const {
- return HttpHeadersRequestTestJob::IfModifiedSinceFactory(request);
+ virtual net::URLRequestJob* MaybeCreateJob(
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
+ return HttpHeadersRequestTestJob::IfModifiedSinceFactory(
+ request, network_delegate);
}
};
diff --git a/webkit/appcache/appcache_url_request_job.cc b/webkit/appcache/appcache_url_request_job.cc
index 2c8efa7..80c0b7d 100644
--- a/webkit/appcache/appcache_url_request_job.cc
+++ b/webkit/appcache/appcache_url_request_job.cc
@@ -18,15 +18,16 @@
#include "net/http/http_response_headers.h"
#include "net/http/http_util.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_status.h"
#include "webkit/appcache/appcache_service.h"
namespace appcache {
AppCacheURLRequestJob::AppCacheURLRequestJob(
- net::URLRequest* request, AppCacheStorage* storage)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheStorage* storage)
+ : net::URLRequestJob(request, network_delegate),
storage_(storage),
has_been_started_(false), has_been_killed_(false),
delivery_type_(AWAITING_DELIVERY_ORDERS),
diff --git a/webkit/appcache/appcache_url_request_job.h b/webkit/appcache/appcache_url_request_job.h
index 2e11abc..38ee9bd 100644
--- a/webkit/appcache/appcache_url_request_job.h
+++ b/webkit/appcache/appcache_url_request_job.h
@@ -22,7 +22,9 @@ namespace appcache {
class APPCACHE_EXPORT AppCacheURLRequestJob : public net::URLRequestJob,
public AppCacheStorage::Delegate {
public:
- AppCacheURLRequestJob(net::URLRequest* request, AppCacheStorage* storage);
+ AppCacheURLRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheStorage* storage);
// Informs the job of what response it should deliver. Only one of these
// methods should be called, and only once per job. A job will sit idle and
diff --git a/webkit/appcache/appcache_url_request_job_unittest.cc b/webkit/appcache/appcache_url_request_job_unittest.cc
index 1c2d1f1..9fa8ded 100644
--- a/webkit/appcache/appcache_url_request_job_unittest.cc
+++ b/webkit/appcache/appcache_url_request_job_unittest.cc
@@ -127,14 +127,17 @@ class AppCacheURLRequestJobTest : public testing::Test {
bool kill_with_io_pending_;
};
- static net::URLRequestJob* MockHttpJobFactory(net::URLRequest* request,
- const std::string& scheme) {
+ static net::URLRequestJob* MockHttpJobFactory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
if (mock_factory_job_) {
net::URLRequestJob* temp = mock_factory_job_;
mock_factory_job_ = NULL;
return temp;
} else {
return new net::URLRequestErrorJob(request,
+ network_delegate,
net::ERR_INTERNET_DISCONNECTED);
}
}
@@ -375,7 +378,8 @@ class AppCacheURLRequestJobTest : public testing::Test {
// Create an instance and see that it looks as expected.
- job = new AppCacheURLRequestJob(&request, storage);
+ job = new AppCacheURLRequestJob(
+ &request, empty_context_.network_delegate(), storage);
EXPECT_TRUE(job->is_waiting());
EXPECT_FALSE(job->is_delivering_appcache_response());
EXPECT_FALSE(job->is_delivering_network_response());
@@ -398,17 +402,20 @@ class AppCacheURLRequestJobTest : public testing::Test {
// Create an instance, give it a delivery order and see that
// it looks as expected.
- job = new AppCacheURLRequestJob(&request, storage);
+ job = new AppCacheURLRequestJob(
+ &request, empty_context_.network_delegate(), storage);
job->DeliverErrorResponse();
EXPECT_TRUE(job->is_delivering_error_response());
EXPECT_FALSE(job->has_been_started());
- job = new AppCacheURLRequestJob(&request, storage);
+ job = new AppCacheURLRequestJob(
+ &request, empty_context_.network_delegate(), storage);
job->DeliverNetworkResponse();
EXPECT_TRUE(job->is_delivering_network_response());
EXPECT_FALSE(job->has_been_started());
- job = new AppCacheURLRequestJob(&request, storage);
+ job = new AppCacheURLRequestJob(
+ &request, empty_context_.network_delegate(), storage);
const GURL kManifestUrl("http://blah/");
const int64 kCacheId(1);
const int64 kGroupId(1);
@@ -443,7 +450,8 @@ class AppCacheURLRequestJobTest : public testing::Test {
// Setup to create an AppCacheURLRequestJob with orders to deliver
// a network response.
- mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage);
+ mock_factory_job_ = new AppCacheURLRequestJob(
+ request_.get(), empty_context_.network_delegate(), storage);
mock_factory_job_->DeliverNetworkResponse();
EXPECT_TRUE(mock_factory_job_->is_delivering_network_response());
EXPECT_FALSE(mock_factory_job_->has_been_started());
@@ -478,7 +486,8 @@ class AppCacheURLRequestJobTest : public testing::Test {
// Setup to create an AppCacheURLRequestJob with orders to deliver
// a network response.
- mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage);
+ mock_factory_job_ = new AppCacheURLRequestJob(
+ request_.get(), empty_context_.network_delegate(), storage);
mock_factory_job_->DeliverErrorResponse();
EXPECT_TRUE(mock_factory_job_->is_delivering_error_response());
EXPECT_FALSE(mock_factory_job_->has_been_started());
@@ -528,8 +537,8 @@ class AppCacheURLRequestJobTest : public testing::Test {
// Setup to create an AppCacheURLRequestJob with orders to deliver
// a network response.
- scoped_refptr<AppCacheURLRequestJob> job(
- new AppCacheURLRequestJob(request_.get(), storage));
+ scoped_refptr<AppCacheURLRequestJob> job(new AppCacheURLRequestJob(
+ request_.get(), empty_context_.network_delegate(), storage));
if (start_after_delivery_orders) {
job->DeliverAppCachedResponse(
@@ -646,8 +655,8 @@ class AppCacheURLRequestJobTest : public testing::Test {
request_->SetExtraRequestHeaders(extra_headers);
// Create job with orders to deliver an appcached entry.
- scoped_refptr<AppCacheURLRequestJob> job(
- new AppCacheURLRequestJob(request_.get(), storage));
+ scoped_refptr<AppCacheURLRequestJob> job(new AppCacheURLRequestJob(
+ request_.get(), empty_context_.network_delegate(), storage));
job->DeliverAppCachedResponse(
GURL(), 0, 111,
AppCacheEntry(AppCacheEntry::EXPLICIT, written_response_id_),
diff --git a/webkit/appcache/view_appcache_internals_job.cc b/webkit/appcache/view_appcache_internals_job.cc
index 94ee601..c33c7ae 100644
--- a/webkit/appcache/view_appcache_internals_job.cc
+++ b/webkit/appcache/view_appcache_internals_job.cc
@@ -311,8 +311,11 @@ GURL ClearQuery(const GURL& url) {
// Simple base class for the job subclasses defined here.
class BaseInternalsJob : public net::URLRequestSimpleJob {
protected:
- BaseInternalsJob(net::URLRequest* request, AppCacheService* service)
- : URLRequestSimpleJob(request), appcache_service_(service) {}
+ BaseInternalsJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service)
+ : URLRequestSimpleJob(request, network_delegate),
+ appcache_service_(service) {}
virtual ~BaseInternalsJob() {}
AppCacheService* appcache_service_;
@@ -321,8 +324,10 @@ class BaseInternalsJob : public net::URLRequestSimpleJob {
// Job that lists all appcaches in the system.
class MainPageJob : public BaseInternalsJob {
public:
- MainPageJob(net::URLRequest* request, AppCacheService* service)
- : BaseInternalsJob(request, service),
+ MainPageJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service)
+ : BaseInternalsJob(request, network_delegate, service),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
@@ -383,8 +388,10 @@ class MainPageJob : public BaseInternalsJob {
// Job that redirects back to the main appcache internals page.
class RedirectToMainPageJob : public BaseInternalsJob {
public:
- RedirectToMainPageJob(net::URLRequest* request, AppCacheService* service)
- : BaseInternalsJob(request, service) {}
+ RedirectToMainPageJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service)
+ : BaseInternalsJob(request, network_delegate, service) {}
virtual int GetData(std::string* mime_type,
std::string* charset,
@@ -407,9 +414,11 @@ class RedirectToMainPageJob : public BaseInternalsJob {
class RemoveAppCacheJob : public RedirectToMainPageJob {
public:
RemoveAppCacheJob(
- net::URLRequest* request, AppCacheService* service,
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service,
const GURL& manifest_url)
- : RedirectToMainPageJob(request, service),
+ : RedirectToMainPageJob(request, network_delegate, service),
manifest_url_(manifest_url),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
@@ -439,9 +448,11 @@ class ViewAppCacheJob : public BaseInternalsJob,
public AppCacheStorage::Delegate {
public:
ViewAppCacheJob(
- net::URLRequest* request, AppCacheService* service,
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service,
const GURL& manifest_url)
- : BaseInternalsJob(request, service),
+ : BaseInternalsJob(request, network_delegate, service),
manifest_url_(manifest_url) {}
virtual void Start() {
@@ -508,10 +519,13 @@ class ViewEntryJob : public BaseInternalsJob,
public AppCacheStorage::Delegate {
public:
ViewEntryJob(
- net::URLRequest* request, AppCacheService* service,
- const GURL& manifest_url, const GURL& entry_url,
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service,
+ const GURL& manifest_url,
+ const GURL& entry_url,
int64 response_id, int64 group_id)
- : BaseInternalsJob(request, service),
+ : BaseInternalsJob(request, network_delegate, service),
manifest_url_(manifest_url), entry_url_(entry_url),
response_id_(response_id), group_id_(group_id), amount_read_(0) {
}
@@ -599,20 +613,22 @@ class ViewEntryJob : public BaseInternalsJob,
} // namespace
net::URLRequestJob* ViewAppCacheInternalsJobFactory::CreateJobForRequest(
- net::URLRequest* request, AppCacheService* service) {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service) {
if (!request->url().has_query())
- return new MainPageJob(request, service);
+ return new MainPageJob(request, network_delegate, service);
std::string command;
std::string param;
ParseQuery(request->url().query(), &command, &param);
if (command == kRemoveCacheCommand)
- return new RemoveAppCacheJob(request, service,
+ return new RemoveAppCacheJob(request, network_delegate, service,
DecodeBase64URL(param));
if (command == kViewCacheCommand)
- return new ViewAppCacheJob(request, service,
+ return new ViewAppCacheJob(request, network_delegate, service,
DecodeBase64URL(param));
std::vector<std::string> tokens;
@@ -621,13 +637,13 @@ net::URLRequestJob* ViewAppCacheInternalsJobFactory::CreateJobForRequest(
if (command == kViewEntryCommand && Tokenize(param, "|", &tokens) == 4u &&
base::StringToInt64(tokens[2], &response_id) &&
base::StringToInt64(tokens[3], &group_id)) {
- return new ViewEntryJob(request, service,
+ return new ViewEntryJob(request, network_delegate, service,
DecodeBase64URL(tokens[0]), // manifest url
DecodeBase64URL(tokens[1]), // entry url
response_id, group_id);
}
- return new RedirectToMainPageJob(request, service);
+ return new RedirectToMainPageJob(request, network_delegate, service);
}
} // namespace appcache
diff --git a/webkit/appcache/view_appcache_internals_job.h b/webkit/appcache/view_appcache_internals_job.h
index 762a703..aad961f 100644
--- a/webkit/appcache/view_appcache_internals_job.h
+++ b/webkit/appcache/view_appcache_internals_job.h
@@ -9,6 +9,7 @@
#include "webkit/appcache/appcache_export.h"
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestJob;
}
@@ -20,7 +21,9 @@ class AppCacheService;
class APPCACHE_EXPORT ViewAppCacheInternalsJobFactory {
public:
static net::URLRequestJob* CreateJobForRequest(
- net::URLRequest* request, AppCacheService* service);
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ AppCacheService* service);
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(ViewAppCacheInternalsJobFactory);
diff --git a/webkit/blob/blob_url_request_job.cc b/webkit/blob/blob_url_request_job.cc
index edda7fc..642f955 100644
--- a/webkit/blob/blob_url_request_job.cc
+++ b/webkit/blob/blob_url_request_job.cc
@@ -48,9 +48,10 @@ const char kHTTPInternalErrorText[] = "Internal Server Error";
BlobURLRequestJob::BlobURLRequestJob(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
BlobData* blob_data,
base::MessageLoopProxy* file_thread_proxy)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
blob_data_(blob_data),
file_thread_proxy_(file_thread_proxy),
diff --git a/webkit/blob/blob_url_request_job.h b/webkit/blob/blob_url_request_job.h
index 676ebaf..d7080bc 100644
--- a/webkit/blob/blob_url_request_job.h
+++ b/webkit/blob/blob_url_request_job.h
@@ -31,6 +31,7 @@ class LocalFileStreamReader;
class BLOB_EXPORT BlobURLRequestJob : public net::URLRequestJob {
public:
BlobURLRequestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
BlobData* blob_data,
base::MessageLoopProxy* resolving_message_loop_proxy);
diff --git a/webkit/blob/blob_url_request_job_factory.cc b/webkit/blob/blob_url_request_job_factory.cc
index 539570e..52f0874 100644
--- a/webkit/blob/blob_url_request_job_factory.cc
+++ b/webkit/blob/blob_url_request_job_factory.cc
@@ -26,13 +26,14 @@ BlobProtocolHandler::BlobProtocolHandler(
BlobProtocolHandler::~BlobProtocolHandler() {}
net::URLRequestJob* BlobProtocolHandler::MaybeCreateJob(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
scoped_refptr<webkit_blob::BlobData> data = LookupBlobData(request);
if (!data) {
// This request is not coming through resource dispatcher host.
data = blob_storage_controller_->GetBlobDataFromUrl(request->url());
}
- return new webkit_blob::BlobURLRequestJob(request, data, file_loop_proxy_);
+ return new webkit_blob::BlobURLRequestJob(
+ request, network_delegate, data, file_loop_proxy_);
}
scoped_refptr<webkit_blob::BlobData>
diff --git a/webkit/blob/blob_url_request_job_factory.h b/webkit/blob/blob_url_request_job_factory.h
index 61d55094..cf7452a 100644
--- a/webkit/blob/blob_url_request_job_factory.h
+++ b/webkit/blob/blob_url_request_job_factory.h
@@ -33,7 +33,8 @@ class BLOB_EXPORT BlobProtocolHandler
virtual ~BlobProtocolHandler();
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
virtual scoped_refptr<BlobData> LookupBlobData(
diff --git a/webkit/blob/blob_url_request_job_unittest.cc b/webkit/blob/blob_url_request_job_unittest.cc
index a9462e6..3463d01 100644
--- a/webkit/blob/blob_url_request_job_unittest.cc
+++ b/webkit/blob/blob_url_request_job_unittest.cc
@@ -144,6 +144,7 @@ class BlobURLRequestJobTest : public testing::Test {
static net::URLRequestJob* BlobURLRequestJobFactory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
BlobURLRequestJob* temp = blob_url_request_job_;
blob_url_request_job_ = NULL;
@@ -248,6 +249,7 @@ class BlobURLRequestJobTest : public testing::Test {
request_->set_method(method);
blob_url_request_job_ = new BlobURLRequestJob(
request_.get(),
+ empty_context_.network_delegate(),
blob_data,
base::MessageLoopProxy::current());
diff --git a/webkit/blob/view_blob_internals_job.cc b/webkit/blob/view_blob_internals_job.cc
index 03029ef..dfbf3a0 100644
--- a/webkit/blob/view_blob_internals_job.cc
+++ b/webkit/blob/view_blob_internals_job.cc
@@ -98,8 +98,10 @@ void AddHTMLButton(const std::string& title,
namespace webkit_blob {
ViewBlobInternalsJob::ViewBlobInternalsJob(
- net::URLRequest* request, BlobStorageController* blob_storage_controller)
- : net::URLRequestSimpleJob(request),
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ BlobStorageController* blob_storage_controller)
+ : net::URLRequestSimpleJob(request, network_delegate),
blob_storage_controller_(blob_storage_controller),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
diff --git a/webkit/blob/view_blob_internals_job.h b/webkit/blob/view_blob_internals_job.h
index 24324ca..17c3cf9 100644
--- a/webkit/blob/view_blob_internals_job.h
+++ b/webkit/blob/view_blob_internals_job.h
@@ -25,6 +25,7 @@ class BlobStorageController;
class BLOB_EXPORT ViewBlobInternalsJob : public net::URLRequestSimpleJob {
public:
ViewBlobInternalsJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
BlobStorageController* blob_storage_controller);
virtual void Start() OVERRIDE;
diff --git a/webkit/fileapi/file_system_dir_url_request_job.cc b/webkit/fileapi/file_system_dir_url_request_job.cc
index 642887d..f8fe544 100644
--- a/webkit/fileapi/file_system_dir_url_request_job.cc
+++ b/webkit/fileapi/file_system_dir_url_request_job.cc
@@ -20,11 +20,11 @@
#include "net/base/net_errors.h"
#include "net/base/net_util.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "webkit/fileapi/file_system_context.h"
#include "webkit/fileapi/file_system_operation_interface.h"
#include "webkit/fileapi/file_system_url.h"
+using net::NetworkDelegate;
using net::URLRequest;
using net::URLRequestJob;
using net::URLRequestStatus;
@@ -32,8 +32,10 @@ using net::URLRequestStatus;
namespace fileapi {
FileSystemDirURLRequestJob::FileSystemDirURLRequestJob(
- URLRequest* request, FileSystemContext* file_system_context)
- : URLRequestJob(request, request->context()->network_delegate()),
+ URLRequest* request,
+ NetworkDelegate* network_delegate,
+ FileSystemContext* file_system_context)
+ : URLRequestJob(request, network_delegate),
file_system_context_(file_system_context),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
diff --git a/webkit/fileapi/file_system_dir_url_request_job.h b/webkit/fileapi/file_system_dir_url_request_job.h
index c999358..0929bf3 100644
--- a/webkit/fileapi/file_system_dir_url_request_job.h
+++ b/webkit/fileapi/file_system_dir_url_request_job.h
@@ -27,6 +27,7 @@ class FILEAPI_EXPORT_PRIVATE FileSystemDirURLRequestJob
public:
FileSystemDirURLRequestJob(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
FileSystemContext* file_system_context);
// URLRequestJob methods:
diff --git a/webkit/fileapi/file_system_dir_url_request_job_unittest.cc b/webkit/fileapi/file_system_dir_url_request_job_unittest.cc
index 5529253..9294ffd 100644
--- a/webkit/fileapi/file_system_dir_url_request_job_unittest.cc
+++ b/webkit/fileapi/file_system_dir_url_request_job_unittest.cc
@@ -18,6 +18,7 @@
#include "net/base/net_util.h"
#include "net/http/http_request_headers.h"
#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "unicode/regex.h"
@@ -86,8 +87,10 @@ class FileSystemDirURLRequestJobTest : public testing::Test {
request_.reset(new net::URLRequest(url,
delegate_.get(),
&empty_context_));
- job_ = new FileSystemDirURLRequestJob(request_.get(),
- file_system_context_.get());
+ job_ = new FileSystemDirURLRequestJob(
+ request_.get(),
+ empty_context_.network_delegate(),
+ file_system_context_.get());
request_->Start();
ASSERT_TRUE(request_->is_pending()); // verify that we're starting async
@@ -186,6 +189,7 @@ class FileSystemDirURLRequestJobTest : public testing::Test {
static net::URLRequestJob* FileSystemDirURLRequestJobFactory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK(job_);
net::URLRequestJob* temp = job_;
diff --git a/webkit/fileapi/file_system_url_request_job.cc b/webkit/fileapi/file_system_url_request_job.cc
index 72269db..1d09ed5 100644
--- a/webkit/fileapi/file_system_url_request_job.cc
+++ b/webkit/fileapi/file_system_url_request_job.cc
@@ -26,12 +26,12 @@
#include "net/http/http_response_info.h"
#include "net/http/http_util.h"
#include "net/url_request/url_request.h"
-#include "net/url_request/url_request_context.h"
#include "webkit/blob/file_stream_reader.h"
#include "webkit/fileapi/file_system_context.h"
#include "webkit/fileapi/file_system_util.h"
#include "webkit/fileapi/local_file_system_operation.h"
+using net::NetworkDelegate;
using net::URLRequest;
using net::URLRequestJob;
using net::URLRequestStatus;
@@ -55,8 +55,10 @@ static net::HttpResponseHeaders* CreateHttpResponseHeaders() {
}
FileSystemURLRequestJob::FileSystemURLRequestJob(
- URLRequest* request, FileSystemContext* file_system_context)
- : URLRequestJob(request, request->context()->network_delegate()),
+ URLRequest* request,
+ NetworkDelegate* network_delegate,
+ FileSystemContext* file_system_context)
+ : URLRequestJob(request, network_delegate),
file_system_context_(file_system_context),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
is_directory_(false),
diff --git a/webkit/fileapi/file_system_url_request_job.h b/webkit/fileapi/file_system_url_request_job.h
index cc2f6c7..5dfb4cc 100644
--- a/webkit/fileapi/file_system_url_request_job.h
+++ b/webkit/fileapi/file_system_url_request_job.h
@@ -32,6 +32,7 @@ class FILEAPI_EXPORT_PRIVATE FileSystemURLRequestJob
public:
FileSystemURLRequestJob(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
FileSystemContext* file_system_context);
// URLRequestJob methods:
diff --git a/webkit/fileapi/file_system_url_request_job_factory.cc b/webkit/fileapi/file_system_url_request_job_factory.cc
index ae6f39c..f0bf0d8 100644
--- a/webkit/fileapi/file_system_url_request_job_factory.cc
+++ b/webkit/fileapi/file_system_url_request_job_factory.cc
@@ -23,7 +23,8 @@ class FileSystemProtocolHandler
virtual ~FileSystemProtocolHandler();
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE;
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE;
private:
// No scoped_refptr because |file_system_context_| is owned by the
@@ -42,16 +43,18 @@ FileSystemProtocolHandler::FileSystemProtocolHandler(
FileSystemProtocolHandler::~FileSystemProtocolHandler() {}
net::URLRequestJob* FileSystemProtocolHandler::MaybeCreateJob(
- net::URLRequest* request) const {
+ net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
const std::string path = request->url().path();
// If the path ends with a /, we know it's a directory. If the path refers
// to a directory and gets dispatched to FileSystemURLRequestJob, that class
// redirects back here, by adding a / to the URL.
if (!path.empty() && path[path.size() - 1] == '/') {
- return new FileSystemDirURLRequestJob(request, file_system_context_);
+ return new FileSystemDirURLRequestJob(
+ request, network_delegate, file_system_context_);
}
- return new FileSystemURLRequestJob(request, file_system_context_);
+ return new FileSystemURLRequestJob(
+ request, network_delegate, file_system_context_);
}
} // anonymous namespace
diff --git a/webkit/fileapi/file_system_url_request_job_unittest.cc b/webkit/fileapi/file_system_url_request_job_unittest.cc
index 3a30889..ce77edd 100644
--- a/webkit/fileapi/file_system_url_request_job_unittest.cc
+++ b/webkit/fileapi/file_system_url_request_job_unittest.cc
@@ -24,6 +24,7 @@
#include "net/base/net_util.h"
#include "net/http/http_request_headers.h"
#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/fileapi/file_system_context.h"
@@ -117,6 +118,7 @@ class FileSystemURLRequestJobTest : public testing::Test {
ASSERT_TRUE(!job_);
job_ = new FileSystemURLRequestJob(
request_.get(),
+ empty_context_.network_delegate(),
file_system_context_.get());
pending_job_ = job_;
@@ -188,6 +190,7 @@ class FileSystemURLRequestJobTest : public testing::Test {
static net::URLRequestJob* FileSystemURLRequestJobFactory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
DCHECK(job_);
net::URLRequestJob* temp = job_;
diff --git a/webkit/fileapi/file_writer_delegate_unittest.cc b/webkit/fileapi/file_writer_delegate_unittest.cc
index d20c9b8..3b1a515 100644
--- a/webkit/fileapi/file_writer_delegate_unittest.cc
+++ b/webkit/fileapi/file_writer_delegate_unittest.cc
@@ -143,8 +143,9 @@ static std::string g_content;
class FileWriterDelegateTestJob : public net::URLRequestJob {
public:
FileWriterDelegateTestJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& content)
- : net::URLRequestJob(request, request->context()->network_delegate()),
+ : net::URLRequestJob(request, network_delegate),
content_(content),
remaining_bytes_(content.length()),
cursor_(0) {
@@ -189,9 +190,10 @@ class FileWriterDelegateTestJob : public net::URLRequestJob {
// static
net::URLRequestJob* FileWriterDelegateTest::Factory(
net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
const std::string& scheme) {
return new FileWriterDelegateTestJob(
- request, FileWriterDelegateTest::content_);
+ request, network_delegate, FileWriterDelegateTest::content_);
}
void FileWriterDelegateTest::SetUp() {
diff --git a/webkit/fileapi/local_file_system_operation_write_unittest.cc b/webkit/fileapi/local_file_system_operation_write_unittest.cc
index 3851da3..d715fd4 100644
--- a/webkit/fileapi/local_file_system_operation_write_unittest.cc
+++ b/webkit/fileapi/local_file_system_operation_write_unittest.cc
@@ -160,9 +160,11 @@ class TestProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler {
virtual ~TestProtocolHandler() {}
virtual net::URLRequestJob* MaybeCreateJob(
- net::URLRequest* request) const OVERRIDE {
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate) const OVERRIDE {
return new webkit_blob::BlobURLRequestJob(
request,
+ network_delegate,
blob_storage_controller_->GetBlobDataFromUrl(request->url()),
base::MessageLoopProxy::current());
}
diff --git a/webkit/tools/test_shell/test_shell.cc b/webkit/tools/test_shell/test_shell.cc
index bce8ba3..32070d5 100644
--- a/webkit/tools/test_shell/test_shell.cc
+++ b/webkit/tools/test_shell/test_shell.cc
@@ -22,6 +22,7 @@
#include "grit/webkit_strings.h"
#include "net/base/mime_util.h"
#include "net/base/net_util.h"
+#include "net/url_request/url_request.h"
#include "net/url_request/url_request_file_job.h"
#include "net/url_request/url_request_filter.h"
#include "skia/ext/bitmap_platform_device.h"
@@ -82,21 +83,23 @@ const int kSVGTestWindowHeight = 360;
// URLRequestTestShellFileJob is used to serve the inspector
class URLRequestTestShellFileJob : public net::URLRequestFileJob {
public:
- static net::URLRequestJob* InspectorFactory(net::URLRequest* request,
- const std::string& scheme) {
+ static net::URLRequestJob* InspectorFactory(
+ net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const std::string& scheme) {
FilePath path;
PathService::Get(base::DIR_EXE, &path);
path = path.AppendASCII("resources");
path = path.AppendASCII("inspector");
path = path.AppendASCII(request->url().path().substr(1));
- return new URLRequestTestShellFileJob(request, path);
+ return new URLRequestTestShellFileJob(request, network_delegate, path);
}
private:
- URLRequestTestShellFileJob(net::URLRequest* request, const FilePath& path)
- : net::URLRequestFileJob(request,
- path,
- request->context()->network_delegate()) {
+ URLRequestTestShellFileJob(net::URLRequest* request,
+ net::NetworkDelegate* network_delegate,
+ const FilePath& path)
+ : net::URLRequestFileJob(request, network_delegate, path) {
}
virtual ~URLRequestTestShellFileJob() { }