summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-21 16:32:19 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-21 16:34:06 +0000
commitf7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c (patch)
treea7890ddc698cb75c4f86babfe3c4d34e23c67f29
parent4b04e3424d3a266d33d5f613cbfbbecd1bd5388a (diff)
downloadchromium_src-f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c.zip
chromium_src-f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c.tar.gz
chromium_src-f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c.tar.bz2
Allow URLRequests from one context to have different NetworkDelegates.
This is a prerequisite to allowing a URLRequestJob to transparently wrap a URLRequest, so AppCache can override the response for failing and redirected requests without the NetworkDelegate or URLRequest::Delegate being aware of the underlying request. Also consolidate the URLRequest constructors, and make most code create URLRequests through the URLRequestContext's CreateRequest function, rather than through its constructor. TBR=battre@chromium.org BUG=161547 Review URL: https://codereview.chromium.org/407093011 Cr-Commit-Position: refs/heads/master@{#291090} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291090 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/drive/drive_url_request_job_unittest.cc166
-rw-r--r--chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc5
-rw-r--r--chrome/browser/extensions/api/web_request/web_request_api_unittest.cc140
-rw-r--r--chrome/browser/net/chrome_fraudulent_certificate_reporter_unittest.cc23
-rw-r--r--chrome/browser/policy/url_blacklist_manager_unittest.cc18
-rw-r--r--chrome/browser/prerender/prerender_tracker_unittest.cc30
-rw-r--r--chrome/browser/search/iframe_source_unittest.cc41
-rw-r--r--cloud_print/service/service_state.cc16
-rw-r--r--components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc55
-rw-r--r--components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats_unittest.cc14
-rw-r--r--components/navigation_interception/intercept_navigation_resource_throttle_unittest.cc19
-rw-r--r--content/browser/appcache/appcache_request_handler_unittest.cc70
-rw-r--r--content/browser/appcache/appcache_url_request_job_unittest.cc24
-rw-r--r--content/browser/loader/resource_dispatcher_host_unittest.cc23
-rw-r--r--content/browser/loader/resource_loader_unittest.cc9
-rw-r--r--extensions/browser/extension_protocols_unittest.cc131
-rw-r--r--mojo/services/network/url_loader_impl.cc14
-rw-r--r--net/ocsp/nss_ocsp.cc29
-rw-r--r--net/spdy/spdy_network_transaction_unittest.cc42
-rw-r--r--net/url_request/url_request.cc90
-rw-r--r--net/url_request/url_request.h25
-rw-r--r--net/url_request/url_request_context.cc3
-rw-r--r--net/url_request/url_request_context.h5
-rw-r--r--net/url_request/url_request_context_builder_unittest.cc29
-rw-r--r--net/url_request/url_request_ftp_job_unittest.cc175
-rw-r--r--net/url_request/url_request_http_job.cc5
-rw-r--r--net/url_request/url_request_simple_job_unittest.cc5
-rw-r--r--net/url_request/url_request_test_util.cc2
-rw-r--r--net/url_request/url_request_throttler_entry.cc6
-rw-r--r--net/url_request/url_request_throttler_entry.h5
-rw-r--r--net/url_request/url_request_throttler_entry_interface.h5
-rw-r--r--net/url_request/url_request_throttler_simulation_unittest.cc7
-rw-r--r--net/url_request/url_request_throttler_unittest.cc103
-rw-r--r--net/url_request/url_request_unittest.cc2444
-rw-r--r--net/websockets/websocket_stream.cc27
35 files changed, 1842 insertions, 1963 deletions
diff --git a/chrome/browser/chromeos/drive/drive_url_request_job_unittest.cc b/chrome/browser/chromeos/drive/drive_url_request_job_unittest.cc
index cc99b38..44a3e19 100644
--- a/chrome/browser/chromeos/drive/drive_url_request_job_unittest.cc
+++ b/chrome/browser/chromeos/drive/drive_url_request_job_unittest.cc
@@ -25,6 +25,8 @@
#include "net/base/test_completion_callback.h"
#include "net/http/http_byte_range.h"
#include "net/url_request/redirect_info.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 "url/gurl.h"
@@ -184,17 +186,18 @@ class DriveURLRequestJobTest : public testing::Test {
};
TEST_F(DriveURLRequestJobTest, NonGetMethod) {
- net::URLRequest request(GURL("drive:drive/root/File 1.txt"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.set_method("POST"); // Set non "GET" method.
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:drive/root/File 1.txt"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->set_method("POST"); // Set non "GET" method.
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_METHOD_NOT_SUPPORTED, request.status().error());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_METHOD_NOT_SUPPORTED, request->status().error());
}
TEST_F(DriveURLRequestJobTest, RegularFile) {
@@ -203,19 +206,20 @@ TEST_F(DriveURLRequestJobTest, RegularFile) {
// For the first time, the file should be fetched from the server.
{
- net::URLRequest request(kTestUrl,
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ kTestUrl,
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
// It looks weird, but the mime type for the "File 1.txt" is "audio/mpeg"
// on the server.
std::string mime_type;
- request.GetMimeType(&mime_type);
+ request->GetMimeType(&mime_type);
EXPECT_EQ("audio/mpeg", mime_type);
// Reading file must be done after |request| runs, otherwise
@@ -229,17 +233,18 @@ TEST_F(DriveURLRequestJobTest, RegularFile) {
// The caching emulation is done by FakeFileSystem.
{
test_delegate_.reset(new TestDelegate);
- net::URLRequest request(GURL("drive:drive/root/File 1.txt"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:drive/root/File 1.txt"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
std::string mime_type;
- request.GetMimeType(&mime_type);
+ request->GetMimeType(&mime_type);
EXPECT_EQ("audio/mpeg", mime_type);
std::string expected_data;
@@ -251,105 +256,111 @@ TEST_F(DriveURLRequestJobTest, RegularFile) {
TEST_F(DriveURLRequestJobTest, HostedDocument) {
// Open a gdoc file.
test_delegate_->set_quit_on_redirect(true);
- net::URLRequest request(
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
GURL("drive:drive/root/Document 1 excludeDir-test.gdoc"),
net::DEFAULT_PRIORITY,
test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
// Make sure that a hosted document triggers redirection.
- EXPECT_TRUE(request.is_redirecting());
+ EXPECT_TRUE(request->is_redirecting());
EXPECT_TRUE(test_delegate_->redirect_url().is_valid());
}
TEST_F(DriveURLRequestJobTest, RootDirectory) {
- net::URLRequest request(GURL("drive:drive/root"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:drive/root"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_FAILED, request.status().error());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_FAILED, request->status().error());
}
TEST_F(DriveURLRequestJobTest, Directory) {
- net::URLRequest request(GURL("drive:drive/root/Directory 1"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:drive/root/Directory 1"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_FAILED, request.status().error());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_FAILED, request->status().error());
}
TEST_F(DriveURLRequestJobTest, NonExistingFile) {
- net::URLRequest request(GURL("drive:drive/root/non-existing-file.txt"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:drive/root/non-existing-file.txt"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error());
}
TEST_F(DriveURLRequestJobTest, WrongFormat) {
- net::URLRequest request(GURL("drive:"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
- request.Start();
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_INVALID_URL, request.status().error());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_INVALID_URL, request->status().error());
}
TEST_F(DriveURLRequestJobTest, Cancel) {
- net::URLRequest request(GURL("drive:drive/root/File 1.txt"),
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ GURL("drive:drive/root/File 1.txt"),
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
// Start the request, and cancel it immediately after it.
- request.Start();
- request.Cancel();
+ request->Start();
+ request->Cancel();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::CANCELED, request.status().status());
+ EXPECT_EQ(net::URLRequestStatus::CANCELED, request->status().status());
}
TEST_F(DriveURLRequestJobTest, RangeHeader) {
const GURL kTestUrl("drive:drive/root/File 1.txt");
const base::FilePath kTestFilePath("drive/root/File 1.txt");
- net::URLRequest request(kTestUrl,
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ kTestUrl,
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
// Set range header.
- request.SetExtraRequestHeaderByName(
+ request->SetExtraRequestHeaderByName(
"Range", "bytes=3-5", false /* overwrite */);
- request.Start();
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
// Reading file must be done after |request| runs, otherwise
// it'll create a local cache file, and we cannot test correctly.
@@ -361,20 +372,21 @@ TEST_F(DriveURLRequestJobTest, RangeHeader) {
TEST_F(DriveURLRequestJobTest, WrongRangeHeader) {
const GURL kTestUrl("drive:drive/root/File 1.txt");
- net::URLRequest request(kTestUrl,
- net::DEFAULT_PRIORITY,
- test_delegate_.get(),
- url_request_context_.get());
+ scoped_ptr<net::URLRequest> request(url_request_context_->CreateRequest(
+ kTestUrl,
+ net::DEFAULT_PRIORITY,
+ test_delegate_.get(),
+ NULL));
// Set range header.
- request.SetExtraRequestHeaderByName(
+ request->SetExtraRequestHeaderByName(
"Range", "Wrong Range Header Value", false /* overwrite */);
- request.Start();
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE, request.status().error());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE, request->status().error());
}
} // namespace drive
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
index c3a9a1f..d6b85a8 100644
--- a/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
+++ b/chrome/browser/custom_handlers/protocol_handler_registry_unittest.cc
@@ -36,10 +36,11 @@ void AssertInterceptedIO(
net::URLRequestJobFactory* interceptor) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
net::URLRequestContext context;
- net::URLRequest request(url, net::DEFAULT_PRIORITY, NULL, &context);
+ scoped_ptr<net::URLRequest> request(context.CreateRequest(
+ url, net::DEFAULT_PRIORITY, NULL, NULL));
scoped_refptr<net::URLRequestJob> job =
interceptor->MaybeCreateJobWithProtocolHandler(
- url.scheme(), &request, context.network_delegate());
+ url.scheme(), request.get(), context.network_delegate());
ASSERT_TRUE(job.get() != NULL);
}
diff --git a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
index 661b880..fb1d05f 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
@@ -11,6 +11,7 @@
#include "base/files/file_path.h"
#include "base/json/json_reader.h"
#include "base/json/json_string_value_serializer.h"
+#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/path_service.h"
@@ -238,8 +239,8 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
GURL redirect_url("about:redirected");
GURL not_chosen_redirect_url("about:not_chosen");
- net::URLRequest request(
- GURL("about:blank"), net::DEFAULT_PRIORITY, &delegate_, context_.get());
+ scoped_ptr<net::URLRequest> request(context_->CreateRequest(
+ GURL("about:blank"), net::DEFAULT_PRIORITY, &delegate_, NULL));
{
// onBeforeRequest will be dispatched twice initially. The second response -
// the redirect - should win, since it has a later |install_time|. The
@@ -254,7 +255,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension1_id, kEventName, kEventName + "/1",
- request.identifier(), response));
+ request->identifier(), response));
// Extension2 response. Arrives second, and chosen because of install_time.
response = new ExtensionWebRequestEventRouter::EventResponse(
@@ -263,7 +264,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension2_id, kEventName, kEventName + "/2",
- request.identifier(), response));
+ request->identifier(), response));
// Extension2 response to the redirected URL. Arrives first, and chosen.
response = new ExtensionWebRequestEventRouter::EventResponse(
@@ -271,7 +272,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension2_id, kEventName, kEventName + "/2",
- request.identifier(), response));
+ request->identifier(), response));
// Extension1 response to the redirected URL. Arrives second, and ignored.
response = new ExtensionWebRequestEventRouter::EventResponse(
@@ -279,22 +280,22 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension1_id, kEventName, kEventName + "/1",
- request.identifier(), response));
+ request->identifier(), response));
- request.Start();
+ request->Start();
base::MessageLoop::current()->Run();
- EXPECT_TRUE(!request.is_pending());
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
- EXPECT_EQ(0, request.status().error());
- EXPECT_EQ(redirect_url, request.url());
- EXPECT_EQ(2U, request.url_chain().size());
+ EXPECT_TRUE(!request->is_pending());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
+ EXPECT_EQ(0, request->status().error());
+ EXPECT_EQ(redirect_url, request->url());
+ EXPECT_EQ(2U, request->url_chain().size());
EXPECT_EQ(0U, ipc_sender_.GetNumTasks());
}
// Now test the same thing but the extensions answer in reverse order.
- net::URLRequest request2(
- GURL("about:blank"), net::DEFAULT_PRIORITY, &delegate_, context_.get());
+ scoped_ptr<net::URLRequest> request2(context_->CreateRequest(
+ GURL("about:blank"), net::DEFAULT_PRIORITY, &delegate_, NULL));
{
ExtensionWebRequestEventRouter::EventResponse* response = NULL;
@@ -305,7 +306,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension2_id, kEventName, kEventName + "/2",
- request2.identifier(), response));
+ request2->identifier(), response));
// Extension1 response. Arrives second, but ignored due to install_time.
response = new ExtensionWebRequestEventRouter::EventResponse(
@@ -314,7 +315,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension1_id, kEventName, kEventName + "/1",
- request2.identifier(), response));
+ request2->identifier(), response));
// Extension2 response to the redirected URL. Arrives first, and chosen.
response = new ExtensionWebRequestEventRouter::EventResponse(
@@ -322,7 +323,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension2_id, kEventName, kEventName + "/2",
- request2.identifier(), response));
+ request2->identifier(), response));
// Extension1 response to the redirected URL. Arrives second, and ignored.
response = new ExtensionWebRequestEventRouter::EventResponse(
@@ -330,16 +331,16 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceRedirect) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension1_id, kEventName, kEventName + "/1",
- request2.identifier(), response));
+ request2->identifier(), response));
- request2.Start();
+ request2->Start();
base::MessageLoop::current()->Run();
- EXPECT_TRUE(!request2.is_pending());
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request2.status().status());
- EXPECT_EQ(0, request2.status().error());
- EXPECT_EQ(redirect_url, request2.url());
- EXPECT_EQ(2U, request2.url_chain().size());
+ EXPECT_TRUE(!request2->is_pending());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request2->status().status());
+ EXPECT_EQ(0, request2->status().error());
+ EXPECT_EQ(redirect_url, request2->url());
+ EXPECT_EQ(2U, request2->url_chain().size());
EXPECT_EQ(0U, ipc_sender_.GetNumTasks());
}
@@ -367,8 +368,8 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceCancel) {
ipc_sender_factory.GetWeakPtr());
GURL request_url("about:blank");
- net::URLRequest request(
- request_url, net::DEFAULT_PRIORITY, &delegate_, context_.get());
+ scoped_ptr<net::URLRequest> request(context_->CreateRequest(
+ request_url, net::DEFAULT_PRIORITY, &delegate_, NULL));
// onBeforeRequest will be dispatched twice. The second response -
// the redirect - would win, since it has a later |install_time|, but
@@ -384,7 +385,7 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceCancel) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension1_id, kEventName, kEventName + "/1",
- request.identifier(), response));
+ request->identifier(), response));
// Extension2 response. Arrives second, but has higher precedence
// due to its later install_time.
@@ -394,17 +395,17 @@ TEST_F(ExtensionWebRequestTest, BlockingEventPrecedenceCancel) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension2_id, kEventName, kEventName + "/2",
- request.identifier(), response));
+ request->identifier(), response));
- request.Start();
+ request->Start();
base::MessageLoop::current()->Run();
- EXPECT_TRUE(!request.is_pending());
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(net::ERR_BLOCKED_BY_CLIENT, request.status().error());
- EXPECT_EQ(request_url, request.url());
- EXPECT_EQ(1U, request.url_chain().size());
+ EXPECT_TRUE(!request->is_pending());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(net::ERR_BLOCKED_BY_CLIENT, request->status().error());
+ EXPECT_EQ(request_url, request->url());
+ EXPECT_EQ(1U, request->url_chain().size());
EXPECT_EQ(0U, ipc_sender_.GetNumTasks());
ExtensionWebRequestEventRouter::GetInstance()->RemoveEventListener(
@@ -435,8 +436,8 @@ TEST_F(ExtensionWebRequestTest, SimulateChancelWhileBlocked) {
filter, 0, -1, -1, ipc_sender_factory.GetWeakPtr());
GURL request_url("about:blank");
- net::URLRequest request(
- request_url, net::DEFAULT_PRIORITY, &delegate_, context_.get());
+ scoped_ptr<net::URLRequest> request(context_->CreateRequest(
+ request_url, net::DEFAULT_PRIORITY, &delegate_, NULL));
ExtensionWebRequestEventRouter::EventResponse* response = NULL;
@@ -449,7 +450,7 @@ TEST_F(ExtensionWebRequestTest, SimulateChancelWhileBlocked) {
ipc_sender_.PushTask(
base::Bind(&EventHandledOnIOThread,
&profile_, extension_id, kEventName, kEventName + "/1",
- request.identifier(), response));
+ request->identifier(), response));
// Extension response for OnErrorOccurred: Terminate the message loop.
ipc_sender_.PushTask(
@@ -457,16 +458,16 @@ TEST_F(ExtensionWebRequestTest, SimulateChancelWhileBlocked) {
base::Unretained(base::MessageLoop::current()),
FROM_HERE, base::MessageLoop::QuitClosure()));
- request.Start();
- // request.Start() will have submitted OnBeforeRequest by the time we cancel.
- request.Cancel();
+ request->Start();
+ // request->Start() will have submitted OnBeforeRequest by the time we cancel.
+ request->Cancel();
base::MessageLoop::current()->Run();
- EXPECT_TRUE(!request.is_pending());
- EXPECT_EQ(net::URLRequestStatus::CANCELED, request.status().status());
- EXPECT_EQ(net::ERR_ABORTED, request.status().error());
- EXPECT_EQ(request_url, request.url());
- EXPECT_EQ(1U, request.url_chain().size());
+ EXPECT_TRUE(!request->is_pending());
+ EXPECT_EQ(net::URLRequestStatus::CANCELED, request->status().status());
+ EXPECT_EQ(net::ERR_ABORTED, request->status().error());
+ EXPECT_EQ(request_url, request->url());
+ EXPECT_EQ(1U, request->url_chain().size());
EXPECT_EQ(0U, ipc_sender_.GetNumTasks());
ExtensionWebRequestEventRouter::GetInstance()->RemoveEventListener(
@@ -499,13 +500,14 @@ void ExtensionWebRequestTest::FireURLRequestWithData(
const std::vector<char>& bytes_2) {
// The request URL can be arbitrary but must have an HTTP or HTTPS scheme.
GURL request_url("http://www.example.com");
- net::URLRequest request(
- request_url, net::DEFAULT_PRIORITY, &delegate_, context_.get());
- request.set_method(method);
- if (content_type != NULL)
- request.SetExtraRequestHeaderByName(net::HttpRequestHeaders::kContentType,
- content_type,
- true /* overwrite */);
+ scoped_ptr<net::URLRequest> request(context_->CreateRequest(
+ request_url, net::DEFAULT_PRIORITY, &delegate_, NULL));
+ request->set_method(method);
+ if (content_type != NULL) {
+ request->SetExtraRequestHeaderByName(net::HttpRequestHeaders::kContentType,
+ content_type,
+ true /* overwrite */);
+ }
ScopedVector<net::UploadElementReader> element_readers;
element_readers.push_back(new net::UploadBytesElementReader(
&(bytes_1[0]), bytes_1.size()));
@@ -517,10 +519,10 @@ void ExtensionWebRequestTest::FireURLRequestWithData(
base::Time()));
element_readers.push_back(
new net::UploadBytesElementReader(&(bytes_2[0]), bytes_2.size()));
- request.set_upload(make_scoped_ptr(
+ request->set_upload(make_scoped_ptr(
new net::UploadDataStream(element_readers.Pass(), 0)));
ipc_sender_.PushTask(base::Bind(&base::DoNothing));
- request.Start();
+ request->Start();
}
TEST_F(ExtensionWebRequestTest, AccessRequestBodyData) {
@@ -713,11 +715,11 @@ TEST_F(ExtensionWebRequestTest, NoAccessRequestBodyData) {
const GURL request_url("http://www.example.com");
for (size_t i = 0; i < arraysize(kMethods); ++i) {
- net::URLRequest request(
- request_url, net::DEFAULT_PRIORITY, &delegate_, context_.get());
- request.set_method(kMethods[i]);
+ scoped_ptr<net::URLRequest> request(context_->CreateRequest(
+ request_url, net::DEFAULT_PRIORITY, &delegate_, NULL));
+ request->set_method(kMethods[i]);
ipc_sender_.PushTask(base::Bind(&base::DoNothing));
- request.Start();
+ request->Start();
}
// We inspect the result in the message list of |ipc_sender_| later.
@@ -833,8 +835,8 @@ TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) {
ipc_sender_factory.GetWeakPtr());
GURL request_url("http://doesnotexist/does_not_exist.html");
- net::URLRequest request(
- request_url, net::DEFAULT_PRIORITY, &delegate_, context_.get());
+ scoped_ptr<net::URLRequest> request(context_->CreateRequest(
+ request_url, net::DEFAULT_PRIORITY, &delegate_, NULL));
// Initialize headers available before extensions are notified of the
// onBeforeSendHeaders event.
@@ -842,7 +844,7 @@ TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) {
net::HttpRequestHeaders before_headers;
for (int i = 0; i < test.before_size; ++i)
before_headers.SetHeader(test.before[i].name, test.before[i].value);
- request.SetExtraRequestHeaders(before_headers);
+ request->SetExtraRequestHeaders(before_headers);
// Gather the modifications to the headers for the respective extensions.
// We assume here that all modifications of one extension are listed
@@ -855,7 +857,7 @@ TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) {
mod.extension_id == 1 ? extension1_id : extension2_id,
base::Time::FromDoubleT(mod.extension_id));
response->request_headers.reset(new net::HttpRequestHeaders());
- response->request_headers->MergeFrom(request.extra_request_headers());
+ response->request_headers->MergeFrom(request->extra_request_headers());
}
switch (mod.type) {
@@ -875,7 +877,7 @@ TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) {
base::Bind(&EventHandledOnIOThread,
&profile_, mod.extension_id == 1 ? extension1_id : extension2_id,
kEventName, kEventName + (mod.extension_id == 1 ? "/1" : "/2"),
- request.identifier(), response));
+ request->identifier(), response));
response = NULL;
}
}
@@ -884,19 +886,19 @@ TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) {
ipc_sender_.PushTask(base::Bind(&base::DoNothing));
// Note that we mess up the headers slightly:
- // request.Start() will first add additional headers (e.g. the User-Agent)
+ // request->Start() will first add additional headers (e.g. the User-Agent)
// and then send an event to the extension. When we have prepared our
// answers to the onBeforeSendHeaders events above, these headers did not
// exists and are therefore not listed in the responses. This makes
// them seem deleted.
- request.Start();
+ request->Start();
base::MessageLoop::current()->Run();
- EXPECT_TRUE(!request.is_pending());
+ EXPECT_TRUE(!request->is_pending());
// This cannot succeed as we send the request to a server that does not exist.
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
- EXPECT_EQ(request_url, request.url());
- EXPECT_EQ(1U, request.url_chain().size());
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
+ EXPECT_EQ(request_url, request->url());
+ EXPECT_EQ(1U, request->url_chain().size());
EXPECT_EQ(0U, ipc_sender_.GetNumTasks());
// Calculate the expected headers.
diff --git a/chrome/browser/net/chrome_fraudulent_certificate_reporter_unittest.cc b/chrome/browser/net/chrome_fraudulent_certificate_reporter_unittest.cc
index 69a46e7..f4134d1 100644
--- a/chrome/browser/net/chrome_fraudulent_certificate_reporter_unittest.cc
+++ b/chrome/browser/net/chrome_fraudulent_certificate_reporter_unittest.cc
@@ -21,6 +21,7 @@
#include "net/test/cert_test_util.h"
#include "net/url_request/fraudulent_certificate_reporter.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"
@@ -115,23 +116,6 @@ class NotSendingTestReporter : public TestReporter {
}
};
-// For the first version of the feature, sending reports is "fire and forget".
-// Therefore, we test only that the Reporter tried to send a request at all.
-// In the future, when we have more sophisticated (i.e., any) error handling
-// and re-tries, we will need more sopisticated tests as well.
-//
-// This class doesn't do anything now, but in near future versions it will.
-class MockURLRequest : public net::URLRequest {
- public:
- explicit MockURLRequest(net::URLRequestContext* context)
- : net::URLRequest(GURL(std::string()),
- net::DEFAULT_PRIORITY,
- NULL,
- context) {}
-
- private:
-};
-
// A ChromeFraudulentCertificateReporter that uses a MockURLRequest, but is
// otherwise normal: reports are constructed and sent in the usual way.
class MockReporter : public ChromeFraudulentCertificateReporter {
@@ -141,7 +125,10 @@ class MockReporter : public ChromeFraudulentCertificateReporter {
virtual scoped_ptr<net::URLRequest> CreateURLRequest(
net::URLRequestContext* context) OVERRIDE {
- return scoped_ptr<net::URLRequest>(new MockURLRequest(context));
+ return context->CreateRequest(GURL(std::string()),
+ net::DEFAULT_PRIORITY,
+ NULL,
+ NULL);
}
virtual void SendReport(
diff --git a/chrome/browser/policy/url_blacklist_manager_unittest.cc b/chrome/browser/policy/url_blacklist_manager_unittest.cc
index bc0fd5c..5bfed61 100644
--- a/chrome/browser/policy/url_blacklist_manager_unittest.cc
+++ b/chrome/browser/policy/url_blacklist_manager_unittest.cc
@@ -20,6 +20,7 @@
#include "net/base/net_errors.h"
#include "net/base/request_priority.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 "url/gurl.h"
@@ -643,16 +644,16 @@ TEST_F(URLBlacklistManagerTest, DontBlockResources) {
EXPECT_TRUE(blacklist_manager_->IsURLBlocked(GURL("http://google.com")));
net::TestURLRequestContext context;
- net::URLRequest request(
- GURL("http://google.com"), net::DEFAULT_PRIORITY, NULL, &context);
+ scoped_ptr<net::URLRequest> request(context.CreateRequest(
+ GURL("http://google.com"), net::DEFAULT_PRIORITY, NULL, NULL));
int reason = net::ERR_UNEXPECTED;
// Background requests aren't filtered.
- EXPECT_FALSE(blacklist_manager_->IsRequestBlocked(request, &reason));
+ EXPECT_FALSE(blacklist_manager_->IsRequestBlocked(*request.get(), &reason));
// Main frames are filtered.
- request.SetLoadFlags(net::LOAD_MAIN_FRAME);
- EXPECT_TRUE(blacklist_manager_->IsRequestBlocked(request, &reason));
+ request->SetLoadFlags(net::LOAD_MAIN_FRAME);
+ EXPECT_TRUE(blacklist_manager_->IsRequestBlocked(*request.get(), &reason));
EXPECT_EQ(net::ERR_BLOCKED_BY_ADMINISTRATOR, reason);
// On most platforms, sync gets a free pass due to signin flows.
@@ -665,10 +666,11 @@ TEST_F(URLBlacklistManagerTest, DontBlockResources) {
GURL sync_url(GaiaUrls::GetInstance()->service_login_url().Resolve(
"?service=chromiumsync"));
- net::URLRequest sync_request(sync_url, net::DEFAULT_PRIORITY, NULL, &context);
- sync_request.SetLoadFlags(net::LOAD_MAIN_FRAME);
+ scoped_ptr<net::URLRequest> sync_request(context.CreateRequest(
+ sync_url, net::DEFAULT_PRIORITY, NULL, NULL));
+ sync_request->SetLoadFlags(net::LOAD_MAIN_FRAME);
EXPECT_EQ(block_signin_urls,
- blacklist_manager_->IsRequestBlocked(sync_request, &reason));
+ blacklist_manager_->IsRequestBlocked(*sync_request.get(), &reason));
}
TEST_F(URLBlacklistManagerTest, DefaultBlacklistExceptions) {
diff --git a/chrome/browser/prerender/prerender_tracker_unittest.cc b/chrome/browser/prerender/prerender_tracker_unittest.cc
index 54b77a9..2d20c45 100644
--- a/chrome/browser/prerender/prerender_tracker_unittest.cc
+++ b/chrome/browser/prerender/prerender_tracker_unittest.cc
@@ -224,12 +224,12 @@ TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectResume) {
// Fake a request.
net::TestURLRequestContext url_request_context;
DeferredRedirectDelegate delegate;
- net::URLRequest request(
+ scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest(
content::URLRequestMockHTTPJob::GetMockUrl(base::FilePath(kRedirectPath)),
net::DEFAULT_PRIORITY,
&delegate,
- &url_request_context);
- content::ResourceRequestInfo::AllocateForTesting(&request,
+ NULL));
+ content::ResourceRequestInfo::AllocateForTesting(request.get(),
content::RESOURCE_TYPE_IMAGE,
NULL,
kDefaultChildId,
@@ -238,11 +238,11 @@ TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectResume) {
true);
// Install a prerender throttle.
- PrerenderResourceThrottle throttle(&request);
+ PrerenderResourceThrottle throttle(request.get());
delegate.SetThrottle(&throttle);
// Start the request and wait for a redirect.
- request.Start();
+ request->Start();
delegate.Run();
EXPECT_TRUE(delegate.was_deferred());
// This calls WillRedirectRequestOnUI().
@@ -267,13 +267,13 @@ TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectMainFrame) {
// Fake a request.
net::TestURLRequestContext url_request_context;
DeferredRedirectDelegate delegate;
- net::URLRequest request(
+ scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest(
content::URLRequestMockHTTPJob::GetMockUrl(base::FilePath(kRedirectPath)),
net::DEFAULT_PRIORITY,
&delegate,
- &url_request_context);
+ NULL));
content::ResourceRequestInfo::AllocateForTesting(
- &request,
+ request.get(),
content::RESOURCE_TYPE_MAIN_FRAME,
NULL,
kDefaultChildId,
@@ -282,12 +282,12 @@ TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectMainFrame) {
true);
// Install a prerender throttle.
- PrerenderResourceThrottle throttle(&request);
+ PrerenderResourceThrottle throttle(request.get());
delegate.SetThrottle(&throttle);
// Start the request and wait for a redirect. This time, it should
// not be deferred.
- request.Start();
+ request->Start();
delegate.Run();
// This calls WillRedirectRequestOnUI().
RunEvents();
@@ -309,12 +309,12 @@ TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectSyncXHR) {
// Fake a request.
net::TestURLRequestContext url_request_context;
DeferredRedirectDelegate delegate;
- net::URLRequest request(
+ scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest(
content::URLRequestMockHTTPJob::GetMockUrl(base::FilePath(kRedirectPath)),
net::DEFAULT_PRIORITY,
&delegate,
- &url_request_context);
- content::ResourceRequestInfo::AllocateForTesting(&request,
+ NULL));
+ content::ResourceRequestInfo::AllocateForTesting(request.get(),
content::RESOURCE_TYPE_XHR,
NULL,
kDefaultChildId,
@@ -323,11 +323,11 @@ TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectSyncXHR) {
false);
// Install a prerender throttle.
- PrerenderResourceThrottle throttle(&request);
+ PrerenderResourceThrottle throttle(request.get());
delegate.SetThrottle(&throttle);
// Start the request and wait for a redirect.
- request.Start();
+ request->Start();
delegate.Run();
// This calls WillRedirectRequestOnUI().
RunEvents();
diff --git a/chrome/browser/search/iframe_source_unittest.cc b/chrome/browser/search/iframe_source_unittest.cc
index 8baf16f..801cb87 100644
--- a/chrome/browser/search/iframe_source_unittest.cc
+++ b/chrome/browser/search/iframe_source_unittest.cc
@@ -93,19 +93,20 @@ class IframeSourceTest : public testing::Test {
return "";
}
- net::URLRequest* MockRequest(
+ scoped_ptr<net::URLRequest> MockRequest(
const std::string& url,
bool allocate_info,
int render_process_id,
int render_frame_id) {
- net::URLRequest* request =
- new net::URLRequest(GURL(url),
- net::DEFAULT_PRIORITY,
- NULL,
- resource_context_.GetRequestContext());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ GURL(url),
+ net::DEFAULT_PRIORITY,
+ NULL,
+ NULL));
if (allocate_info) {
content::ResourceRequestInfo::AllocateForTesting(
- request,
+ request.get(),
content::RESOURCE_TYPE_SUB_FRAME,
&resource_context_,
render_process_id,
@@ -113,7 +114,7 @@ class IframeSourceTest : public testing::Test {
MSG_ROUTING_NONE,
false);
}
- return request;
+ return request.Pass();
}
void SendResource(int resource_id) {
@@ -160,23 +161,23 @@ class IframeSourceTest : public testing::Test {
TEST_F(IframeSourceTest, ShouldServiceRequest) {
scoped_ptr<net::URLRequest> request;
- request.reset(MockRequest("http://test/loader.js", true,
- kNonInstantRendererPID, 0));
+ request = MockRequest("http://test/loader.js", true,
+ kNonInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://bogus/valid.js", true,
- kInstantRendererPID, 0));
+ request = MockRequest("chrome-search://bogus/valid.js", true,
+ kInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/bogus.js", true,
- kInstantRendererPID, 0));
+ request = MockRequest("chrome-search://test/bogus.js", true,
+ kInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/valid.js", true,
- kInstantRendererPID, 0));
+ request = MockRequest("chrome-search://test/valid.js", true,
+ kInstantRendererPID, 0);
EXPECT_TRUE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/valid.js", true,
- kNonInstantRendererPID, 0));
+ request = MockRequest("chrome-search://test/valid.js", true,
+ kNonInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/valid.js", true,
- kInvalidRendererPID, 0));
+ request = MockRequest("chrome-search://test/valid.js", true,
+ kInvalidRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
}
diff --git a/cloud_print/service/service_state.cc b/cloud_print/service/service_state.cc
index 0894e20..811c2c1 100644
--- a/cloud_print/service/service_state.cc
+++ b/cloud_print/service/service_state.cc
@@ -175,21 +175,21 @@ std::string ServiceState::LoginToGoogle(const std::string& service,
post_body += "&source=" + net::EscapeUrlEncodedData("CP-Service", true);
post_body += "&service=" + net::EscapeUrlEncodedData(service, true);
- net::URLRequest request(
- url, net::DEFAULT_PRIORITY, &fetcher_delegate, context.get());
- int load_flags = request.load_flags();
+ scoped_ptr<net::URLRequest> request(context->CreateRequest(
+ url, net::DEFAULT_PRIORITY, &fetcher_delegate, NULL));
+ int load_flags = request->load_flags();
load_flags = load_flags | net::LOAD_DO_NOT_SEND_COOKIES;
load_flags = load_flags | net::LOAD_DO_NOT_SAVE_COOKIES;
- request.SetLoadFlags(load_flags);
+ request->SetLoadFlags(load_flags);
scoped_ptr<net::UploadElementReader> reader(
net::UploadOwnedBytesElementReader::CreateWithString(post_body));
- request.set_upload(make_scoped_ptr(
+ request->set_upload(make_scoped_ptr(
net::UploadDataStream::CreateWithReader(reader.Pass(), 0)));
- request.SetExtraRequestHeaderByName(
+ request->SetExtraRequestHeaderByName(
"Content-Type", "application/x-www-form-urlencoded", true);
- request.set_method("POST");
- request.Start();
+ request->set_method("POST");
+ request->Start();
base::MessageLoop::current()->PostDelayedTask(
FROM_HERE,
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc
index 60e663b..999e14f 100644
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc
@@ -197,26 +197,27 @@ class DataReductionProxyProtocolTest : public testing::Test {
const std::string& value,
bool expected_retry) {
TestDelegate d;
- URLRequest r(GURL("http://www.google.com/"),
- net::DEFAULT_PRIORITY,
- &d,
- context_.get());
- r.set_method(method);
- r.SetLoadFlags(net::LOAD_NORMAL);
-
- r.Start();
+ scoped_ptr<URLRequest> r(context_->CreateRequest(
+ GURL("http://www.google.com/"),
+ net::DEFAULT_PRIORITY,
+ &d,
+ NULL));
+ r->set_method(method);
+ r->SetLoadFlags(net::LOAD_NORMAL);
+
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(net::OK, r->status().error());
if (expected_retry)
- EXPECT_EQ(2U, r.url_chain().size());
+ EXPECT_EQ(2U, r->url_chain().size());
else
- EXPECT_EQ(1U, r.url_chain().size());
+ EXPECT_EQ(1U, r->url_chain().size());
if (!header.empty()) {
// We also have a server header here that isn't set by the proxy.
- EXPECT_TRUE(r.response_headers()->HasHeaderValue(header, value));
+ EXPECT_TRUE(r->response_headers()->HasHeaderValue(header, value));
}
EXPECT_EQ(content, d.data_received());
@@ -247,8 +248,7 @@ class DataReductionProxyProtocolTest : public testing::Test {
if (duration_seconds == 0) {
expected_min_duration = base::TimeDelta::FromMinutes(1);
expected_max_duration = base::TimeDelta::FromMinutes(5);
- }
- else {
+ } else {
expected_min_duration = base::TimeDelta::FromSeconds(duration_seconds);
expected_max_duration = base::TimeDelta::FromSeconds(duration_seconds);
}
@@ -753,18 +753,19 @@ TEST_F(DataReductionProxyProtocolTest,
mock_socket_factory_.AddSocketDataProvider(&data1);
TestDelegate d;
- URLRequest r(GURL("http://www.google.com/"),
- net::DEFAULT_PRIORITY,
- &d,
- context_.get());
- r.set_method("GET");
- r.SetLoadFlags(net::LOAD_NORMAL);
-
- r.Start();
- base::RunLoop().Run();
-
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(net::OK, r.status().error());
+ scoped_ptr<URLRequest> r(context_->CreateRequest(
+ GURL("http://www.google.com/"),
+ net::DEFAULT_PRIORITY,
+ &d,
+ NULL));
+ r->set_method("GET");
+ r->SetLoadFlags(net::LOAD_NORMAL);
+
+ r->Start();
+ base::RunLoop().Run();
+
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(net::OK, r->status().error());
EXPECT_EQ("Bypass message", d.data_received());
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats_unittest.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats_unittest.cc
index a3f02d3..e522a95 100644
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats_unittest.cc
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_usage_stats_unittest.cc
@@ -48,9 +48,10 @@ class DataReductionProxyUsageStatsTest : public testing::Test {
DataReductionProxyUsageStatsTest()
: loop_proxy_(MessageLoopProxy::current().get()),
context_(true),
- mock_url_request_(GURL(), net::IDLE, &delegate_, &context_),
unavailable_(false) {
context_.Init();
+ mock_url_request_ = context_.CreateRequest(GURL(), net::IDLE, &delegate_,
+ NULL);
}
void NotifyUnavailable(bool unavailable) {
@@ -65,7 +66,7 @@ class DataReductionProxyUsageStatsTest : public testing::Test {
TestURLRequestContext context_;
TestDelegate delegate_;
DataReductionProxyParamsMock mock_params_;
- URLRequest mock_url_request_;
+ scoped_ptr<URLRequest> mock_url_request_;
bool unavailable_;
};
@@ -95,10 +96,11 @@ TEST_F(DataReductionProxyUsageStatsTest, IsDataReductionProxyUnreachable) {
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
TestCase test_case = test_cases[i];
- EXPECT_CALL(mock_params_, IsDataReductionProxyEligible(&mock_url_request_))
- .WillRepeatedly(Return(test_case.is_proxy_eligible));
EXPECT_CALL(mock_params_,
- WasDataReductionProxyUsed(&mock_url_request_, NULL))
+ IsDataReductionProxyEligible(mock_url_request_.get()))
+ .WillRepeatedly(Return(test_case.is_proxy_eligible));
+ EXPECT_CALL(mock_params_,
+ WasDataReductionProxyUsed(mock_url_request_.get(), NULL))
.WillRepeatedly(Return(test_case.was_proxy_used));
scoped_ptr<DataReductionProxyUsageStats> usage_stats(
@@ -108,7 +110,7 @@ TEST_F(DataReductionProxyUsageStatsTest, IsDataReductionProxyUnreachable) {
base::Bind(&DataReductionProxyUsageStatsTest::NotifyUnavailable,
base::Unretained(this)));
- usage_stats->OnUrlRequestCompleted(&mock_url_request_, false);
+ usage_stats->OnUrlRequestCompleted(mock_url_request_.get(), false);
MessageLoop::current()->RunUntilIdle();
EXPECT_EQ(test_case.is_unreachable, unavailable_);
diff --git a/components/navigation_interception/intercept_navigation_resource_throttle_unittest.cc b/components/navigation_interception/intercept_navigation_resource_throttle_unittest.cc
index 1959a86..9715630 100644
--- a/components/navigation_interception/intercept_navigation_resource_throttle_unittest.cc
+++ b/components/navigation_interception/intercept_navigation_resource_throttle_unittest.cc
@@ -121,15 +121,16 @@ class TestIOThreadState {
RedirectMode redirect_mode,
MockInterceptCallbackReceiver* callback_receiver)
: resource_context_(&test_url_request_context_),
- request_(url,
- net::DEFAULT_PRIORITY,
- NULL,
- resource_context_.GetRequestContext()) {
+ request_(resource_context_.GetRequestContext()->CreateRequest(
+ url,
+ net::DEFAULT_PRIORITY,
+ NULL /* delegate */,
+ NULL /* cookie_store */)) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
if (render_process_id != MSG_ROUTING_NONE &&
render_frame_id != MSG_ROUTING_NONE) {
content::ResourceRequestInfo::AllocateForTesting(
- &request_,
+ request_.get(),
content::RESOURCE_TYPE_MAIN_FRAME,
&resource_context_,
render_process_id,
@@ -138,15 +139,15 @@ class TestIOThreadState {
false);
}
throttle_.reset(new InterceptNavigationResourceThrottle(
- &request_,
+ request_.get(),
base::Bind(&MockInterceptCallbackReceiver::ShouldIgnoreNavigation,
base::Unretained(callback_receiver))));
throttle_->set_controller_for_testing(&throttle_controller_);
- request_.set_method(request_method);
+ request_->set_method(request_method);
if (redirect_mode == REDIRECT_MODE_302) {
net::HttpResponseInfo& response_info =
- const_cast<net::HttpResponseInfo&>(request_.response_info());
+ const_cast<net::HttpResponseInfo&>(request_->response_info());
response_info.headers = new net::HttpResponseHeaders(
"Status: 302 Found\0\0");
}
@@ -175,7 +176,7 @@ class TestIOThreadState {
private:
net::TestURLRequestContext test_url_request_context_;
content::MockResourceContext resource_context_;
- net::URLRequest request_;
+ scoped_ptr<net::URLRequest> request_;
scoped_ptr<InterceptNavigationResourceThrottle> throttle_;
MockResourceController throttle_controller_;
};
diff --git a/content/browser/appcache/appcache_request_handler_unittest.cc b/content/browser/appcache/appcache_request_handler_unittest.cc
index 6376a0f..2491c1d 100644
--- a/content/browser/appcache/appcache_request_handler_unittest.cc
+++ b/content/browser/appcache/appcache_request_handler_unittest.cc
@@ -97,7 +97,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
has_response_info_(true),
response_info_(info) {}
- protected:
+ protected:
virtual ~MockURLRequestJob() {}
virtual void Start() OVERRIDE {
NotifyHeadersComplete();
@@ -112,7 +112,7 @@ class AppCacheRequestHandlerTest : public testing::Test {
*info = response_info_;
}
- private:
+ private:
int response_code_;
bool has_response_info_;
net::HttpResponseInfo response_info_;
@@ -164,15 +164,6 @@ class AppCacheRequestHandlerTest : public testing::Test {
mutable net::URLRequestJob* job_;
};
- class MockURLRequest : public net::URLRequest {
- public:
- MockURLRequest(const GURL& url, net::URLRequestContext* context)
- : net::URLRequest(url, net::DEFAULT_PRIORITY, NULL, context) {}
-
-
- MockURLRequestDelegate delegate_;
- };
-
static void SetUpTestCase() {
io_thread_.reset(new base::Thread("AppCacheRequestHandlerTest Thread"));
base::Thread::Options options(base::MessageLoop::TYPE_IO, 0);
@@ -263,7 +254,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
base::Unretained(this)));
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_MAIN_FRAME));
EXPECT_TRUE(handler_.get());
@@ -310,7 +302,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
base::Unretained(this)));
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_MAIN_FRAME));
EXPECT_TRUE(handler_.get());
@@ -358,7 +351,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
base::Unretained(this)));
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_MAIN_FRAME));
EXPECT_TRUE(handler_.get());
@@ -395,7 +389,6 @@ class AppCacheRequestHandlerTest : public testing::Test {
new MockURLRequestJob(
request_.get(),
request_->context()->network_delegate(), info));
- request_->set_delegate(&request_->delegate_);
request_->Start();
}
@@ -439,8 +432,9 @@ class AppCacheRequestHandlerTest : public testing::Test {
&AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride,
base::Unretained(this)));
- request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"),
- &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/fallback-override"), net::DEFAULT_PRIORITY,
+ &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_MAIN_FRAME));
EXPECT_TRUE(handler_.get());
@@ -492,7 +486,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
// SubResource_Miss_WithNoCacheSelected ----------------------------------
void SubResource_Miss_WithNoCacheSelected() {
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
@@ -510,7 +505,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
// in a network or fallback namespace, should result in a failed request.
host_->AssociateCompleteCache(MakeNewCache());
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -541,7 +537,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
host_->pending_selected_cache_id_ = cache->cache_id();
host_->set_preferred_manifest_url(cache->owning_group()->manifest_url());
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -575,7 +572,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
mock_storage()->SimulateFindSubResource(
AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -607,7 +605,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
mock_storage()->SimulateFindSubResource(
AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -640,7 +639,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
mock_storage()->SimulateFindSubResource(
AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -674,7 +674,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
mock_storage()->SimulateFindSubResource(
AppCacheEntry(), AppCacheEntry(), true);
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -703,7 +704,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
mock_storage()->SimulateFindSubResource(
AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -729,7 +731,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
// Precondition, the host is waiting on cache selection.
host_->pending_selected_cache_id_ = 1;
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get());
@@ -761,7 +764,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
// Precondition, the host is waiting on cache selection.
host_->pending_selected_cache_id_ = 1;
- request_.reset(new MockURLRequest(GURL("ftp://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("ftp://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_SUB_RESOURCE));
EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
@@ -781,7 +785,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
// CanceledRequest -----------------------------
void CanceledRequest() {
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_MAIN_FRAME));
EXPECT_TRUE(handler_.get());
@@ -817,7 +822,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType(
RESOURCE_TYPE_WORKER));
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
const int kParentHostId = host_->host_id();
const int kWorkerHostId = 2;
@@ -854,7 +860,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked,
base::Unretained(this)));
- request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
+ request_ = empty_context_.CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
handler_.reset(host_->CreateRequestHandler(request_.get(),
RESOURCE_TYPE_MAIN_FRAME));
EXPECT_TRUE(handler_.get());
@@ -916,7 +923,8 @@ class AppCacheRequestHandlerTest : public testing::Test {
AppCacheHost* host_;
net::URLRequestContext empty_context_;
scoped_ptr<MockURLRequestJobFactory> job_factory_;
- scoped_ptr<MockURLRequest> request_;
+ MockURLRequestDelegate delegate_;
+ scoped_ptr<net::URLRequest> request_;
scoped_ptr<AppCacheRequestHandler> handler_;
scoped_refptr<AppCacheURLRequestJob> job_;
diff --git a/content/browser/appcache/appcache_url_request_job_unittest.cc b/content/browser/appcache/appcache_url_request_job_unittest.cc
index 7c70eed..31518fb 100644
--- a/content/browser/appcache/appcache_url_request_job_unittest.cc
+++ b/content/browser/appcache/appcache_url_request_job_unittest.cc
@@ -9,6 +9,8 @@
#include "base/bind_helpers.h"
#include "base/callback.h"
#include "base/compiler_specific.h"
+#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
#include "base/pickle.h"
#include "base/synchronization/waitable_event.h"
#include "base/threading/thread.h"
@@ -24,6 +26,7 @@
#include "net/url_request/url_request_error_job.h"
#include "net/url_request/url_request_job_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
using net::IOBuffer;
using net::WrappedIOBuffer;
@@ -83,8 +86,8 @@ class MockURLRequestJobFactory : public net::URLRequestJobFactory {
return false;
}
- private:
- mutable net::URLRequestJob* job_;
+ private:
+ mutable net::URLRequestJob* job_;
};
class AppCacheURLRequestJobTest : public testing::Test {
@@ -416,14 +419,13 @@ class AppCacheURLRequestJobTest : public testing::Test {
// Basic -------------------------------------------------------------------
void Basic() {
AppCacheStorage* storage = service_->storage();
- net::URLRequest request(GURL("http://blah/"), net::DEFAULT_PRIORITY, NULL,
- empty_context_.get());
+ scoped_ptr<net::URLRequest> request(empty_context_->CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, NULL, NULL));
scoped_refptr<AppCacheURLRequestJob> job;
// Create an instance and see that it looks as expected.
- job = new AppCacheURLRequestJob(
- &request, NULL, storage, NULL, false);
+ job = new AppCacheURLRequestJob(request.get(), NULL, storage, NULL, false);
EXPECT_TRUE(job->is_waiting());
EXPECT_FALSE(job->is_delivering_appcache_response());
EXPECT_FALSE(job->is_delivering_network_response());
@@ -440,24 +442,24 @@ class AppCacheURLRequestJobTest : public testing::Test {
// DeliveryOrders -----------------------------------------------------
void DeliveryOrders() {
AppCacheStorage* storage = service_->storage();
- net::URLRequest request(GURL("http://blah/"), net::DEFAULT_PRIORITY, NULL,
- empty_context_.get());
+ scoped_ptr<net::URLRequest> request(empty_context_->CreateRequest(
+ GURL("http://blah/"), net::DEFAULT_PRIORITY, NULL, NULL));
scoped_refptr<AppCacheURLRequestJob> job;
// Create an instance, give it a delivery order and see that
// it looks as expected.
- job = new AppCacheURLRequestJob(&request, NULL, storage, NULL, false);
+ job = new AppCacheURLRequestJob(request.get(), NULL, storage, NULL, false);
job->DeliverErrorResponse();
EXPECT_TRUE(job->is_delivering_error_response());
EXPECT_FALSE(job->has_been_started());
- job = new AppCacheURLRequestJob(&request, NULL, storage, NULL, false);
+ job = new AppCacheURLRequestJob(request.get(), NULL, storage, NULL, false);
job->DeliverNetworkResponse();
EXPECT_TRUE(job->is_delivering_network_response());
EXPECT_FALSE(job->has_been_started());
- job = new AppCacheURLRequestJob(&request, NULL, storage, NULL, false);
+ job = new AppCacheURLRequestJob(request.get(), NULL, storage, NULL, false);
const GURL kManifestUrl("http://blah/");
const int64 kCacheId(1);
const int64 kGroupId(1);
diff --git a/content/browser/loader/resource_dispatcher_host_unittest.cc b/content/browser/loader/resource_dispatcher_host_unittest.cc
index c798b19..3cbce6f 100644
--- a/content/browser/loader/resource_dispatcher_host_unittest.cc
+++ b/content/browser/loader/resource_dispatcher_host_unittest.cc
@@ -1763,15 +1763,17 @@ TEST_F(ResourceDispatcherHostTest, TestBlockedRequestsDontLeak) {
// Test the private helper method "CalculateApproximateMemoryCost()".
TEST_F(ResourceDispatcherHostTest, CalculateApproximateMemoryCost) {
net::URLRequestContext context;
- net::URLRequest req(
- GURL("http://www.google.com"), net::DEFAULT_PRIORITY, NULL, &context);
- EXPECT_EQ(4427,
- ResourceDispatcherHostImpl::CalculateApproximateMemoryCost(&req));
+ scoped_ptr<net::URLRequest> req(context.CreateRequest(
+ GURL("http://www.google.com"), net::DEFAULT_PRIORITY, NULL, NULL));
+ EXPECT_EQ(
+ 4427,
+ ResourceDispatcherHostImpl::CalculateApproximateMemoryCost(req.get()));
// Add 9 bytes of referrer.
- req.SetReferrer("123456789");
- EXPECT_EQ(4436,
- ResourceDispatcherHostImpl::CalculateApproximateMemoryCost(&req));
+ req->SetReferrer("123456789");
+ EXPECT_EQ(
+ 4436,
+ ResourceDispatcherHostImpl::CalculateApproximateMemoryCost(req.get()));
// Add 33 bytes of upload content.
std::string upload_content;
@@ -1779,12 +1781,13 @@ TEST_F(ResourceDispatcherHostTest, CalculateApproximateMemoryCost) {
std::fill(upload_content.begin(), upload_content.end(), 'x');
scoped_ptr<net::UploadElementReader> reader(new net::UploadBytesElementReader(
upload_content.data(), upload_content.size()));
- req.set_upload(make_scoped_ptr(
+ req->set_upload(make_scoped_ptr(
net::UploadDataStream::CreateWithReader(reader.Pass(), 0)));
// Since the upload throttling is disabled, this has no effect on the cost.
- EXPECT_EQ(4436,
- ResourceDispatcherHostImpl::CalculateApproximateMemoryCost(&req));
+ EXPECT_EQ(
+ 4436,
+ ResourceDispatcherHostImpl::CalculateApproximateMemoryCost(req.get()));
}
// Test that too much memory for outstanding requests for a particular
diff --git a/content/browser/loader/resource_loader_unittest.cc b/content/browser/loader/resource_loader_unittest.cc
index 1e489e8..23beced 100644
--- a/content/browser/loader/resource_loader_unittest.cc
+++ b/content/browser/loader/resource_loader_unittest.cc
@@ -313,10 +313,11 @@ class ResourceLoaderTest : public testing::Test,
const int kRenderViewId = 2;
scoped_ptr<net::URLRequest> request(
- new net::URLRequest(test_url(),
- net::DEFAULT_PRIORITY,
- NULL,
- resource_context_.GetRequestContext()));
+ resource_context_.GetRequestContext()->CreateRequest(
+ test_url(),
+ net::DEFAULT_PRIORITY,
+ NULL /* delegate */,
+ NULL /* cookie_store */));
raw_ptr_to_request_ = request.get();
ResourceRequestInfo::AllocateForTesting(request.get(),
RESOURCE_TYPE_MAIN_FRAME,
diff --git a/extensions/browser/extension_protocols_unittest.cc b/extensions/browser/extension_protocols_unittest.cc
index e2f0607..e9aea85 100644
--- a/extensions/browser/extension_protocols_unittest.cc
+++ b/extensions/browser/extension_protocols_unittest.cc
@@ -5,6 +5,7 @@
#include <string>
#include "base/file_util.h"
+#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
@@ -177,36 +178,40 @@ TEST_F(ExtensionProtocolTest, IncognitoRequest) {
// It doesn't matter that the resource doesn't exist. If the resource
// is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request
// should just fail because the file doesn't exist.
- net::URLRequest request(extension->GetResourceURL("404.html"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_MAIN_FRAME);
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("404.html"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_MAIN_FRAME);
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
if (cases[i].should_allow_main_frame_load) {
- EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) <<
+ EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error()) <<
cases[i].name;
} else {
- EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) <<
+ EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request->status().error()) <<
cases[i].name;
}
}
// Now do a subframe request.
{
- net::URLRequest request(extension->GetResourceURL("404.html"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_SUB_FRAME);
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("404.html"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_SUB_FRAME);
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
if (cases[i].should_allow_sub_frame_load) {
- EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) <<
+ EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request->status().error()) <<
cases[i].name;
} else {
- EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) <<
+ EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request->status().error()) <<
cases[i].name;
}
}
@@ -237,26 +242,30 @@ TEST_F(ExtensionProtocolTest, ComponentResourceRequest) {
// First test it with the extension enabled.
{
- net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
- CheckForContentLengthHeader(&request);
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("webstore_icon_16.png"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_MEDIA);
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
+ CheckForContentLengthHeader(request.get());
}
// And then test it with the extension disabled.
extension_info_map_->RemoveExtension(extension->id(),
UnloadedExtensionInfo::REASON_DISABLE);
{
- net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
- CheckForContentLengthHeader(&request);
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("webstore_icon_16.png"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_MEDIA);
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
+ CheckForContentLengthHeader(request.get());
}
}
@@ -273,26 +282,28 @@ TEST_F(ExtensionProtocolTest, ResourceRequestResponseHeaders) {
false);
{
- net::URLRequest request(extension->GetResourceURL("test.dat"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("test.dat"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_MEDIA);
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
// Check that cache-related headers are set.
std::string etag;
- request.GetResponseHeaderByName("ETag", &etag);
+ request->GetResponseHeaderByName("ETag", &etag);
EXPECT_TRUE(StartsWithASCII(etag, "\"", false));
EXPECT_TRUE(EndsWith(etag, "\"", false));
std::string revalidation_header;
- request.GetResponseHeaderByName("cache-control", &revalidation_header);
+ request->GetResponseHeaderByName("cache-control", &revalidation_header);
EXPECT_EQ("no-cache", revalidation_header);
// We set test.dat as web-accessible, so it should have a CORS header.
std::string access_control;
- request.GetResponseHeaderByName("Access-Control-Allow-Origin",
+ request->GetResponseHeaderByName("Access-Control-Allow-Origin",
&access_control);
EXPECT_EQ("*", access_control);
}
@@ -312,30 +323,36 @@ TEST_F(ExtensionProtocolTest, AllowFrameRequests) {
// All MAIN_FRAME and SUB_FRAME requests should succeed.
{
- net::URLRequest request(extension->GetResourceURL("test.dat"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_MAIN_FRAME);
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("test.dat"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_MAIN_FRAME);
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
}
{
- net::URLRequest request(extension->GetResourceURL("test.dat"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_SUB_FRAME);
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("test.dat"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_SUB_FRAME);
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, request->status().status());
}
// And subresource types, such as media, should fail.
{
- net::URLRequest request(extension->GetResourceURL("test.dat"),
- net::DEFAULT_PRIORITY,
- &test_delegate_,
- resource_context_.GetRequestContext());
- StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
- EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ extension->GetResourceURL("test.dat"),
+ net::DEFAULT_PRIORITY,
+ &test_delegate_,
+ NULL));
+ StartRequest(request.get(), content::RESOURCE_TYPE_MEDIA);
+ EXPECT_EQ(net::URLRequestStatus::FAILED, request->status().status());
}
}
diff --git a/mojo/services/network/url_loader_impl.cc b/mojo/services/network/url_loader_impl.cc
index 52f6148..bbdfcb2 100644
--- a/mojo/services/network/url_loader_impl.cc
+++ b/mojo/services/network/url_loader_impl.cc
@@ -14,6 +14,7 @@
#include "net/base/upload_data_stream.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/redirect_info.h"
+#include "net/url_request/url_request_context.h"
namespace mojo {
namespace {
@@ -83,7 +84,8 @@ class UploadDataPipeElementReader : public net::UploadElementReader {
int buf_length,
const net::CompletionCallback& callback) OVERRIDE {
uint32_t bytes_read =
- std::min(BytesRemaining(), static_cast<uint64>(buf_length));
+ std::min(static_cast<uint32_t>(BytesRemaining()),
+ static_cast<uint32_t>(buf_length));
if (bytes_read > 0) {
ReadDataRaw(pipe_.get(), buf->data(), &bytes_read,
MOJO_READ_DATA_FLAG_NONE);
@@ -178,11 +180,11 @@ void URLLoaderImpl::Start(URLRequestPtr request,
return;
}
- url_request_.reset(
- new net::URLRequest(GURL(request->url),
- net::DEFAULT_PRIORITY,
- this,
- context_->url_request_context()));
+ url_request_ = context_->url_request_context()->CreateRequest(
+ GURL(request->url),
+ net::DEFAULT_PRIORITY,
+ this,
+ NULL);
url_request_->set_method(request->method);
if (request->headers) {
net::HttpRequestHeaders headers;
diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc
index 7c71948..1d7fa9d 100644
--- a/net/ocsp/nss_ocsp.cc
+++ b/net/ocsp/nss_ocsp.cc
@@ -20,6 +20,7 @@
#include "base/compiler_specific.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/metrics/histogram.h"
#include "base/stl_util.h"
@@ -187,7 +188,6 @@ class OCSPRequestSession
: url_(url),
http_request_method_(http_request_method),
timeout_(timeout),
- request_(NULL),
buffer_(new IOBuffer(kRecvBufferSize)),
response_code_(-1),
cv_(&lock_),
@@ -218,7 +218,7 @@ class OCSPRequestSession
}
bool Started() const {
- return request_ != NULL;
+ return request_.get() != NULL;
}
void Cancel() {
@@ -286,7 +286,7 @@ class OCSPRequestSession
virtual void OnReceivedRedirect(URLRequest* request,
const RedirectInfo& redirect_info,
bool* defer_redirect) OVERRIDE {
- DCHECK_EQ(request, request_);
+ DCHECK_EQ(request_.get(), request);
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
if (!redirect_info.new_url.SchemeIs("http")) {
@@ -297,7 +297,7 @@ class OCSPRequestSession
}
virtual void OnResponseStarted(URLRequest* request) OVERRIDE {
- DCHECK_EQ(request, request_);
+ DCHECK_EQ(request_.get(), request);
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
int bytes_read = 0;
@@ -307,12 +307,12 @@ class OCSPRequestSession
response_headers_->GetMimeType(&response_content_type_);
request_->Read(buffer_.get(), kRecvBufferSize, &bytes_read);
}
- OnReadCompleted(request_, bytes_read);
+ OnReadCompleted(request_.get(), bytes_read);
}
virtual void OnReadCompleted(URLRequest* request,
int bytes_read) OVERRIDE {
- DCHECK_EQ(request, request_);
+ DCHECK_EQ(request_.get(), request);
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_);
do {
@@ -322,8 +322,7 @@ class OCSPRequestSession
} while (request_->Read(buffer_.get(), kRecvBufferSize, &bytes_read));
if (!request_->status().is_io_pending()) {
- delete request_;
- request_ = NULL;
+ request_.reset();
g_ocsp_io_loop.Get().RemoveRequest(this);
{
base::AutoLock autolock(lock_);
@@ -345,9 +344,7 @@ class OCSPRequestSession
}
#endif
if (request_) {
- request_->Cancel();
- delete request_;
- request_ = NULL;
+ request_.reset();
g_ocsp_io_loop.Get().RemoveRequest(this);
{
base::AutoLock autolock(lock_);
@@ -398,8 +395,8 @@ class OCSPRequestSession
g_ocsp_io_loop.Get().AddRequest(this);
}
- request_ =
- new URLRequest(url_, DEFAULT_PRIORITY, this, url_request_context);
+ request_ = url_request_context->CreateRequest(
+ url_, DEFAULT_PRIORITY, this, NULL);
// To meet the privacy requirements of incognito mode.
request_->SetLoadFlags(LOAD_DISABLE_CACHE | LOAD_DO_NOT_SAVE_COOKIES |
LOAD_DO_NOT_SEND_COOKIES);
@@ -424,10 +421,10 @@ class OCSPRequestSession
AddRef(); // Release after |request_| deleted.
}
- GURL url_; // The URL we eventually wound up at
+ GURL url_; // The URL we eventually wound up at
std::string http_request_method_;
- base::TimeDelta timeout_; // The timeout for OCSP
- URLRequest* request_; // The actual request this wraps
+ base::TimeDelta timeout_; // The timeout for OCSP
+ scoped_ptr<URLRequest> request_; // The actual request this wraps
scoped_refptr<IOBuffer> buffer_; // Read buffer
HttpRequestHeaders extra_request_headers_;
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index 7d301d1..17dee75 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -2482,26 +2482,27 @@ TEST_P(SpdyNetworkTransactionTest, RedirectGetRequest) {
GetParam().protocol,
false /* force_spdy_over_ssl*/,
true /* force_spdy_always */);
- net::URLRequest r(GURL("http://www.google.com/"),
- DEFAULT_PRIORITY,
- &d,
- &spdy_url_request_context);
+ scoped_ptr<URLRequest> r(
+ spdy_url_request_context.CreateRequest(GURL("http://www.google.com/"),
+ DEFAULT_PRIORITY,
+ &d,
+ NULL));
spdy_url_request_context.socket_factory().
AddSocketDataProvider(&data);
spdy_url_request_context.socket_factory().
AddSocketDataProvider(&data2);
d.set_quit_on_redirect(true);
- r.Start();
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
- r.FollowDeferredRedirect();
+ r->FollowDeferredRedirect();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, r->status().status());
std::string contents("hello!");
EXPECT_EQ(contents, d.data_received());
}
@@ -2576,37 +2577,40 @@ TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
false /* force_spdy_over_ssl*/,
true /* force_spdy_always */);
{
- net::URLRequest r(GURL("http://www.google.com/"),
- DEFAULT_PRIORITY,
- &d,
- &spdy_url_request_context);
+ scoped_ptr<URLRequest> r(
+ spdy_url_request_context.CreateRequest(GURL("http://www.google.com/"),
+ DEFAULT_PRIORITY,
+ &d,
+ NULL));
spdy_url_request_context.socket_factory().
AddSocketDataProvider(&data);
- r.Start();
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(0, d.received_redirect_count());
std::string contents("hello!");
EXPECT_EQ(contents, d.data_received());
- net::URLRequest r2(GURL("http://www.google.com/foo.dat"),
- DEFAULT_PRIORITY,
- &d2,
- &spdy_url_request_context);
+ scoped_ptr<URLRequest> r2(
+ spdy_url_request_context.CreateRequest(
+ GURL("http://www.google.com/foo.dat"),
+ DEFAULT_PRIORITY,
+ &d2,
+ NULL));
spdy_url_request_context.socket_factory().
AddSocketDataProvider(&data2);
d2.set_quit_on_redirect(true);
- r2.Start();
+ r2->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d2.received_redirect_count());
- r2.FollowDeferredRedirect();
+ r2->FollowDeferredRedirect();
base::RunLoop().Run();
EXPECT_EQ(1, d2.response_started_count());
EXPECT_FALSE(d2.received_data_before_response());
- EXPECT_EQ(net::URLRequestStatus::SUCCESS, r2.status().status());
+ EXPECT_EQ(net::URLRequestStatus::SUCCESS, r2->status().status());
std::string contents2("hello!");
EXPECT_EQ(contents2, d2.data_received());
}
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
index 6b33aaa..666f2e7 100644
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -201,18 +201,42 @@ void URLRequest::Delegate::OnBeforeNetworkStart(URLRequest* request,
URLRequest::URLRequest(const GURL& url,
RequestPriority priority,
Delegate* delegate,
- const URLRequestContext* context)
- : identifier_(GenerateURLRequestIdentifier()) {
- Init(url, priority, delegate, context, NULL);
-}
-
-URLRequest::URLRequest(const GURL& url,
- RequestPriority priority,
- Delegate* delegate,
const URLRequestContext* context,
- CookieStore* cookie_store)
- : identifier_(GenerateURLRequestIdentifier()) {
- Init(url, priority, delegate, context, cookie_store);
+ CookieStore* cookie_store,
+ NetworkDelegate* network_delegate)
+ : context_(context),
+ network_delegate_(network_delegate ? network_delegate
+ : context->network_delegate()),
+ net_log_(BoundNetLog::Make(context->net_log(),
+ NetLog::SOURCE_URL_REQUEST)),
+ url_chain_(1, url),
+ method_("GET"),
+ referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE),
+ first_party_url_policy_(NEVER_CHANGE_FIRST_PARTY_URL),
+ load_flags_(LOAD_NORMAL),
+ delegate_(delegate),
+ is_pending_(false),
+ is_redirecting_(false),
+ redirect_limit_(kMaxRedirects),
+ priority_(priority),
+ identifier_(GenerateURLRequestIdentifier()),
+ calling_delegate_(false),
+ use_blocked_by_as_load_param_(false),
+ before_request_callback_(base::Bind(&URLRequest::BeforeRequestComplete,
+ base::Unretained(this))),
+ has_notified_completion_(false),
+ received_response_content_length_(0),
+ creation_time_(base::TimeTicks::Now()),
+ notified_before_network_start_(false),
+ cookie_store_(cookie_store ? cookie_store : context->cookie_store()) {
+ SIMPLE_STATS_COUNTER("URLRequestCount");
+
+ // Sanity check out environment.
+ DCHECK(base::MessageLoop::current())
+ << "The current base::MessageLoop must exist";
+
+ context->url_requests()->insert(this);
+ net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE);
}
URLRequest::~URLRequest() {
@@ -249,48 +273,6 @@ void URLRequest::UnregisterRequestInterceptor(Interceptor* interceptor) {
interceptor);
}
-void URLRequest::Init(const GURL& url,
- RequestPriority priority,
- Delegate* delegate,
- const URLRequestContext* context,
- CookieStore* cookie_store) {
- context_ = context;
- network_delegate_ = context->network_delegate();
- net_log_ = BoundNetLog::Make(context->net_log(), NetLog::SOURCE_URL_REQUEST);
- url_chain_.push_back(url);
- method_ = "GET";
- referrer_policy_ = CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE;
- first_party_url_policy_ = NEVER_CHANGE_FIRST_PARTY_URL;
- load_flags_ = LOAD_NORMAL;
- delegate_ = delegate;
- is_pending_ = false;
- is_redirecting_ = false;
- redirect_limit_ = kMaxRedirects;
- priority_ = priority;
- calling_delegate_ = false;
- use_blocked_by_as_load_param_ =false;
- before_request_callback_ = base::Bind(&URLRequest::BeforeRequestComplete,
- base::Unretained(this));
- has_notified_completion_ = false;
- received_response_content_length_ = 0;
- creation_time_ = base::TimeTicks::Now();
- notified_before_network_start_ = false;
-
- SIMPLE_STATS_COUNTER("URLRequestCount");
-
- // Sanity check out environment.
- DCHECK(base::MessageLoop::current())
- << "The current base::MessageLoop must exist";
-
- CHECK(context);
- context->url_requests()->insert(this);
- cookie_store_ = cookie_store;
- if (cookie_store_ == NULL)
- cookie_store_ = context->cookie_store();
-
- net_log_.BeginEvent(NetLog::TYPE_REQUEST_ALIVE);
-}
-
void URLRequest::EnableChunkedUpload() {
DCHECK(!upload_data_stream_ || upload_data_stream_->is_chunked());
if (!upload_data_stream_) {
@@ -623,7 +605,6 @@ void URLRequest::Start() {
// Some values can be NULL, but the job factory must not be.
DCHECK(context_->job_factory());
- DCHECK_EQ(network_delegate_, context_->network_delegate());
// Anything that sets |blocked_by_| before start should have cleaned up after
// itself.
DCHECK(blocked_by_.empty());
@@ -656,7 +637,6 @@ void URLRequest::Start() {
void URLRequest::BeforeRequestComplete(int error) {
DCHECK(!job_.get());
DCHECK_NE(ERR_IO_PENDING, error);
- DCHECK_EQ(network_delegate_, context_->network_delegate());
// Check that there are no callbacks to already canceled requests.
DCHECK_NE(URLRequestStatus::CANCELED, status_.status());
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
index b4f20795..c649d7c 100644
--- a/net/url_request/url_request.h
+++ b/net/url_request/url_request.h
@@ -273,19 +273,17 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
virtual ~Delegate() {}
};
- // TODO(tburkard): we should get rid of this constructor, and have each
- // creator of a URLRequest specifically list the cookie store to be used.
- // For now, this constructor will use the cookie store in |context|.
- URLRequest(const GURL& url,
- RequestPriority priority,
- Delegate* delegate,
- const URLRequestContext* context);
-
+ // URLRequests should almost always be created by calling
+ // URLRequestContext::CreateRequest.
+ //
+ // If no cookie store or network delegate are passed in, will use the ones
+ // from the URLRequestContext.
URLRequest(const GURL& url,
RequestPriority priority,
Delegate* delegate,
const URLRequestContext* context,
- CookieStore* cookie_store);
+ CookieStore* cookie_store,
+ NetworkDelegate* network_delegate);
// If destroyed after Start() has been called but while IO is pending,
// then the request will be effectively canceled and the delegate
@@ -721,15 +719,6 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
static void RegisterRequestInterceptor(Interceptor* interceptor);
static void UnregisterRequestInterceptor(Interceptor* interceptor);
- // Initializes the URLRequest. Code shared between the two constructors.
- // TODO(tburkard): This can ultimately be folded into a single constructor
- // again.
- void Init(const GURL& url,
- RequestPriority priotity,
- Delegate* delegate,
- const URLRequestContext* context,
- CookieStore* cookie_store);
-
// Resumes or blocks a request paused by the NetworkDelegate::OnBeforeRequest
// handler. If |blocked| is true, the request is blocked and an error page is
// returned indicating so. This should only be called after Start is called
diff --git a/net/url_request/url_request_context.cc b/net/url_request/url_request_context.cc
index 7f4e799..aa3ec91 100644
--- a/net/url_request/url_request_context.cc
+++ b/net/url_request/url_request_context.cc
@@ -78,7 +78,8 @@ scoped_ptr<URLRequest> URLRequestContext::CreateRequest(
URLRequest::Delegate* delegate,
CookieStore* cookie_store) const {
return scoped_ptr<URLRequest>(
- new URLRequest(url, priority, delegate, this, cookie_store));
+ new URLRequest(url, priority, delegate, this, cookie_store,
+ network_delegate_));
}
void URLRequestContext::set_cookie_store(CookieStore* cookie_store) {
diff --git a/net/url_request/url_request_context.h b/net/url_request/url_request_context.h
index 4e58739..992f985 100644
--- a/net/url_request/url_request_context.h
+++ b/net/url_request/url_request_context.h
@@ -59,9 +59,8 @@ class NET_EXPORT URLRequestContext
// May return NULL if this context doesn't have an associated network session.
const HttpNetworkSession::Params* GetNetworkSessionParams() const;
- // Creates a URLRequest. |cookie_store| optionally specifies a cookie store
- // to be used rather than the one represented by the context, or NULL
- // otherwise.
+ // Creates a URLRequest. If |cookie_store| is non-NULL, it will be used
+ // instead of the context's cookie store.
scoped_ptr<URLRequest> CreateRequest(const GURL& url,
RequestPriority priority,
URLRequest::Delegate* delegate,
diff --git a/net/url_request/url_request_context_builder_unittest.cc b/net/url_request/url_request_context_builder_unittest.cc
index a7a0fee..b5a3da2 100644
--- a/net/url_request/url_request_context_builder_unittest.cc
+++ b/net/url_request/url_request_context_builder_unittest.cc
@@ -4,6 +4,7 @@
#include "net/url_request/url_request_context_builder.h"
+#include "base/memory/scoped_ptr.h"
#include "build/build_config.h"
#include "net/base/request_priority.h"
#include "net/http/http_auth_handler.h"
@@ -79,13 +80,14 @@ TEST_F(URLRequestContextBuilderTest, DefaultSettings) {
scoped_ptr<URLRequestContext> context(builder_.Build());
TestDelegate delegate;
- URLRequest request(test_server_.GetURL("echoheader?Foo"),
- DEFAULT_PRIORITY,
- &delegate,
- context.get());
- request.set_method("GET");
- request.SetExtraRequestHeaderByName("Foo", "Bar", false);
- request.Start();
+ scoped_ptr<URLRequest> request(
+ context->CreateRequest(test_server_.GetURL("echoheader?Foo"),
+ DEFAULT_PRIORITY,
+ &delegate,
+ context->cookie_store()));
+ request->set_method("GET");
+ request->SetExtraRequestHeaderByName("Foo", "Bar", false);
+ request->Start();
base::MessageLoop::current()->Run();
EXPECT_EQ("Bar", delegate.data_received());
}
@@ -96,12 +98,13 @@ TEST_F(URLRequestContextBuilderTest, UserAgent) {
builder_.set_user_agent("Bar");
scoped_ptr<URLRequestContext> context(builder_.Build());
TestDelegate delegate;
- URLRequest request(test_server_.GetURL("echoheader?User-Agent"),
- DEFAULT_PRIORITY,
- &delegate,
- context.get());
- request.set_method("GET");
- request.Start();
+ scoped_ptr<URLRequest> request(
+ context->CreateRequest(test_server_.GetURL("echoheader?User-Agent"),
+ DEFAULT_PRIORITY,
+ &delegate,
+ NULL));
+ request->set_method("GET");
+ request->Start();
base::MessageLoop::current()->Run();
EXPECT_EQ("Bar", delegate.data_received());
}
diff --git a/net/url_request/url_request_ftp_job_unittest.cc b/net/url_request/url_request_ftp_job_unittest.cc
index 8797a35..e672413 100644
--- a/net/url_request/url_request_ftp_job_unittest.cc
+++ b/net/url_request/url_request_ftp_job_unittest.cc
@@ -268,16 +268,15 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequest) {
AddSocket(reads, arraysize(reads), writes, arraysize(writes));
TestDelegate request_delegate;
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY,
+ &request_delegate, NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(4);
- EXPECT_TRUE(url_request.status().is_success());
- EXPECT_TRUE(url_request.proxy_server().Equals(
+ EXPECT_TRUE(url_request->status().is_success());
+ EXPECT_TRUE(url_request->proxy_server().Equals(
net::HostPortPair::FromString("localhost:80")));
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
@@ -295,11 +294,10 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestOrphanJob) {
new MockAsyncProxyResolver, NULL));
TestDelegate request_delegate;
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
// Now |url_request| will be deleted before its completion,
// resulting in it being orphaned. It should not crash.
@@ -323,16 +321,15 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthNoCredentials) {
AddSocket(reads, arraysize(reads), writes, arraysize(writes));
TestDelegate request_delegate;
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(5);
- EXPECT_TRUE(url_request.status().is_success());
- EXPECT_TRUE(url_request.proxy_server().Equals(
+ EXPECT_TRUE(url_request->status().is_success());
+ EXPECT_TRUE(url_request->proxy_server().Equals(
net::HostPortPair::FromString("localhost:80")));
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
@@ -369,15 +366,14 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAuthWithCredentials) {
TestDelegate request_delegate;
request_delegate.set_credentials(
AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass")));
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(9);
- EXPECT_TRUE(url_request.status().is_success());
+ EXPECT_TRUE(url_request->status().is_success());
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_TRUE(request_delegate.auth_required_called());
@@ -402,15 +398,14 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedServerAuthNoCredentials) {
AddSocket(reads, arraysize(reads), writes, arraysize(writes));
TestDelegate request_delegate;
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(5);
- EXPECT_TRUE(url_request.status().is_success());
+ EXPECT_TRUE(url_request->status().is_success());
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_TRUE(request_delegate.auth_required_called());
@@ -446,15 +441,14 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedServerAuthWithCredentials) {
TestDelegate request_delegate;
request_delegate.set_credentials(
AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass")));
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(9);
- EXPECT_TRUE(url_request.status().is_success());
+ EXPECT_TRUE(url_request->status().is_success());
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_TRUE(request_delegate.auth_required_called());
@@ -512,17 +506,17 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestNeedProxyAndServerAuth) {
TestDelegate request_delegate;
request_delegate.set_credentials(
AuthCredentials(ASCIIToUTF16("proxyuser"), ASCIIToUTF16("proxypass")));
- URLRequest url_request(
- url, DEFAULT_PRIORITY, &request_delegate, request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ url, DEFAULT_PRIORITY, &request_delegate, NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(5);
request_delegate.set_credentials(
AuthCredentials(ASCIIToUTF16("myuser"), ASCIIToUTF16("mypass")));
socket_data(0)->RunFor(9);
- EXPECT_TRUE(url_request.status().is_success());
+ EXPECT_TRUE(url_request->status().is_success());
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_TRUE(request_delegate.auth_required_called());
@@ -545,16 +539,15 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotSaveCookies) {
AddSocket(reads, arraysize(reads), writes, arraysize(writes));
TestDelegate request_delegate;
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- ASSERT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
+ ASSERT_TRUE(url_request->is_pending());
socket_data(0)->RunFor(5);
- EXPECT_TRUE(url_request.status().is_success());
+ EXPECT_TRUE(url_request->status().is_success());
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
@@ -579,26 +572,25 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotFollowRedirects) {
AddSocket(reads, arraysize(reads), writes, arraysize(writes));
TestDelegate request_delegate;
- URLRequest url_request(GURL("ftp://ftp.example.com/"),
- DEFAULT_PRIORITY,
- &request_delegate,
- request_context());
- url_request.Start();
- EXPECT_TRUE(url_request.is_pending());
+ scoped_ptr<URLRequest> url_request(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ url_request->Start();
+ EXPECT_TRUE(url_request->is_pending());
base::MessageLoop::current()->RunUntilIdle();
- EXPECT_TRUE(url_request.is_pending());
+ EXPECT_TRUE(url_request->is_pending());
EXPECT_EQ(0, request_delegate.response_started_count());
EXPECT_EQ(0, network_delegate()->error_count());
- ASSERT_TRUE(url_request.status().is_success());
+ ASSERT_TRUE(url_request->status().is_success());
socket_data(0)->RunFor(1);
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(1, network_delegate()->error_count());
- EXPECT_FALSE(url_request.status().is_success());
- EXPECT_EQ(ERR_UNSAFE_REDIRECT, url_request.status().error());
+ EXPECT_FALSE(url_request->status().is_success());
+ EXPECT_EQ(ERR_UNSAFE_REDIRECT, url_request->status().error());
}
// We should re-use socket for requests using the same scheme, host, and port.
@@ -623,16 +615,16 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestReuseSocket) {
AddSocket(reads, arraysize(reads), writes, arraysize(writes));
TestDelegate request_delegate1;
- URLRequest url_request1(GURL("ftp://ftp.example.com/first"),
- DEFAULT_PRIORITY,
- &request_delegate1,
- request_context());
- url_request1.Start();
- ASSERT_TRUE(url_request1.is_pending());
+
+ scoped_ptr<URLRequest> url_request1(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/first"), DEFAULT_PRIORITY, &request_delegate1,
+ NULL));
+ url_request1->Start();
+ ASSERT_TRUE(url_request1->is_pending());
socket_data(0)->RunFor(4);
- EXPECT_TRUE(url_request1.status().is_success());
- EXPECT_TRUE(url_request1.proxy_server().Equals(
+ EXPECT_TRUE(url_request1->status().is_success());
+ EXPECT_TRUE(url_request1->proxy_server().Equals(
net::HostPortPair::FromString("localhost:80")));
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
@@ -640,15 +632,14 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestReuseSocket) {
EXPECT_EQ("test1.html", request_delegate1.data_received());
TestDelegate request_delegate2;
- URLRequest url_request2(GURL("ftp://ftp.example.com/second"),
- DEFAULT_PRIORITY,
- &request_delegate2,
- request_context());
- url_request2.Start();
- ASSERT_TRUE(url_request2.is_pending());
+ scoped_ptr<URLRequest> url_request2(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/second"), DEFAULT_PRIORITY,
+ &request_delegate2, NULL));
+ url_request2->Start();
+ ASSERT_TRUE(url_request2->is_pending());
socket_data(0)->RunFor(4);
- EXPECT_TRUE(url_request2.status().is_success());
+ EXPECT_TRUE(url_request2->status().is_success());
EXPECT_EQ(2, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_FALSE(request_delegate2.auth_required_called());
@@ -686,30 +677,28 @@ TEST_F(URLRequestFtpJobTest, FtpProxyRequestDoNotReuseSocket) {
AddSocket(reads2, arraysize(reads2), writes2, arraysize(writes2));
TestDelegate request_delegate1;
- URLRequest url_request1(GURL("ftp://ftp.example.com/first"),
- DEFAULT_PRIORITY,
- &request_delegate1,
- request_context());
- url_request1.Start();
- ASSERT_TRUE(url_request1.is_pending());
+ scoped_ptr<URLRequest> url_request1(request_context()->CreateRequest(
+ GURL("ftp://ftp.example.com/first"), DEFAULT_PRIORITY,
+ &request_delegate1, NULL));
+ url_request1->Start();
+ ASSERT_TRUE(url_request1->is_pending());
socket_data(0)->RunFor(4);
- EXPECT_TRUE(url_request1.status().is_success());
+ EXPECT_TRUE(url_request1->status().is_success());
EXPECT_EQ(1, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_FALSE(request_delegate1.auth_required_called());
EXPECT_EQ("test1.html", request_delegate1.data_received());
TestDelegate request_delegate2;
- URLRequest url_request2(GURL("http://ftp.example.com/second"),
- DEFAULT_PRIORITY,
- &request_delegate2,
- request_context());
- url_request2.Start();
- ASSERT_TRUE(url_request2.is_pending());
+ scoped_ptr<URLRequest> url_request2(request_context()->CreateRequest(
+ GURL("http://ftp.example.com/second"), DEFAULT_PRIORITY,
+ &request_delegate2, NULL));
+ url_request2->Start();
+ ASSERT_TRUE(url_request2->is_pending());
socket_data(1)->RunFor(4);
- EXPECT_TRUE(url_request2.status().is_success());
+ EXPECT_TRUE(url_request2->status().is_success());
EXPECT_EQ(2, network_delegate()->completed_requests());
EXPECT_EQ(0, network_delegate()->error_count());
EXPECT_FALSE(request_delegate2.auth_required_called());
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 38950c2..a870a2c 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -446,8 +446,9 @@ void URLRequestHttpJob::StartTransactionInternal() {
base::Bind(&URLRequestHttpJob::NotifyBeforeSendProxyHeadersCallback,
base::Unretained(this)));
- if (!throttling_entry_.get() ||
- !throttling_entry_->ShouldRejectRequest(*request_)) {
+ if (!throttling_entry_ ||
+ !throttling_entry_->ShouldRejectRequest(
+ *request_, network_delegate())) {
rv = transaction_->Start(
&request_info_, start_callback_, request_->net_log());
start_time_ = base::TimeTicks::Now();
diff --git a/net/url_request/url_request_simple_job_unittest.cc b/net/url_request/url_request_simple_job_unittest.cc
index dfd985a..512833f 100644
--- a/net/url_request/url_request_simple_job_unittest.cc
+++ b/net/url_request/url_request_simple_job_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/memory/scoped_ptr.h"
#include "base/run_loop.h"
#include "base/strings/stringprintf.h"
#include "net/base/request_priority.h"
@@ -66,8 +67,8 @@ class URLRequestSimpleJobTest : public ::testing::Test {
context_.set_job_factory(&job_factory_);
context_.Init();
- request_.reset(new URLRequest(
- GURL("data:test"), DEFAULT_PRIORITY, &delegate_, &context_));
+ request_ = context_.CreateRequest(
+ GURL("data:test"), DEFAULT_PRIORITY, &delegate_, NULL);
}
void StartRequest(const HttpRequestHeaders* headers) {
diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc
index 3800fec..fcdae3b 100644
--- a/net/url_request/url_request_test_util.cc
+++ b/net/url_request/url_request_test_util.cc
@@ -134,7 +134,7 @@ TestURLRequest::TestURLRequest(const GURL& url,
RequestPriority priority,
Delegate* delegate,
TestURLRequestContext* context)
- : URLRequest(url, priority, delegate, context) {}
+ : URLRequest(url, priority, delegate, context, NULL, NULL) {}
TestURLRequest::~TestURLRequest() {
}
diff --git a/net/url_request/url_request_throttler_entry.cc b/net/url_request/url_request_throttler_entry.cc
index b7c0612..5d0c43a 100644
--- a/net/url_request/url_request_throttler_entry.cc
+++ b/net/url_request/url_request_throttler_entry.cc
@@ -150,11 +150,11 @@ void URLRequestThrottlerEntry::DetachManager() {
}
bool URLRequestThrottlerEntry::ShouldRejectRequest(
- const URLRequest& request) const {
+ const URLRequest& request,
+ NetworkDelegate* network_delegate) const {
bool reject_request = false;
if (!is_backoff_disabled_ && !ExplicitUserRequest(request.load_flags()) &&
- (!request.context()->network_delegate() ||
- request.context()->network_delegate()->CanThrottleRequest(request)) &&
+ (!network_delegate || network_delegate->CanThrottleRequest(request)) &&
GetBackoffEntry()->ShouldRejectRequest()) {
int num_failures = GetBackoffEntry()->failure_count();
int release_after_ms =
diff --git a/net/url_request/url_request_throttler_entry.h b/net/url_request/url_request_throttler_entry.h
index 88006e7..a7a0524 100644
--- a/net/url_request/url_request_throttler_entry.h
+++ b/net/url_request/url_request_throttler_entry.h
@@ -16,6 +16,7 @@
namespace net {
+class NetworkDelegate;
class URLRequestThrottlerManager;
// URLRequestThrottlerEntry represents an entry of URLRequestThrottlerManager.
@@ -92,7 +93,9 @@ class NET_EXPORT URLRequestThrottlerEntry
void DetachManager();
// Implementation of URLRequestThrottlerEntryInterface.
- virtual bool ShouldRejectRequest(const URLRequest& request) const OVERRIDE;
+ virtual bool ShouldRejectRequest(
+ const URLRequest& request,
+ NetworkDelegate* network_delegate) const OVERRIDE;
virtual int64 ReserveSendingTimeForNextRequest(
const base::TimeTicks& earliest_time) OVERRIDE;
virtual base::TimeTicks GetExponentialBackoffReleaseTime() const OVERRIDE;
diff --git a/net/url_request/url_request_throttler_entry_interface.h b/net/url_request/url_request_throttler_entry_interface.h
index 48152e1..47f5ea1 100644
--- a/net/url_request/url_request_throttler_entry_interface.h
+++ b/net/url_request/url_request_throttler_entry_interface.h
@@ -14,6 +14,7 @@
namespace net {
+class NetworkDelegate;
class URLRequest;
class URLRequestThrottlerHeaderInterface;
@@ -30,7 +31,9 @@ class NET_EXPORT URLRequestThrottlerEntryInterface
//
// URLRequestHttpJob checks this method prior to every request; it
// cancels requests if this method returns true.
- virtual bool ShouldRejectRequest(const URLRequest& request) const = 0;
+ virtual bool ShouldRejectRequest(
+ const URLRequest& request,
+ NetworkDelegate* network_delegate) const = 0;
// Calculates a recommended sending time for the next request and reserves it.
// The sending time is not earlier than the current exponential back-off
diff --git a/net/url_request/url_request_throttler_simulation_unittest.cc b/net/url_request/url_request_throttler_simulation_unittest.cc
index fc9dfde..14b2040 100644
--- a/net/url_request/url_request_throttler_simulation_unittest.cc
+++ b/net/url_request/url_request_throttler_simulation_unittest.cc
@@ -21,6 +21,7 @@
#include "base/rand_util.h"
#include "base/time/time.h"
#include "net/base/request_priority.h"
+#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_test_util.h"
#include "net/url_request/url_request_throttler_manager.h"
#include "net/url_request/url_request_throttler_test_support.h"
@@ -275,6 +276,8 @@ class Server : public DiscreteTimeSimulation::Actor {
return output;
}
+ const URLRequestContext& context() const { return context_; }
+
private:
TimeTicks now_;
TimeTicks start_downtime_; // Can be 0 to say "no downtime".
@@ -427,7 +430,9 @@ class Requester : public DiscreteTimeSimulation::Actor {
if (throttler_entry_->fake_now() - time_of_last_attempt_ >
effective_delay) {
- if (!throttler_entry_->ShouldRejectRequest(server_->mock_request())) {
+ if (!throttler_entry_->ShouldRejectRequest(
+ server_->mock_request(),
+ server_->context().network_delegate())) {
int status_code = server_->HandleRequest();
MockURLRequestThrottlerHeaderAdapter response_headers(status_code);
throttler_entry_->UpdateWithResponse(std::string(), &response_headers);
diff --git a/net/url_request/url_request_throttler_unittest.cc b/net/url_request/url_request_throttler_unittest.cc
index 32f94ff..9ae9c7b 100644
--- a/net/url_request/url_request_throttler_unittest.cc
+++ b/net/url_request/url_request_throttler_unittest.cc
@@ -33,17 +33,17 @@ const char kRequestThrottledHistogramName[] = "Throttling.RequestThrottled";
class MockURLRequestThrottlerEntry : public URLRequestThrottlerEntry {
public:
explicit MockURLRequestThrottlerEntry(
- net::URLRequestThrottlerManager* manager)
- : net::URLRequestThrottlerEntry(manager, std::string()),
+ URLRequestThrottlerManager* manager)
+ : URLRequestThrottlerEntry(manager, std::string()),
mock_backoff_entry_(&backoff_policy_) {
InitPolicy();
}
MockURLRequestThrottlerEntry(
- net::URLRequestThrottlerManager* manager,
+ URLRequestThrottlerManager* manager,
const TimeTicks& exponential_backoff_release_time,
const TimeTicks& sliding_window_release_time,
const TimeTicks& fake_now)
- : net::URLRequestThrottlerEntry(manager, std::string()),
+ : URLRequestThrottlerEntry(manager, std::string()),
fake_time_now_(fake_now),
mock_backoff_entry_(&backoff_policy_) {
InitPolicy();
@@ -201,20 +201,24 @@ TEST_F(URLRequestThrottlerEntryTest, CanThrottleRequest) {
entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1));
d.set_can_throttle_requests(false);
- EXPECT_FALSE(entry_->ShouldRejectRequest(request_));
+ EXPECT_FALSE(entry_->ShouldRejectRequest(request_,
+ context_.network_delegate()));
d.set_can_throttle_requests(true);
- EXPECT_TRUE(entry_->ShouldRejectRequest(request_));
+ EXPECT_TRUE(entry_->ShouldRejectRequest(request_,
+ context_.network_delegate()));
}
TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) {
base::StatisticsDeltaReader statistics_delta_reader;
entry_->set_exponential_backoff_release_time(
entry_->fake_time_now_ + TimeDelta::FromMilliseconds(1));
- EXPECT_TRUE(entry_->ShouldRejectRequest(request_));
+ EXPECT_TRUE(entry_->ShouldRejectRequest(request_,
+ context_.network_delegate()));
// Also end-to-end test the load flags exceptions.
request_.SetLoadFlags(LOAD_MAYBE_USER_GESTURE);
- EXPECT_FALSE(entry_->ShouldRejectRequest(request_));
+ EXPECT_FALSE(entry_->ShouldRejectRequest(request_,
+ context_.network_delegate()));
scoped_ptr<base::HistogramSamples> samples(
statistics_delta_reader.GetHistogramSamplesSinceCreation(
@@ -226,10 +230,12 @@ TEST_F(URLRequestThrottlerEntryTest, InterfaceDuringExponentialBackoff) {
TEST_F(URLRequestThrottlerEntryTest, InterfaceNotDuringExponentialBackoff) {
base::StatisticsDeltaReader statistics_delta_reader;
entry_->set_exponential_backoff_release_time(entry_->fake_time_now_);
- EXPECT_FALSE(entry_->ShouldRejectRequest(request_));
+ EXPECT_FALSE(entry_->ShouldRejectRequest(request_,
+ context_.network_delegate()));
entry_->set_exponential_backoff_release_time(
entry_->fake_time_now_ - TimeDelta::FromMilliseconds(1));
- EXPECT_FALSE(entry_->ShouldRejectRequest(request_));
+ EXPECT_FALSE(entry_->ShouldRejectRequest(request_,
+ context_.network_delegate()));
scoped_ptr<base::HistogramSamples> samples(
statistics_delta_reader.GetHistogramSamplesSinceCreation(
@@ -358,6 +364,34 @@ class URLRequestThrottlerManagerTest : public testing::Test {
request_.SetLoadFlags(0);
}
+ void ExpectEntryAllowsAllOnErrorIfOptedOut(
+ URLRequestThrottlerEntryInterface* entry,
+ bool opted_out,
+ const URLRequest& request) {
+ EXPECT_FALSE(entry->ShouldRejectRequest(request,
+ context_.network_delegate()));
+ MockURLRequestThrottlerHeaderAdapter failure_adapter(503);
+ for (int i = 0; i < 10; ++i) {
+ // Host doesn't really matter in this scenario so we skip it.
+ entry->UpdateWithResponse(std::string(), &failure_adapter);
+ }
+ EXPECT_NE(opted_out, entry->ShouldRejectRequest(
+ request, context_.network_delegate()));
+
+ if (opted_out) {
+ // We're not mocking out GetTimeNow() in this scenario
+ // so add a 100 ms buffer to avoid flakiness (that should always
+ // give enough time to get from the TimeTicks::Now() call here
+ // to the TimeTicks::Now() call in the entry class).
+ EXPECT_GT(TimeTicks::Now() + TimeDelta::FromMilliseconds(100),
+ entry->GetExponentialBackoffReleaseTime());
+ } else {
+ // As above, add 100 ms.
+ EXPECT_LT(TimeTicks::Now() + TimeDelta::FromMilliseconds(100),
+ entry->GetExponentialBackoffReleaseTime());
+ }
+ }
+
// context_ must be declared before request_.
TestURLRequestContext context_;
TestURLRequest request_;
@@ -427,35 +461,9 @@ TEST_F(URLRequestThrottlerManagerTest, IsHostBeingRegistered) {
EXPECT_EQ(3, manager.GetNumberOfEntries());
}
-void ExpectEntryAllowsAllOnErrorIfOptedOut(
- net::URLRequestThrottlerEntryInterface* entry,
- bool opted_out,
- const URLRequest& request) {
- EXPECT_FALSE(entry->ShouldRejectRequest(request));
- MockURLRequestThrottlerHeaderAdapter failure_adapter(503);
- for (int i = 0; i < 10; ++i) {
- // Host doesn't really matter in this scenario so we skip it.
- entry->UpdateWithResponse(std::string(), &failure_adapter);
- }
- EXPECT_NE(opted_out, entry->ShouldRejectRequest(request));
-
- if (opted_out) {
- // We're not mocking out GetTimeNow() in this scenario
- // so add a 100 ms buffer to avoid flakiness (that should always
- // give enough time to get from the TimeTicks::Now() call here
- // to the TimeTicks::Now() call in the entry class).
- EXPECT_GT(TimeTicks::Now() + TimeDelta::FromMilliseconds(100),
- entry->GetExponentialBackoffReleaseTime());
- } else {
- // As above, add 100 ms.
- EXPECT_LT(TimeTicks::Now() + TimeDelta::FromMilliseconds(100),
- entry->GetExponentialBackoffReleaseTime());
- }
-}
-
TEST_F(URLRequestThrottlerManagerTest, OptOutHeader) {
MockURLRequestThrottlerManager manager;
- scoped_refptr<net::URLRequestThrottlerEntryInterface> entry =
+ scoped_refptr<URLRequestThrottlerEntryInterface> entry =
manager.RegisterRequestUrl(GURL("http://www.google.com/yodude"));
// Fake a response with the opt-out header.
@@ -470,12 +478,12 @@ TEST_F(URLRequestThrottlerManagerTest, OptOutHeader) {
// Ensure that a freshly created entry (for a different URL on an
// already opted-out host) also gets "always allow" behavior.
- scoped_refptr<net::URLRequestThrottlerEntryInterface> other_entry =
+ scoped_refptr<URLRequestThrottlerEntryInterface> other_entry =
manager.RegisterRequestUrl(GURL("http://www.google.com/bingobob"));
ExpectEntryAllowsAllOnErrorIfOptedOut(other_entry.get(), true, request_);
// Fake a response with the opt-out header incorrectly specified.
- scoped_refptr<net::URLRequestThrottlerEntryInterface> no_opt_out_entry =
+ scoped_refptr<URLRequestThrottlerEntryInterface> no_opt_out_entry =
manager.RegisterRequestUrl(GURL("http://www.nike.com/justdoit"));
MockURLRequestThrottlerHeaderAdapter wrong_adapter(
std::string(), "yesplease", 200);
@@ -484,7 +492,7 @@ TEST_F(URLRequestThrottlerManagerTest, OptOutHeader) {
no_opt_out_entry.get(), false, request_);
// A localhost entry should always be opted out.
- scoped_refptr<net::URLRequestThrottlerEntryInterface> localhost_entry =
+ scoped_refptr<URLRequestThrottlerEntryInterface> localhost_entry =
manager.RegisterRequestUrl(GURL("http://localhost/hello"));
ExpectEntryAllowsAllOnErrorIfOptedOut(localhost_entry.get(), true, request_);
}
@@ -492,14 +500,15 @@ TEST_F(URLRequestThrottlerManagerTest, OptOutHeader) {
TEST_F(URLRequestThrottlerManagerTest, ClearOnNetworkChange) {
for (int i = 0; i < 3; ++i) {
MockURLRequestThrottlerManager manager;
- scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_before =
+ scoped_refptr<URLRequestThrottlerEntryInterface> entry_before =
manager.RegisterRequestUrl(GURL("http://www.example.com/"));
MockURLRequestThrottlerHeaderAdapter failure_adapter(503);
for (int j = 0; j < 10; ++j) {
// Host doesn't really matter in this scenario so we skip it.
entry_before->UpdateWithResponse(std::string(), &failure_adapter);
}
- EXPECT_TRUE(entry_before->ShouldRejectRequest(request_));
+ EXPECT_TRUE(entry_before->ShouldRejectRequest(request_,
+ context_.network_delegate()));
switch (i) {
case 0:
@@ -507,19 +516,19 @@ TEST_F(URLRequestThrottlerManagerTest, ClearOnNetworkChange) {
break;
case 1:
manager.OnConnectionTypeChanged(
- net::NetworkChangeNotifier::CONNECTION_UNKNOWN);
+ NetworkChangeNotifier::CONNECTION_UNKNOWN);
break;
case 2:
- manager.OnConnectionTypeChanged(
- net::NetworkChangeNotifier::CONNECTION_NONE);
+ manager.OnConnectionTypeChanged(NetworkChangeNotifier::CONNECTION_NONE);
break;
default:
FAIL();
}
- scoped_refptr<net::URLRequestThrottlerEntryInterface> entry_after =
+ scoped_refptr<URLRequestThrottlerEntryInterface> entry_after =
manager.RegisterRequestUrl(GURL("http://www.example.com/"));
- EXPECT_FALSE(entry_after->ShouldRejectRequest(request_));
+ EXPECT_FALSE(entry_after->ShouldRejectRequest(
+ request_, context_.network_delegate()));
}
}
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 0a00e69..aea3ec4 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -634,21 +634,22 @@ class URLRequestTest : public PlatformTest {
TEST_F(URLRequestTest, AboutBlankTest) {
TestDelegate d;
{
- URLRequest r(GURL("about:blank"), DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ GURL("about:blank"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_TRUE(!r.is_pending());
+ EXPECT_TRUE(!r->is_pending());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), 0);
- EXPECT_EQ("", r.GetSocketAddress().host());
- EXPECT_EQ(0, r.GetSocketAddress().port());
+ EXPECT_EQ("", r->GetSocketAddress().host());
+ EXPECT_EQ(0, r->GetSocketAddress().port());
HttpRequestHeaders headers;
- EXPECT_FALSE(r.GetFullRequestHeaders(&headers));
+ EXPECT_FALSE(r->GetFullRequestHeaders(&headers));
}
}
@@ -656,7 +657,7 @@ TEST_F(URLRequestTest, DataURLImageTest) {
TestDelegate d;
{
// Use our nice little Chrome logo.
- URLRequest r(
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
GURL(
"data:image/png;base64,"
"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADVklEQVQ4jX2TfUwUBBjG3"
@@ -677,23 +678,21 @@ TEST_F(URLRequestTest, DataURLImageTest) {
"nlm2O34uI4b9tflqp1+QEFGzoW/ulmcofcpkZCYJhDfSpme7QcrHa+Xfji8paEQkTkSfm"
"moRWRNZr/F1KfVMjW+IKEnv2FwZfKdzt0BQR6lClcZR0EfEXEfv/G6W9iLiIyCoReV5En"
"hORIBHx+ufPj/gLB/zGI/G4Bk0AAAAASUVORK5CYII="),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_TRUE(!r.is_pending());
+ EXPECT_TRUE(!r->is_pending());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), 911);
- EXPECT_EQ("", r.GetSocketAddress().host());
- EXPECT_EQ(0, r.GetSocketAddress().port());
+ EXPECT_EQ("", r->GetSocketAddress().host());
+ EXPECT_EQ(0, r->GetSocketAddress().port());
HttpRequestHeaders headers;
- EXPECT_FALSE(r.GetFullRequestHeaders(&headers));
+ EXPECT_FALSE(r->GetFullRequestHeaders(&headers));
}
}
@@ -705,25 +704,26 @@ TEST_F(URLRequestTest, FileTest) {
TestDelegate d;
{
- URLRequest r(app_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ app_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = -1;
EXPECT_TRUE(base::GetFileSize(app_path, &file_size));
- EXPECT_TRUE(!r.is_pending());
+ EXPECT_TRUE(!r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size));
- EXPECT_EQ("", r.GetSocketAddress().host());
- EXPECT_EQ(0, r.GetSocketAddress().port());
+ EXPECT_EQ("", r->GetSocketAddress().host());
+ EXPECT_EQ(0, r->GetSocketAddress().port());
HttpRequestHeaders headers;
- EXPECT_FALSE(r.GetFullRequestHeaders(&headers));
+ EXPECT_FALSE(r->GetFullRequestHeaders(&headers));
}
}
@@ -734,11 +734,12 @@ TEST_F(URLRequestTest, FileTestCancel) {
TestDelegate d;
{
- URLRequest r(app_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ app_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
- r.Cancel();
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
+ r->Cancel();
}
// Async cancellation should be safe even when URLRequest has been already
// destroyed.
@@ -766,19 +767,20 @@ TEST_F(URLRequestTest, FileTestFullSpecifiedRange) {
TestDelegate d;
{
- URLRequest r(temp_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ temp_url, DEFAULT_PRIORITY, &d, NULL));
HttpRequestHeaders headers;
headers.SetHeader(
HttpRequestHeaders::kRange,
HttpByteRange::Bounded(
first_byte_position, last_byte_position).GetHeaderValue());
- r.SetExtraRequestHeaders(headers);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->SetExtraRequestHeaders(headers);
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_TRUE(!r.is_pending());
+ EXPECT_TRUE(!r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(static_cast<int>(content_length), d.bytes_received());
@@ -810,18 +812,19 @@ TEST_F(URLRequestTest, FileTestHalfSpecifiedRange) {
TestDelegate d;
{
- URLRequest r(temp_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ temp_url, DEFAULT_PRIORITY, &d, NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kRange,
HttpByteRange::RightUnbounded(
first_byte_position).GetHeaderValue());
- r.SetExtraRequestHeaders(headers);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->SetExtraRequestHeaders(headers);
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_TRUE(!r.is_pending());
+ EXPECT_TRUE(!r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(static_cast<int>(content_length), d.bytes_received());
@@ -847,13 +850,14 @@ TEST_F(URLRequestTest, FileTestMultipleRanges) {
TestDelegate d;
{
- URLRequest r(temp_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ temp_url, DEFAULT_PRIORITY, &d, NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kRange, "bytes=0-0,10-200,200-300");
- r.SetExtraRequestHeaders(headers);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->SetExtraRequestHeaders(headers);
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
EXPECT_TRUE(d.request_failed());
@@ -876,8 +880,9 @@ TEST_F(URLRequestTest, AllowFileURLs) {
TestNetworkDelegate network_delegate;
network_delegate.set_can_access_files(true);
default_context_.set_network_delegate(&network_delegate);
- URLRequest r(test_file_url, DEFAULT_PRIORITY, &d, &default_context_);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_file_url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
EXPECT_FALSE(d.request_failed());
EXPECT_EQ(test_data, d.data_received());
@@ -888,8 +893,9 @@ TEST_F(URLRequestTest, AllowFileURLs) {
TestNetworkDelegate network_delegate;
network_delegate.set_can_access_files(false);
default_context_.set_network_delegate(&network_delegate);
- URLRequest r(test_file_url, DEFAULT_PRIORITY, &d, &default_context_);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_file_url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.request_failed());
EXPECT_EQ("", d.data_received());
@@ -908,10 +914,10 @@ TEST_F(URLRequestTest, FileDirCancelTest) {
file_path = file_path.Append(FILE_PATH_LITERAL("net"));
file_path = file_path.Append(FILE_PATH_LITERAL("data"));
- URLRequest req(
- FilePathToFileURL(file_path), DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
- EXPECT_TRUE(req.is_pending());
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ FilePathToFileURL(file_path), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
+ EXPECT_TRUE(req->is_pending());
d.set_cancel_in_received_data_pending(true);
@@ -935,9 +941,9 @@ TEST_F(URLRequestTest, FileDirOutputSanity) {
path = path.Append(FILE_PATH_LITERAL("url_request_unittest"));
TestDelegate d;
- URLRequest req(
- FilePathToFileURL(path), DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ FilePathToFileURL(path), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
// Generate entry for the sentinel file.
@@ -954,7 +960,7 @@ TEST_F(URLRequestTest, FileDirOutputSanity) {
ASSERT_LT(0, d.bytes_received());
ASSERT_FALSE(d.request_failed());
- ASSERT_TRUE(req.status().is_success());
+ ASSERT_TRUE(req->status().is_success());
// Check for the entry generated for the "sentinel" file.
const std::string& data = d.data_received();
ASSERT_NE(data.find(sentinel_output), std::string::npos);
@@ -972,27 +978,28 @@ TEST_F(URLRequestTest, FileDirRedirectNoCrash) {
path = path.Append(FILE_PATH_LITERAL("url_request_unittest"));
TestDelegate d;
- URLRequest req(
- FilePathToFileURL(path), DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ FilePathToFileURL(path), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
ASSERT_EQ(1, d.received_redirect_count());
ASSERT_LT(0, d.bytes_received());
ASSERT_FALSE(d.request_failed());
- ASSERT_TRUE(req.status().is_success());
+ ASSERT_TRUE(req->status().is_success());
}
#if defined(OS_WIN)
// Don't accept the url "file:///" on windows. See http://crbug.com/1474.
TEST_F(URLRequestTest, FileDirRedirectSingleSlash) {
TestDelegate d;
- URLRequest req(GURL("file:///"), DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("file:///"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
ASSERT_EQ(1, d.received_redirect_count());
- ASSERT_FALSE(req.status().is_success());
+ ASSERT_FALSE(req->status().is_success());
}
#endif // defined(OS_WIN)
@@ -1001,10 +1008,11 @@ TEST_F(URLRequestTest, FileDirRedirectSingleSlash) {
TEST_F(URLRequestTest, InvalidUrlTest) {
TestDelegate d;
{
- URLRequest r(GURL("invalid url"), DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ GURL("invalid url"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
EXPECT_TRUE(d.request_failed());
@@ -1038,13 +1046,12 @@ TEST_F(URLRequestTest, ResolveShortcutTest) {
TestDelegate d;
{
- URLRequest r(FilePathToFileURL(base::FilePath(lnk_path)),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ FilePathToFileURL(base::FilePath(lnk_path)), DEFAULT_PRIORITY, &d,
+ NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -1063,7 +1070,7 @@ TEST_F(URLRequestTest, ResolveShortcutTest) {
std::string content(buffer.get(), read_size);
CloseHandle(file);
- EXPECT_TRUE(!r.is_pending());
+ EXPECT_TRUE(!r->is_pending());
EXPECT_EQ(1, d.received_redirect_count());
EXPECT_EQ(content, d.data_received());
}
@@ -1285,31 +1292,29 @@ TEST_F(URLRequestTest, Intercept) {
interceptor.main_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
base::SupportsUserData::Data* user_data0 = new base::SupportsUserData::Data();
base::SupportsUserData::Data* user_data1 = new base::SupportsUserData::Data();
base::SupportsUserData::Data* user_data2 = new base::SupportsUserData::Data();
- req.SetUserData(NULL, user_data0);
- req.SetUserData(&user_data1, user_data1);
- req.SetUserData(&user_data2, user_data2);
- req.set_method("GET");
- req.Start();
+ req->SetUserData(NULL, user_data0);
+ req->SetUserData(&user_data1, user_data1);
+ req->SetUserData(&user_data2, user_data2);
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Make sure we can retrieve our specific user data
- EXPECT_EQ(user_data0, req.GetUserData(NULL));
- EXPECT_EQ(user_data1, req.GetUserData(&user_data1));
- EXPECT_EQ(user_data2, req.GetUserData(&user_data2));
+ EXPECT_EQ(user_data0, req->GetUserData(NULL));
+ EXPECT_EQ(user_data1, req->GetUserData(&user_data1));
+ EXPECT_EQ(user_data2, req->GetUserData(&user_data2));
// Check the interceptor got called as expected
EXPECT_TRUE(interceptor.did_intercept_main_);
// Check we got one good response
- EXPECT_TRUE(req.status().is_success());
- EXPECT_EQ(200, req.response_headers()->response_code());
+ EXPECT_TRUE(req->status().is_success());
+ EXPECT_EQ(200, req->response_headers()->response_code());
EXPECT_EQ(TestInterceptor::ok_data(), d.data_received());
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.received_redirect_count());
@@ -1329,12 +1334,10 @@ TEST_F(URLRequestTest, InterceptRedirect) {
interceptor.redirect_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1342,9 +1345,9 @@ TEST_F(URLRequestTest, InterceptRedirect) {
EXPECT_TRUE(interceptor.did_intercept_redirect_);
// Check we got one good response
- EXPECT_TRUE(req.status().is_success());
- if (req.status().is_success()) {
- EXPECT_EQ(200, req.response_headers()->response_code());
+ EXPECT_TRUE(req->status().is_success());
+ if (req->status().is_success()) {
+ EXPECT_EQ(200, req->response_headers()->response_code());
}
EXPECT_EQ(TestInterceptor::ok_data(), d.data_received());
EXPECT_EQ(1, d.response_started_count());
@@ -1365,12 +1368,10 @@ TEST_F(URLRequestTest, InterceptServerError) {
interceptor.final_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1378,8 +1379,8 @@ TEST_F(URLRequestTest, InterceptServerError) {
EXPECT_TRUE(interceptor.did_intercept_final_);
// Check we got one good response
- EXPECT_TRUE(req.status().is_success());
- EXPECT_EQ(200, req.response_headers()->response_code());
+ EXPECT_TRUE(req->status().is_success());
+ EXPECT_EQ(200, req->response_headers()->response_code());
EXPECT_EQ(TestInterceptor::ok_data(), d.data_received());
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.received_redirect_count());
@@ -1397,12 +1398,10 @@ TEST_F(URLRequestTest, InterceptNetworkError) {
interceptor.final_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1410,8 +1409,8 @@ TEST_F(URLRequestTest, InterceptNetworkError) {
EXPECT_TRUE(interceptor.did_intercept_final_);
// Check we received one good response
- EXPECT_TRUE(req.status().is_success());
- EXPECT_EQ(200, req.response_headers()->response_code());
+ EXPECT_TRUE(req->status().is_success());
+ EXPECT_EQ(200, req->response_headers()->response_code());
EXPECT_EQ(TestInterceptor::ok_data(), d.data_received());
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.received_redirect_count());
@@ -1429,12 +1428,10 @@ TEST_F(URLRequestTest, InterceptRestartRequired) {
interceptor.main_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1442,9 +1439,9 @@ TEST_F(URLRequestTest, InterceptRestartRequired) {
EXPECT_TRUE(interceptor.did_intercept_main_);
// Check we received one good response
- EXPECT_TRUE(req.status().is_success());
- if (req.status().is_success()) {
- EXPECT_EQ(200, req.response_headers()->response_code());
+ EXPECT_TRUE(req->status().is_success());
+ if (req->status().is_success()) {
+ EXPECT_EQ(200, req->response_headers()->response_code());
}
EXPECT_EQ(TestInterceptor::ok_data(), d.data_received());
EXPECT_EQ(1, d.response_started_count());
@@ -1463,12 +1460,10 @@ TEST_F(URLRequestTest, InterceptRespectsCancelMain) {
interceptor.final_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1476,8 +1471,8 @@ TEST_F(URLRequestTest, InterceptRespectsCancelMain) {
EXPECT_FALSE(interceptor.did_intercept_final_);
// Check we see a canceled request
- EXPECT_FALSE(req.status().is_success());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_FALSE(req->status().is_success());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
TEST_F(URLRequestTest, InterceptRespectsCancelRedirect) {
@@ -1497,12 +1492,10 @@ TEST_F(URLRequestTest, InterceptRespectsCancelRedirect) {
interceptor.final_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1511,8 +1504,8 @@ TEST_F(URLRequestTest, InterceptRespectsCancelRedirect) {
EXPECT_FALSE(interceptor.did_intercept_final_);
// Check we see a canceled request
- EXPECT_FALSE(req.status().is_success());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_FALSE(req->status().is_success());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
TEST_F(URLRequestTest, InterceptRespectsCancelFinal) {
@@ -1525,12 +1518,10 @@ TEST_F(URLRequestTest, InterceptRespectsCancelFinal) {
interceptor.cancel_final_request_ = true;
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1538,8 +1529,8 @@ TEST_F(URLRequestTest, InterceptRespectsCancelFinal) {
EXPECT_TRUE(interceptor.did_cancel_final_);
// Check we see a canceled request
- EXPECT_FALSE(req.status().is_success());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_FALSE(req->status().is_success());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
TEST_F(URLRequestTest, InterceptRespectsCancelInRestart) {
@@ -1554,12 +1545,10 @@ TEST_F(URLRequestTest, InterceptRespectsCancelInRestart) {
interceptor.final_data_ = TestInterceptor::ok_data();
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("GET");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
+ req->Start();
base::RunLoop().Run();
// Check the interceptor got called as expected
@@ -1567,8 +1556,8 @@ TEST_F(URLRequestTest, InterceptRespectsCancelInRestart) {
EXPECT_FALSE(interceptor.did_intercept_final_);
// Check we see a canceled request
- EXPECT_FALSE(req.status().is_success());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_FALSE(req->status().is_success());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
LoadTimingInfo RunLoadTimingTest(const LoadTimingInfo& job_load_timing,
@@ -1577,13 +1566,13 @@ LoadTimingInfo RunLoadTimingTest(const LoadTimingInfo& job_load_timing,
interceptor.intercept_main_request_ = true;
interceptor.main_request_load_timing_info_ = job_load_timing;
TestDelegate d;
- URLRequest req(
- GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, context);
- req.Start();
+ scoped_ptr<URLRequest> req(context->CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
LoadTimingInfo resulting_load_timing;
- req.GetLoadTimingInfo(&resulting_load_timing);
+ req->GetLoadTimingInfo(&resulting_load_timing);
// None of these should be modified by the URLRequest.
EXPECT_EQ(job_load_timing.socket_reused, resulting_load_timing.socket_reused);
@@ -1855,18 +1844,19 @@ TEST_F(URLRequestTest, NetworkDelegateProxyError) {
TestURLRequestContextWithProxy context("myproxy:70", &network_delegate);
TestDelegate d;
- URLRequest req(GURL("http://example.com"), DEFAULT_PRIORITY, &d, &context);
- req.set_method("GET");
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ GURL("http://example.com"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("GET");
- req.Start();
+ req->Start();
base::RunLoop().Run();
// Check we see a failed request.
- EXPECT_FALSE(req.status().is_success());
+ EXPECT_FALSE(req->status().is_success());
// The proxy server is not set before failure.
- EXPECT_TRUE(req.proxy_server().IsEmpty());
- EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
- EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, req.status().error());
+ EXPECT_TRUE(req->proxy_server().IsEmpty());
+ EXPECT_EQ(URLRequestStatus::FAILED, req->status().status());
+ EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, req->status().error());
EXPECT_EQ(1, network_delegate.error_count());
EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, network_delegate.last_error());
@@ -1877,8 +1867,9 @@ TEST_F(URLRequestTest, NetworkDelegateProxyError) {
// content is empty.
TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) {
TestDelegate d;
- URLRequest req(GURL("data:,"), DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("data:,"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ("", d.data_received());
EXPECT_EQ(1, default_network_delegate_.completed_requests());
@@ -1888,40 +1879,36 @@ TEST_F(URLRequestTest, RequestCompletionForEmptyResponse) {
// correctly, both before and after start.
TEST_F(URLRequestTest, SetPriorityBasic) {
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- EXPECT_EQ(DEFAULT_PRIORITY, req.priority());
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ EXPECT_EQ(DEFAULT_PRIORITY, req->priority());
- req.SetPriority(LOW);
- EXPECT_EQ(LOW, req.priority());
+ req->SetPriority(LOW);
+ EXPECT_EQ(LOW, req->priority());
- req.Start();
- EXPECT_EQ(LOW, req.priority());
+ req->Start();
+ EXPECT_EQ(LOW, req->priority());
- req.SetPriority(MEDIUM);
- EXPECT_EQ(MEDIUM, req.priority());
+ req->SetPriority(MEDIUM);
+ EXPECT_EQ(MEDIUM, req->priority());
}
// Make sure that URLRequest calls SetPriority on a job before calling
// Start on it.
TEST_F(URLRequestTest, SetJobPriorityBeforeJobStart) {
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- EXPECT_EQ(DEFAULT_PRIORITY, req.priority());
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
+ EXPECT_EQ(DEFAULT_PRIORITY, req->priority());
scoped_refptr<URLRequestTestJob> job =
- new URLRequestTestJob(&req, &default_network_delegate_);
+ new URLRequestTestJob(req.get(), &default_network_delegate_);
AddTestInterceptor()->set_main_intercept_job(job.get());
EXPECT_EQ(DEFAULT_PRIORITY, job->priority());
- req.SetPriority(LOW);
+ req->SetPriority(LOW);
- req.Start();
+ req->Start();
EXPECT_EQ(LOW, job->priority());
}
@@ -1929,21 +1916,19 @@ TEST_F(URLRequestTest, SetJobPriorityBeforeJobStart) {
// job.
TEST_F(URLRequestTest, SetJobPriority) {
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL));
scoped_refptr<URLRequestTestJob> job =
- new URLRequestTestJob(&req, &default_network_delegate_);
+ new URLRequestTestJob(req.get(), &default_network_delegate_);
AddTestInterceptor()->set_main_intercept_job(job.get());
- req.SetPriority(LOW);
- req.Start();
+ req->SetPriority(LOW);
+ req->Start();
EXPECT_EQ(LOW, job->priority());
- req.SetPriority(MEDIUM);
- EXPECT_EQ(MEDIUM, req.priority());
+ req->SetPriority(MEDIUM);
+ EXPECT_EQ(MEDIUM, req->priority());
EXPECT_EQ(MEDIUM, job->priority());
}
@@ -1951,24 +1936,22 @@ TEST_F(URLRequestTest, SetJobPriority) {
// is MAXIMUM_PRIORITY.
TEST_F(URLRequestTest, PriorityIgnoreLimits) {
TestDelegate d;
- URLRequest req(GURL("http://test_intercept/foo"),
- MAXIMUM_PRIORITY,
- &d,
- &default_context_);
- EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://test_intercept/foo"), MAXIMUM_PRIORITY, &d, NULL));
+ EXPECT_EQ(MAXIMUM_PRIORITY, req->priority());
scoped_refptr<URLRequestTestJob> job =
- new URLRequestTestJob(&req, &default_network_delegate_);
+ new URLRequestTestJob(req.get(), &default_network_delegate_);
AddTestInterceptor()->set_main_intercept_job(job.get());
- req.SetLoadFlags(LOAD_IGNORE_LIMITS);
- EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+ req->SetLoadFlags(LOAD_IGNORE_LIMITS);
+ EXPECT_EQ(MAXIMUM_PRIORITY, req->priority());
- req.SetPriority(MAXIMUM_PRIORITY);
- EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+ req->SetPriority(MAXIMUM_PRIORITY);
+ EXPECT_EQ(MAXIMUM_PRIORITY, req->priority());
- req.Start();
- EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+ req->Start();
+ EXPECT_EQ(MAXIMUM_PRIORITY, req->priority());
EXPECT_EQ(MAXIMUM_PRIORITY, job->priority());
}
@@ -2005,11 +1988,10 @@ TEST_F(URLRequestTest, DelayedCookieCallback) {
TestNetworkDelegate network_delegate;
context.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
EXPECT_EQ(0, network_delegate.blocked_set_cookie_count());
@@ -2021,11 +2003,9 @@ TEST_F(URLRequestTest, DelayedCookieCallback) {
TestNetworkDelegate network_delegate;
context.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSend=1")
@@ -2044,11 +2024,10 @@ TEST_F(URLRequestTest, DoNotSendCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
EXPECT_EQ(0, network_delegate.blocked_set_cookie_count());
@@ -2059,11 +2038,9 @@ TEST_F(URLRequestTest, DoNotSendCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSend=1")
@@ -2077,12 +2054,10 @@ TEST_F(URLRequestTest, DoNotSendCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetLoadFlags(LOAD_DO_NOT_SEND_COOKIES);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->SetLoadFlags(LOAD_DO_NOT_SEND_COOKIES);
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1")
@@ -2103,11 +2078,10 @@ TEST_F(URLRequestTest, DoNotSaveCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
@@ -2120,13 +2094,11 @@ TEST_F(URLRequestTest, DoNotSaveCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetLoadFlags(LOAD_DO_NOT_SAVE_COOKIES);
- req.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ req->SetLoadFlags(LOAD_DO_NOT_SAVE_COOKIES);
+ req->Start();
base::RunLoop().Run();
@@ -2141,11 +2113,9 @@ TEST_F(URLRequestTest, DoNotSaveCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSave=1")
@@ -2168,11 +2138,10 @@ TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
@@ -2184,11 +2153,9 @@ TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSend=1")
@@ -2204,11 +2171,9 @@ TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy) {
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES);
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1")
@@ -2228,11 +2193,10 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
@@ -2245,12 +2209,10 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) {
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE);
- URLRequest req(
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
@@ -2263,11 +2225,9 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSave=1")
@@ -2289,11 +2249,9 @@ TEST_F(URLRequestTest, DoNotSaveEmptyCookies) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
@@ -2311,11 +2269,10 @@ TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotSend=1"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotSend=1"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
@@ -2327,11 +2284,9 @@ TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSend=1")
@@ -2347,11 +2302,9 @@ TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) {
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
network_delegate.set_cookie_options(TestNetworkDelegate::NO_GET_COOKIES);
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("Cookie: CookieToNotSend=1")
@@ -2371,11 +2324,10 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("set-cookie?CookieToNotUpdate=2"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("set-cookie?CookieToNotUpdate=2"), DEFAULT_PRIORITY,
+ &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(0, network_delegate.blocked_get_cookies_count());
@@ -2388,12 +2340,10 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) {
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
network_delegate.set_cookie_options(TestNetworkDelegate::NO_SET_COOKIE);
- URLRequest req(
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server.GetURL("set-cookie?CookieToNotSave=1&CookieToNotUpdate=1"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
@@ -2406,11 +2356,9 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy_Async) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("CookieToNotSave=1")
@@ -2477,13 +2425,11 @@ TEST_F(URLRequestTest, AcceptClockSkewCookieWithWrongDateTimezone) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server.GetURL(
"set-cookie?StillGood=1;expires=Mon,18-Apr-1977,22:50:13,GMT"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
}
// Verify that the cookie is not set.
@@ -2491,11 +2437,9 @@ TEST_F(URLRequestTest, AcceptClockSkewCookieWithWrongDateTimezone) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("StillGood=1") == std::string::npos);
@@ -2505,13 +2449,11 @@ TEST_F(URLRequestTest, AcceptClockSkewCookieWithWrongDateTimezone) {
FixedDateNetworkDelegate network_delegate("18-Apr-1977 22:49:13 UTC");
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
test_server.GetURL(
"set-cookie?StillGood=1;expires=Mon,18-Apr-1977,22:50:13,GMT"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
}
// Verify that the cookie is set.
@@ -2519,11 +2461,9 @@ TEST_F(URLRequestTest, AcceptClockSkewCookieWithWrongDateTimezone) {
TestNetworkDelegate network_delegate;
default_context_.set_network_delegate(&network_delegate);
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Cookie"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Cookie"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("StillGood=1") != std::string::npos);
@@ -2541,17 +2481,15 @@ TEST_F(URLRequestTest, DoNotOverrideReferrer) {
// only the latter shall be respected.
{
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Referer"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetReferrer("http://foo.com/");
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL));
+ req->SetReferrer("http://foo.com/");
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/");
- req.SetExtraRequestHeaders(headers);
+ req->SetExtraRequestHeaders(headers);
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ("http://foo.com/", d.data_received());
@@ -2561,17 +2499,15 @@ TEST_F(URLRequestTest, DoNotOverrideReferrer) {
// shall be sent in the header.
{
TestDelegate d;
- URLRequest req(test_server.GetURL("echoheader?Referer"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/");
- req.SetExtraRequestHeaders(headers);
- req.SetLoadFlags(LOAD_VALIDATE_CACHE);
+ req->SetExtraRequestHeaders(headers);
+ req->SetLoadFlags(LOAD_VALIDATE_CACHE);
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ("None", d.data_received());
@@ -2599,20 +2535,21 @@ class URLRequestTestHTTP : public URLRequestTest {
bool include_data) {
static const char kData[] = "hello world";
TestDelegate d;
- URLRequest req(redirect_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.set_method(request_method);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ redirect_url, DEFAULT_PRIORITY, &d, NULL));
+ req->set_method(request_method);
if (include_data) {
- req.set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
- req.SetExtraRequestHeaders(headers);
+ req->SetExtraRequestHeaders(headers);
}
- req.Start();
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(redirect_method, req.method());
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
- EXPECT_EQ(OK, req.status().error());
+ EXPECT_EQ(redirect_method, req->method());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
+ EXPECT_EQ(OK, req->status().error());
if (include_data) {
if (request_method == redirect_method) {
EXPECT_EQ(kData, d.data_received());
@@ -2644,20 +2581,20 @@ class URLRequestTestHTTP : public URLRequestTest {
for (int i = 0; i < kIterations; ++i) {
TestDelegate d;
- URLRequest r(
- test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, &default_context_);
- r.set_method(method.c_str());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->set_method(method.c_str());
- r.set_upload(make_scoped_ptr(CreateSimpleUploadData(uploadBytes)));
+ r->set_upload(make_scoped_ptr(CreateSimpleUploadData(uploadBytes)));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
ASSERT_EQ(1, d.response_started_count())
- << "request failed: " << r.status().status()
- << ", os error: " << r.status().error();
+ << "request failed: " << r->status().status()
+ << ", os error: " << r->status().error();
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(uploadBytes, d.data_received());
@@ -2691,21 +2628,20 @@ class URLRequestTestHTTP : public URLRequestTest {
bool DoManyCookiesRequest(int num_cookies) {
TestDelegate d;
- URLRequest r(test_server_.GetURL("set-many-cookies?" +
- base::IntToString(num_cookies)),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("set-many-cookies?" +
+ base::IntToString(num_cookies)),
+ DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- bool is_success = r.status().is_success();
+ bool is_success = r->status().is_success();
if (!is_success) {
- EXPECT_TRUE(r.status().error() == ERR_RESPONSE_HEADERS_TOO_BIG);
+ EXPECT_TRUE(r->status().error() == ERR_RESPONSE_HEADERS_TOO_BIG);
// The test server appears to be unable to handle subsequent requests
// after this error is triggered. Force it to restart.
EXPECT_TRUE(test_server_.Stop());
@@ -2731,17 +2667,17 @@ TEST_F(URLRequestTestHTTP, ProxyTunnelRedirectTest) {
TestDelegate d;
{
- URLRequest r(
- GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d, &context);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
// The proxy server is not set before failure.
- EXPECT_TRUE(r.proxy_server().IsEmpty());
- EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error());
+ EXPECT_TRUE(r->proxy_server().IsEmpty());
+ EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error());
EXPECT_EQ(1, d.response_started_count());
// We should not have followed the redirect.
EXPECT_EQ(0, d.received_redirect_count());
@@ -2759,17 +2695,17 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateTunnelConnectionFailed) {
TestDelegate d;
{
- URLRequest r(
- GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d, &context);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ GURL("https://www.redirect.com/"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
// The proxy server is not set before failure.
- EXPECT_TRUE(r.proxy_server().IsEmpty());
- EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error());
+ EXPECT_TRUE(r->proxy_server().IsEmpty());
+ EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error());
EXPECT_EQ(1, d.response_started_count());
// We should not have followed the redirect.
EXPECT_EQ(0, d.received_redirect_count());
@@ -2803,10 +2739,10 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateBlockAsynchronously) {
context.Init();
{
- URLRequest r(
- test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
for (size_t i = 0; i < blocking_stages_length; ++i) {
base::RunLoop().Run();
EXPECT_EQ(blocking_stages[i],
@@ -2814,8 +2750,8 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateBlockAsynchronously) {
network_delegate.DoCallback(OK);
}
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -2836,16 +2772,16 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateCancelRequest) {
test_server_.host_port_pair().ToString(), &network_delegate);
{
- URLRequest r(
- test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
// The proxy server is not set before cancellation.
- EXPECT_TRUE(r.proxy_server().IsEmpty());
- EXPECT_EQ(ERR_EMPTY_RESPONSE, r.status().error());
+ EXPECT_TRUE(r->proxy_server().IsEmpty());
+ EXPECT_EQ(ERR_EMPTY_RESPONSE, r->status().error());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -2869,15 +2805,16 @@ void NetworkDelegateCancelRequest(BlockingNetworkDelegate::BlockMode block_mode,
context.Init();
{
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
// The proxy server is not set before cancellation.
- EXPECT_TRUE(r.proxy_server().IsEmpty());
- EXPECT_EQ(ERR_BLOCKED_BY_CLIENT, r.status().error());
+ EXPECT_TRUE(r->proxy_server().IsEmpty());
+ EXPECT_EQ(ERR_BLOCKED_BY_CLIENT, r->status().error());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -2947,37 +2884,38 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequest) {
{
GURL original_url(test_server_.GetURL("empty.html"));
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
// Quit after hitting the redirect, so can check the headers.
d.set_quit_on_redirect(true);
- r.Start();
+ r->Start();
base::RunLoop().Run();
// Check headers from URLRequestJob.
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(307, r.GetResponseCode());
- EXPECT_EQ(307, r.response_headers()->response_code());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(307, r->GetResponseCode());
+ EXPECT_EQ(307, r->response_headers()->response_code());
std::string location;
- ASSERT_TRUE(r.response_headers()->EnumerateHeader(NULL, "Location",
- &location));
+ ASSERT_TRUE(r->response_headers()->EnumerateHeader(NULL, "Location",
+ &location));
EXPECT_EQ(redirect_url, GURL(location));
// Let the request finish.
- r.FollowDeferredRedirect();
+ r->FollowDeferredRedirect();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_TRUE(r.proxy_server().Equals(test_server_.host_port_pair()));
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_TRUE(r->proxy_server().Equals(test_server_.host_port_pair()));
EXPECT_EQ(
1, network_delegate.observed_before_proxy_headers_sent_callbacks());
EXPECT_TRUE(
network_delegate.last_observed_proxy().Equals(
test_server_.host_port_pair()));
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(redirect_url, r.url());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(2U, r.url_chain().size());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(redirect_url, r->url());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(2U, r->url_chain().size());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3000,37 +2938,38 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequestSynchronously) {
{
GURL original_url(test_server_.GetURL("empty.html"));
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
// Quit after hitting the redirect, so can check the headers.
d.set_quit_on_redirect(true);
- r.Start();
+ r->Start();
base::RunLoop().Run();
// Check headers from URLRequestJob.
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(307, r.GetResponseCode());
- EXPECT_EQ(307, r.response_headers()->response_code());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(307, r->GetResponseCode());
+ EXPECT_EQ(307, r->response_headers()->response_code());
std::string location;
- ASSERT_TRUE(r.response_headers()->EnumerateHeader(NULL, "Location",
- &location));
+ ASSERT_TRUE(r->response_headers()->EnumerateHeader(NULL, "Location",
+ &location));
EXPECT_EQ(redirect_url, GURL(location));
// Let the request finish.
- r.FollowDeferredRedirect();
+ r->FollowDeferredRedirect();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_TRUE(r.proxy_server().Equals(test_server_.host_port_pair()));
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_TRUE(r->proxy_server().Equals(test_server_.host_port_pair()));
EXPECT_EQ(
1, network_delegate.observed_before_proxy_headers_sent_callbacks());
EXPECT_TRUE(
network_delegate.last_observed_proxy().Equals(
test_server_.host_port_pair()));
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(redirect_url, r.url());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(2U, r.url_chain().size());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(redirect_url, r->url());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(2U, r->url_chain().size());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3056,40 +2995,41 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequestPost) {
{
GURL original_url(test_server_.GetURL("empty.html"));
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &context);
- r.set_method("POST");
- r.set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
+ r->set_method("POST");
+ r->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
- r.SetExtraRequestHeaders(headers);
+ r->SetExtraRequestHeaders(headers);
// Quit after hitting the redirect, so can check the headers.
d.set_quit_on_redirect(true);
- r.Start();
+ r->Start();
base::RunLoop().Run();
// Check headers from URLRequestJob.
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(307, r.GetResponseCode());
- EXPECT_EQ(307, r.response_headers()->response_code());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(307, r->GetResponseCode());
+ EXPECT_EQ(307, r->response_headers()->response_code());
std::string location;
- ASSERT_TRUE(r.response_headers()->EnumerateHeader(NULL, "Location",
- &location));
+ ASSERT_TRUE(r->response_headers()->EnumerateHeader(NULL, "Location",
+ &location));
EXPECT_EQ(redirect_url, GURL(location));
// Let the request finish.
- r.FollowDeferredRedirect();
+ r->FollowDeferredRedirect();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(redirect_url, r.url());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(2U, r.url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(redirect_url, r->url());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(2U, r->url_chain().size());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
- EXPECT_EQ("POST", r.method());
+ EXPECT_EQ("POST", r->method());
EXPECT_EQ(kData, d.data_received());
}
EXPECT_EQ(1, network_delegate.destroyed_requests());
@@ -3112,22 +3052,24 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateRedirectRequestOnHeadersReceived) {
{
GURL original_url(test_server_.GetURL("empty.html"));
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_TRUE(r.proxy_server().Equals(test_server_.host_port_pair()));
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_TRUE(r->proxy_server().Equals(test_server_.host_port_pair()));
EXPECT_EQ(
2, network_delegate.observed_before_proxy_headers_sent_callbacks());
EXPECT_TRUE(
network_delegate.last_observed_proxy().Equals(
test_server_.host_port_pair()));
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(redirect_url, r.url());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(2U, r.url_chain().size());
+
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(redirect_url, r->url());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(2U, r->url_chain().size());
EXPECT_EQ(2, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3153,14 +3095,15 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredSyncNoAction) {
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(200, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(200, r->GetResponseCode());
EXPECT_TRUE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3184,20 +3127,21 @@ TEST_F(URLRequestTestHTTP,
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
{
HttpRequestHeaders headers;
- EXPECT_TRUE(r.GetFullRequestHeaders(&headers));
+ EXPECT_TRUE(r->GetFullRequestHeaders(&headers));
EXPECT_FALSE(headers.HasHeader("Authorization"));
}
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(200, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(200, r->GetResponseCode());
EXPECT_TRUE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3225,13 +3169,14 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredSyncSetAuth) {
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(200, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(200, r->GetResponseCode());
EXPECT_FALSE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3260,20 +3205,21 @@ TEST_F(URLRequestTestHTTP,
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(200, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(200, r->GetResponseCode());
EXPECT_FALSE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
{
HttpRequestHeaders headers;
- EXPECT_TRUE(r.GetFullRequestHeaders(&headers));
+ EXPECT_TRUE(r->GetFullRequestHeaders(&headers));
EXPECT_TRUE(headers.HasHeader("Authorization"));
}
}
@@ -3298,13 +3244,14 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredSyncCancel) {
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(401, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(401, r->GetResponseCode());
EXPECT_FALSE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3332,13 +3279,14 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredAsyncNoAction) {
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
- EXPECT_EQ(200, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
+ EXPECT_EQ(200, r->GetResponseCode());
EXPECT_TRUE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3367,14 +3315,15 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredAsyncSetAuth) {
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(0, r.status().error());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(0, r->status().error());
- EXPECT_EQ(200, r.GetResponseCode());
+ EXPECT_EQ(200, r->GetResponseCode());
EXPECT_FALSE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3400,13 +3349,14 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateOnAuthRequiredAsyncCancel) {
{
GURL url(test_server_.GetURL("auth-basic"));
- URLRequest r(url, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(401, r.GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(401, r->GetResponseCode());
EXPECT_FALSE(d.auth_required_called());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
@@ -3430,20 +3380,20 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateCancelWhileWaiting1) {
context.Init();
{
- URLRequest r(
- test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(BlockingNetworkDelegate::ON_BEFORE_URL_REQUEST,
network_delegate.stage_blocked_for_callback());
EXPECT_EQ(0, network_delegate.completed_requests());
// Cancel before callback.
- r.Cancel();
+ r->Cancel();
// Ensure that network delegate is notified.
EXPECT_EQ(1, network_delegate.completed_requests());
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
- EXPECT_EQ(ERR_ABORTED, r.status().error());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
+ EXPECT_EQ(ERR_ABORTED, r->status().error());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3467,20 +3417,20 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateCancelWhileWaiting2) {
context.Init();
{
- URLRequest r(
- test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(BlockingNetworkDelegate::ON_BEFORE_SEND_HEADERS,
network_delegate.stage_blocked_for_callback());
EXPECT_EQ(0, network_delegate.completed_requests());
// Cancel before callback.
- r.Cancel();
+ r->Cancel();
// Ensure that network delegate is notified.
EXPECT_EQ(1, network_delegate.completed_requests());
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
- EXPECT_EQ(ERR_ABORTED, r.status().error());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
+ EXPECT_EQ(ERR_ABORTED, r->status().error());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3503,20 +3453,20 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateCancelWhileWaiting3) {
context.Init();
{
- URLRequest r(
- test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(BlockingNetworkDelegate::ON_HEADERS_RECEIVED,
network_delegate.stage_blocked_for_callback());
EXPECT_EQ(0, network_delegate.completed_requests());
// Cancel before callback.
- r.Cancel();
+ r->Cancel();
// Ensure that network delegate is notified.
EXPECT_EQ(1, network_delegate.completed_requests());
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
- EXPECT_EQ(ERR_ABORTED, r.status().error());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
+ EXPECT_EQ(ERR_ABORTED, r->status().error());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3539,20 +3489,20 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateCancelWhileWaiting4) {
context.Init();
{
- URLRequest r(
- test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(BlockingNetworkDelegate::ON_AUTH_REQUIRED,
network_delegate.stage_blocked_for_callback());
EXPECT_EQ(0, network_delegate.completed_requests());
// Cancel before callback.
- r.Cancel();
+ r->Cancel();
// Ensure that network delegate is notified.
EXPECT_EQ(1, network_delegate.completed_requests());
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
- EXPECT_EQ(ERR_ABORTED, r.status().error());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
+ EXPECT_EQ(ERR_ABORTED, r->status().error());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -3571,18 +3521,18 @@ TEST_F(URLRequestTestHTTP, UnexpectedServerAuthTest) {
TestDelegate d;
{
- URLRequest r(
- GURL("https://www.server-auth.com/"), DEFAULT_PRIORITY, &d, &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ GURL("https://www.server-auth.com/"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
// The proxy server is not set before failure.
- EXPECT_TRUE(r.proxy_server().IsEmpty());
- EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r.status().error());
+ EXPECT_TRUE(r->proxy_server().IsEmpty());
+ EXPECT_EQ(ERR_TUNNEL_CONNECTION_FAILED, r->status().error());
}
}
@@ -3591,13 +3541,11 @@ TEST_F(URLRequestTestHTTP, GetTest_NoCache) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -3605,9 +3553,9 @@ TEST_F(URLRequestTestHTTP, GetTest_NoCache) {
EXPECT_FALSE(d.received_data_before_response());
EXPECT_NE(0, d.bytes_received());
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
// TODO(eroman): Add back the NetLog tests...
}
@@ -3660,13 +3608,11 @@ TEST_F(URLRequestTestHTTP, GetTest) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -3674,9 +3620,9 @@ TEST_F(URLRequestTestHTTP, GetTest) {
EXPECT_FALSE(d.received_data_before_response());
EXPECT_NE(0, d.bytes_received());
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
}
}
@@ -3686,13 +3632,14 @@ TEST_F(URLRequestTestHTTP, GetTest_GetFullRequestHeaders) {
TestDelegate d;
{
GURL test_url(test_server_.GetURL(std::string()));
- URLRequest r(test_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_url, DEFAULT_PRIORITY, &d, NULL));
HttpRequestHeaders headers;
- EXPECT_FALSE(r.GetFullRequestHeaders(&headers));
+ EXPECT_FALSE(r->GetFullRequestHeaders(&headers));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -3700,9 +3647,9 @@ TEST_F(URLRequestTestHTTP, GetTest_GetFullRequestHeaders) {
EXPECT_FALSE(d.received_data_before_response());
EXPECT_NE(0, d.bytes_received());
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
EXPECT_TRUE(d.have_full_request_headers());
CheckFullRequestHeaders(d.full_request_headers(), test_url);
@@ -3714,27 +3661,25 @@ TEST_F(URLRequestTestHTTP, GetTestLoadTiming) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
LoadTimingInfo load_timing_info;
- r.GetLoadTimingInfo(&load_timing_info);
+ r->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES);
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_NE(0, d.bytes_received());
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
}
}
@@ -3767,24 +3712,24 @@ TEST_F(URLRequestTestHTTP, GetZippedTest) {
context.set_network_delegate(&network_delegate);
context.Init();
- URLRequest r(
- test_server_.GetURL(test_file), DEFAULT_PRIORITY, &d, &context);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL(test_file), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
VLOG(1) << " Received " << d.bytes_received() << " bytes"
- << " status = " << r.status().status()
- << " error = " << r.status().error();
+ << " status = " << r->status().status()
+ << " error = " << r->status().error();
if (test_expect_success[i]) {
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status())
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status())
<< " Parameter = \"" << test_file << "\"";
} else {
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
- EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r.status().error())
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
+ EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error())
<< " Parameter = \"" << test_file << "\"";
}
}
@@ -3804,19 +3749,17 @@ TEST_F(URLRequestTestHTTP, HTTPSToHTTPRedirectNoRefererTest) {
// server should not be sent the referer.
GURL http_destination = test_server_.GetURL(std::string());
TestDelegate d;
- URLRequest req(
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
https_test_server.GetURL("server-redirect?" + http_destination.spec()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetReferrer("https://www.referrer.com/");
- req.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ req->SetReferrer("https://www.referrer.com/");
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(1, d.received_redirect_count());
- EXPECT_EQ(http_destination, req.url());
- EXPECT_EQ(std::string(), req.referrer());
+ EXPECT_EQ(http_destination, req->url());
+ EXPECT_EQ(std::string(), req->referrer());
}
TEST_F(URLRequestTestHTTP, RedirectLoadTiming) {
@@ -3826,17 +3769,18 @@ TEST_F(URLRequestTestHTTP, RedirectLoadTiming) {
GURL original_url =
test_server_.GetURL("server-redirect?" + destination_url.spec());
TestDelegate d;
- URLRequest req(original_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(1, d.received_redirect_count());
- EXPECT_EQ(destination_url, req.url());
- EXPECT_EQ(original_url, req.original_url());
- ASSERT_EQ(2U, req.url_chain().size());
- EXPECT_EQ(original_url, req.url_chain()[0]);
- EXPECT_EQ(destination_url, req.url_chain()[1]);
+ EXPECT_EQ(destination_url, req->url());
+ EXPECT_EQ(original_url, req->original_url());
+ ASSERT_EQ(2U, req->url_chain().size());
+ EXPECT_EQ(original_url, req->url_chain()[0]);
+ EXPECT_EQ(destination_url, req->url_chain()[1]);
LoadTimingInfo load_timing_info_before_redirect;
EXPECT_TRUE(default_network_delegate_.GetLoadTimingInfoBeforeRedirect(
@@ -3845,7 +3789,7 @@ TEST_F(URLRequestTestHTTP, RedirectLoadTiming) {
CONNECT_TIMING_HAS_DNS_TIMES);
LoadTimingInfo load_timing_info;
- req.GetLoadTimingInfo(&load_timing_info);
+ req->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES);
// Check that a new socket was used on redirect, since the server does not
@@ -3866,18 +3810,19 @@ TEST_F(URLRequestTestHTTP, MultipleRedirectTest) {
GURL original_url = test_server_.GetURL(
"server-redirect?" + middle_redirect_url.spec());
TestDelegate d;
- URLRequest req(original_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(2, d.received_redirect_count());
- EXPECT_EQ(destination_url, req.url());
- EXPECT_EQ(original_url, req.original_url());
- ASSERT_EQ(3U, req.url_chain().size());
- EXPECT_EQ(original_url, req.url_chain()[0]);
- EXPECT_EQ(middle_redirect_url, req.url_chain()[1]);
- EXPECT_EQ(destination_url, req.url_chain()[2]);
+ EXPECT_EQ(destination_url, req->url());
+ EXPECT_EQ(original_url, req->original_url());
+ ASSERT_EQ(3U, req->url_chain().size());
+ EXPECT_EQ(original_url, req->url_chain()[0]);
+ EXPECT_EQ(middle_redirect_url, req->url_chain()[1]);
+ EXPECT_EQ(destination_url, req->url_chain()[2]);
}
// First and second pieces of information logged by delegates to URLRequests.
@@ -4197,25 +4142,24 @@ TEST_F(URLRequestTestHTTP, DelegateInfoBeforeStart) {
context.Init();
{
- URLRequest r(test_server_.GetURL("empty.html"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
EXPECT_EQ(LOAD_STATE_IDLE, load_state.state);
EXPECT_EQ(base::string16(), load_state.param);
AsyncDelegateLogger::Run(
- &r,
+ r.get(),
LOAD_STATE_WAITING_FOR_DELEGATE,
LOAD_STATE_WAITING_FOR_DELEGATE,
LOAD_STATE_IDLE,
- base::Bind(&URLRequest::Start, base::Unretained(&r)));
+ base::Bind(&URLRequest::Start, base::Unretained(r.get())));
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
}
CapturingNetLog::CapturedEntryList entries;
@@ -4245,19 +4189,18 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateInfo) {
context.Init();
{
- URLRequest r(test_server_.GetURL("simple.html"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("simple.html"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
EXPECT_EQ(LOAD_STATE_IDLE, load_state.state);
EXPECT_EQ(base::string16(), load_state.param);
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -4303,19 +4246,18 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateInfoRedirect) {
context.Init();
{
- URLRequest r(test_server_.GetURL("server-redirect?simple.html"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY,
+ &request_delegate, NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
EXPECT_EQ(LOAD_STATE_IDLE, load_state.state);
EXPECT_EQ(base::string16(), load_state.param);
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
EXPECT_EQ(2, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -4386,19 +4328,18 @@ TEST_F(URLRequestTestHTTP, NetworkDelegateInfoAuth) {
context.Init();
{
- URLRequest r(test_server_.GetURL("auth-basic"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &request_delegate,
+ NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
EXPECT_EQ(LOAD_STATE_IDLE, load_state.state);
EXPECT_EQ(base::string16(), load_state.param);
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
EXPECT_EQ(1, network_delegate.created_requests());
EXPECT_EQ(0, network_delegate.destroyed_requests());
}
@@ -4451,16 +4392,15 @@ TEST_F(URLRequestTestHTTP, URLRequestDelegateInfo) {
// body are ignored. Since they are ignored, this test is robust against
// the possibility of multiple reads being combined in the unlikely event
// that it occurs.
- URLRequest r(test_server_.GetURL("chunked?waitBetweenChunks=20"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("chunked?waitBetweenChunks=20"), DEFAULT_PRIORITY,
+ &request_delegate, NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
}
CapturingNetLog::CapturedEntryList entries;
@@ -4505,16 +4445,15 @@ TEST_F(URLRequestTestHTTP, URLRequestDelegateInfoOnRedirect) {
context.Init();
{
- URLRequest r(test_server_.GetURL("server-redirect?simple.html"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY,
+ &request_delegate, NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(200, r.GetResponseCode());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(200, r->GetResponseCode());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
}
CapturingNetLog::CapturedEntryList entries;
@@ -4570,14 +4509,13 @@ TEST_F(URLRequestTestHTTP, URLRequestDelegateOnRedirectCancelled) {
context.Init();
{
- URLRequest r(test_server_.GetURL("server-redirect?simple.html"),
- DEFAULT_PRIORITY,
- &request_delegate,
- &context);
- LoadStateWithParam load_state = r.GetLoadState();
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ test_server_.GetURL("server-redirect?simple.html"), DEFAULT_PRIORITY,
+ &request_delegate, NULL));
+ LoadStateWithParam load_state = r->GetLoadState();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
}
CapturingNetLog::CapturedEntryList entries;
@@ -4639,16 +4577,17 @@ TEST_F(URLRequestTestHTTP, RedirectWithAdditionalHeadersTest) {
GURL original_url = test_server_.GetURL(
"server-redirect?" + destination_url.spec());
RedirectWithAdditionalHeadersDelegate d;
- URLRequest req(original_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
std::string value;
- const HttpRequestHeaders& headers = req.extra_request_headers();
+ const HttpRequestHeaders& headers = req->extra_request_headers();
EXPECT_TRUE(headers.GetHeader(kExtraHeader, &value));
EXPECT_EQ(kExtraValue, value);
- EXPECT_FALSE(req.is_pending());
- EXPECT_FALSE(req.is_redirecting());
+ EXPECT_FALSE(req->is_pending());
+ EXPECT_FALSE(req->is_redirecting());
EXPECT_EQ(kExtraValue, d.data_received());
}
@@ -4675,31 +4614,30 @@ TEST_F(URLRequestTestHTTP, RedirectWithHeaderRemovalTest) {
GURL original_url = test_server_.GetURL(
"server-redirect?" + destination_url.spec());
RedirectWithHeaderRemovalDelegate d;
- URLRequest req(original_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.SetExtraRequestHeaderByName(kExtraHeaderToRemove, "dummy", false);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
+ req->SetExtraRequestHeaderByName(kExtraHeaderToRemove, "dummy", false);
+ req->Start();
base::RunLoop().Run();
std::string value;
- const HttpRequestHeaders& headers = req.extra_request_headers();
+ const HttpRequestHeaders& headers = req->extra_request_headers();
EXPECT_FALSE(headers.GetHeader(kExtraHeaderToRemove, &value));
- EXPECT_FALSE(req.is_pending());
- EXPECT_FALSE(req.is_redirecting());
+ EXPECT_FALSE(req->is_pending());
+ EXPECT_FALSE(req->is_redirecting());
EXPECT_EQ("None", d.data_received());
}
TEST_F(URLRequestTestHTTP, CancelTest) {
TestDelegate d;
{
- URLRequest r(GURL("http://www.google.com/"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ GURL("http://www.google.com/"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
- r.Cancel();
+ r->Cancel();
base::RunLoop().Run();
@@ -4716,22 +4654,20 @@ TEST_F(URLRequestTestHTTP, CancelTest2) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
d.set_cancel_in_response_started(true);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.bytes_received());
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
}
}
@@ -4740,15 +4676,13 @@ TEST_F(URLRequestTestHTTP, CancelTest3) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
d.set_cancel_in_received_data(true);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -4758,7 +4692,7 @@ TEST_F(URLRequestTestHTTP, CancelTest3) {
// or it could have been all the bytes.
// EXPECT_EQ(0, d.bytes_received());
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
}
}
@@ -4767,13 +4701,11 @@ TEST_F(URLRequestTestHTTP, CancelTest4) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
// The request will be implicitly canceled when it is destroyed. The
// test delegate must not post a quit message when this happens because
@@ -4796,27 +4728,23 @@ TEST_F(URLRequestTestHTTP, CancelTest5) {
// populate cache
{
TestDelegate d;
- URLRequest r(test_server_.GetURL("cachetime"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("cachetime"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
}
// cancel read from cache (see bug 990242)
{
TestDelegate d;
- URLRequest r(test_server_.GetURL("cachetime"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- r.Cancel();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("cachetime"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ r->Cancel();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::CANCELED, r.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, r->status().status());
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.bytes_received());
EXPECT_FALSE(d.received_data_before_response());
@@ -4838,18 +4766,18 @@ TEST_F(URLRequestTestHTTP, PostEmptyTest) {
TestDelegate d;
{
- URLRequest r(
- test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, &default_context_);
- r.set_method("POST");
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->set_method("POST");
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
ASSERT_EQ(1, d.response_started_count())
- << "request failed: " << r.status().status()
- << ", error: " << r.status().error();
+ << "request failed: " << r->status().status()
+ << ", error: " << r->status().error();
EXPECT_FALSE(d.received_data_before_response());
EXPECT_TRUE(d.data_received().empty());
@@ -4861,9 +4789,9 @@ TEST_F(URLRequestTestHTTP, PostFileTest) {
TestDelegate d;
{
- URLRequest r(
- test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, &default_context_);
- r.set_method("POST");
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->set_method("POST");
base::FilePath dir;
PathService::Get(base::DIR_EXE, &dir);
@@ -4883,11 +4811,11 @@ TEST_F(URLRequestTestHTTP, PostFileTest) {
0,
kuint64max,
base::Time()));
- r.set_upload(make_scoped_ptr(
+ r->set_upload(make_scoped_ptr(
new UploadDataStream(element_readers.Pass(), 0)));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -4898,8 +4826,8 @@ TEST_F(URLRequestTestHTTP, PostFileTest) {
ASSERT_EQ(size, base::ReadFile(path, buf.get(), size));
ASSERT_EQ(1, d.response_started_count())
- << "request failed: " << r.status().status()
- << ", error: " << r.status().error();
+ << "request failed: " << r->status().status()
+ << ", error: " << r->status().error();
EXPECT_FALSE(d.received_data_before_response());
@@ -4913,9 +4841,9 @@ TEST_F(URLRequestTestHTTP, PostUnreadableFileTest) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL("echo"), DEFAULT_PRIORITY,
- &d, &default_context_);
- r.set_method("POST");
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->set_method("POST");
ScopedVector<UploadElementReader> element_readers;
@@ -4926,19 +4854,19 @@ TEST_F(URLRequestTestHTTP, PostUnreadableFileTest) {
0,
kuint64max,
base::Time()));
- r.set_upload(make_scoped_ptr(
+ r->set_upload(make_scoped_ptr(
new UploadDataStream(element_readers.Pass(), 0)));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
EXPECT_TRUE(d.request_failed());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(0, d.bytes_received());
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
- EXPECT_EQ(ERR_FILE_NOT_FOUND, r.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
+ EXPECT_EQ(ERR_FILE_NOT_FOUND, r->status().error());
}
}
@@ -4947,17 +4875,17 @@ TEST_F(URLRequestTestHTTP, TestPostChunkedDataBeforeStart) {
TestDelegate d;
{
- URLRequest r(
- test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, &default_context_);
- r.EnableChunkedUpload();
- r.set_method("POST");
- AddChunksToUpload(&r);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->EnableChunkedUpload();
+ r->set_method("POST");
+ AddChunksToUpload(r.get());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- VerifyReceivedDataMatchesChunks(&r, &d);
+ VerifyReceivedDataMatchesChunks(r.get(), &d);
}
}
@@ -4966,16 +4894,16 @@ TEST_F(URLRequestTestHTTP, TestPostChunkedDataJustAfterStart) {
TestDelegate d;
{
- URLRequest r(
- test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, &default_context_);
- r.EnableChunkedUpload();
- r.set_method("POST");
- r.Start();
- EXPECT_TRUE(r.is_pending());
- AddChunksToUpload(&r);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->EnableChunkedUpload();
+ r->set_method("POST");
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
+ AddChunksToUpload(r.get());
base::RunLoop().Run();
- VerifyReceivedDataMatchesChunks(&r, &d);
+ VerifyReceivedDataMatchesChunks(r.get(), &d);
}
}
@@ -4984,18 +4912,18 @@ TEST_F(URLRequestTestHTTP, TestPostChunkedDataAfterStart) {
TestDelegate d;
{
- URLRequest r(
- test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, &default_context_);
- r.EnableChunkedUpload();
- r.set_method("POST");
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("echo"), DEFAULT_PRIORITY, &d, NULL));
+ r->EnableChunkedUpload();
+ r->set_method("POST");
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().RunUntilIdle();
- AddChunksToUpload(&r);
+ AddChunksToUpload(r.get());
base::RunLoop().Run();
- VerifyReceivedDataMatchesChunks(&r, &d);
+ VerifyReceivedDataMatchesChunks(r.get(), &d);
}
}
@@ -5003,17 +4931,16 @@ TEST_F(URLRequestTestHTTP, ResponseHeadersTest) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("files/with-headers.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/with-headers.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
- const HttpResponseHeaders* headers = req.response_headers();
+ const HttpResponseHeaders* headers = req->response_headers();
// Simple sanity check that response_info() accesses the same data.
- EXPECT_EQ(headers, req.response_info().headers.get());
+ EXPECT_EQ(headers, req->response_info().headers.get());
std::string header;
EXPECT_TRUE(headers->GetNormalizedHeader("cache-control", &header));
@@ -5039,11 +4966,10 @@ TEST_F(URLRequestTestHTTP, ProcessSTS) {
ASSERT_TRUE(https_test_server.Start());
TestDelegate d;
- URLRequest request(https_test_server.GetURL("files/hsts-headers.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- request.Start();
+ scoped_ptr<URLRequest> request(default_context_.CreateRequest(
+ https_test_server.GetURL("files/hsts-headers.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ request->Start();
base::RunLoop().Run();
TransportSecurityState* security_state =
@@ -5082,11 +5008,10 @@ TEST_F(URLRequestTestHTTP, MAYBE_ProcessPKP) {
ASSERT_TRUE(https_test_server.Start());
TestDelegate d;
- URLRequest request(https_test_server.GetURL("files/hpkp-headers.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- request.Start();
+ scoped_ptr<URLRequest> request(default_context_.CreateRequest(
+ https_test_server.GetURL("files/hpkp-headers.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ request->Start();
base::RunLoop().Run();
TransportSecurityState* security_state =
@@ -5111,12 +5036,10 @@ TEST_F(URLRequestTestHTTP, ProcessSTSOnce) {
ASSERT_TRUE(https_test_server.Start());
TestDelegate d;
- URLRequest request(
+ scoped_ptr<URLRequest> request(default_context_.CreateRequest(
https_test_server.GetURL("files/hsts-multiple-headers.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- request.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ request->Start();
base::RunLoop().Run();
// We should have set parameters from the first header, not the second.
@@ -5140,12 +5063,10 @@ TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP) {
ASSERT_TRUE(https_test_server.Start());
TestDelegate d;
- URLRequest request(
+ scoped_ptr<URLRequest> request(default_context_.CreateRequest(
https_test_server.GetURL("files/hsts-and-hpkp-headers.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- request.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ request->Start();
base::RunLoop().Run();
// We should have set parameters from the first header, not the second.
@@ -5181,12 +5102,10 @@ TEST_F(URLRequestTestHTTP, ProcessSTSAndPKP2) {
ASSERT_TRUE(https_test_server.Start());
TestDelegate d;
- URLRequest request(
+ scoped_ptr<URLRequest> request(default_context_.CreateRequest(
https_test_server.GetURL("files/hsts-and-hpkp-headers2.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- request.Start();
+ DEFAULT_PRIORITY, &d, NULL));
+ request->Start();
base::RunLoop().Run();
TransportSecurityState* security_state =
@@ -5211,21 +5130,20 @@ TEST_F(URLRequestTestHTTP, ContentTypeNormalizationTest) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("files/content-type-normalization.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/content-type-normalization.html"),
+ DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
std::string mime_type;
- req.GetMimeType(&mime_type);
+ req->GetMimeType(&mime_type);
EXPECT_EQ("text/html", mime_type);
std::string charset;
- req.GetCharset(&charset);
+ req->GetCharset(&charset);
EXPECT_EQ("utf-8", charset);
- req.Cancel();
+ req->Cancel();
}
TEST_F(URLRequestTestHTTP, ProtocolHandlerAndFactoryRestrictDataRedirects) {
@@ -5253,15 +5171,14 @@ TEST_F(URLRequestTestHTTP, RestrictFileRedirects) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("files/redirect-to-file.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/redirect-to-file.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
- EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, req->status().status());
+ EXPECT_EQ(ERR_UNSAFE_REDIRECT, req->status().error());
}
#endif // !defined(DISABLE_FILE_SUPPORT)
@@ -5269,30 +5186,28 @@ TEST_F(URLRequestTestHTTP, RestrictDataRedirects) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("files/redirect-to-data.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/redirect-to-data.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::MessageLoop::current()->Run();
- EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
- EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, req->status().status());
+ EXPECT_EQ(ERR_UNSAFE_REDIRECT, req->status().error());
}
TEST_F(URLRequestTestHTTP, RedirectToInvalidURL) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("files/redirect-to-invalid-url.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/redirect-to-invalid-url.html"),
+ DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
- EXPECT_EQ(ERR_INVALID_URL, req.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, req->status().status());
+ EXPECT_EQ(ERR_INVALID_URL, req->status().error());
}
// Make sure redirects are cached, despite not reading their bodies.
@@ -5303,31 +5218,33 @@ TEST_F(URLRequestTestHTTP, CacheRedirect) {
{
TestDelegate d;
- URLRequest req(redirect_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ redirect_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
EXPECT_EQ(1, d.received_redirect_count());
- EXPECT_EQ(test_server_.GetURL("echo"), req.url());
+ EXPECT_EQ(test_server_.GetURL("echo"), req->url());
}
{
TestDelegate d;
d.set_quit_on_redirect(true);
- URLRequest req(redirect_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ redirect_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
EXPECT_EQ(0, d.response_started_count());
- EXPECT_TRUE(req.was_cached());
+ EXPECT_TRUE(req->was_cached());
- req.FollowDeferredRedirect();
+ req->FollowDeferredRedirect();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
EXPECT_EQ(1, d.response_started_count());
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
- EXPECT_EQ(test_server_.GetURL("echo"), req.url());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
+ EXPECT_EQ(test_server_.GetURL("echo"), req->url());
}
}
@@ -5345,24 +5262,26 @@ TEST_F(URLRequestTestHTTP, NoCacheOnNetworkDelegateRedirect) {
redirect_to_url);
TestDelegate d;
- URLRequest req(initial_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ initial_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
EXPECT_EQ(1, d.received_redirect_count());
- EXPECT_EQ(redirect_to_url, req.url());
+ EXPECT_EQ(redirect_to_url, req->url());
}
{
TestDelegate d;
- URLRequest req(initial_url, DEFAULT_PRIORITY, &d, &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ initial_url, DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
- EXPECT_FALSE(req.was_cached());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
+ EXPECT_FALSE(req->was_cached());
EXPECT_EQ(0, d.received_redirect_count());
- EXPECT_EQ(initial_url, req.url());
+ EXPECT_EQ(initial_url, req->url());
}
}
@@ -5377,19 +5296,17 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectToWhitelistedUnsafeURL) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL("whatever"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("whatever"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(unsafe_url, r.url());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(unsafe_url, r->url());
EXPECT_EQ("this-is-considered-an-unsafe-url", d.data_received());
}
}
@@ -5407,16 +5324,14 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectToDifferentUnsafeURL) {
TestDelegate d;
{
- URLRequest r(test_server_.GetURL("whatever"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("whatever"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
- EXPECT_EQ(ERR_UNSAFE_REDIRECT, r.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
+ EXPECT_EQ(ERR_UNSAFE_REDIRECT, r->status().error());
}
}
@@ -5434,16 +5349,17 @@ TEST_F(URLRequestTestHTTP, UnsafeRedirectWithDifferentReferenceFragment) {
TestDelegate d;
{
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(expected_url, r.url());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(expected_url, r->url());
}
}
@@ -5462,16 +5378,17 @@ TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragmentAndUnrelatedUnsafeUrl) {
TestDelegate d;
{
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(expected_redirect_url, r.url());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(expected_redirect_url, r->url());
}
}
@@ -5489,16 +5406,17 @@ TEST_F(URLRequestTestHTTP, RedirectWithReferenceFragment) {
TestDelegate d;
{
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(redirect_url, r.url());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(redirect_url, r->url());
}
}
@@ -5511,32 +5429,31 @@ TEST_F(URLRequestTestHTTP, RedirectJobWithReferenceFragment) {
GURL redirect_url(test_server_.GetURL("echo"));
TestDelegate d;
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
URLRequestRedirectJob* job = new URLRequestRedirectJob(
- &r, &default_network_delegate_, redirect_url,
+ r.get(), &default_network_delegate_, redirect_url,
URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason");
AddTestInterceptor()->set_main_intercept_job(job);
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(redirect_url, r.url());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(redirect_url, r->url());
}
TEST_F(URLRequestTestHTTP, NoUserPassInReferrer) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Referer"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetReferrer("http://user:pass@foo.com/");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL));
+ req->SetReferrer("http://user:pass@foo.com/");
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(std::string("http://foo.com/"), d.data_received());
@@ -5546,12 +5463,10 @@ TEST_F(URLRequestTestHTTP, NoFragmentInReferrer) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Referer"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetReferrer("http://foo.com/test#fragment");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL));
+ req->SetReferrer("http://foo.com/test#fragment");
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(std::string("http://foo.com/test"), d.data_received());
@@ -5561,13 +5476,11 @@ TEST_F(URLRequestTestHTTP, EmptyReferrerAfterValidReferrer) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Referer"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.SetReferrer("http://foo.com/test#fragment");
- req.SetReferrer("");
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Referer"), DEFAULT_PRIORITY, &d, NULL));
+ req->SetReferrer("http://foo.com/test#fragment");
+ req->SetReferrer("");
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(std::string("None"), d.data_received());
@@ -5582,20 +5495,21 @@ TEST_F(URLRequestTestHTTP, DeferredBeforeNetworkStart) {
{
d.set_quit_on_network_start(true);
GURL test_url(test_server_.GetURL("echo"));
- URLRequest req(test_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_url, DEFAULT_PRIORITY, &d, NULL));
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_before_network_start_count());
EXPECT_EQ(0, d.response_started_count());
- req.ResumeNetworkStart();
+ req->ResumeNetworkStart();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_NE(0, d.bytes_received());
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
}
}
@@ -5608,23 +5522,22 @@ TEST_F(URLRequestTestHTTP, BeforeNetworkStartCalledOnce) {
{
d.set_quit_on_redirect(true);
d.set_quit_on_network_start(true);
- URLRequest req(test_server_.GetURL("server-redirect?echo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("server-redirect?echo"), DEFAULT_PRIORITY, &d,
+ NULL));
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_before_network_start_count());
EXPECT_EQ(0, d.response_started_count());
EXPECT_EQ(0, d.received_redirect_count());
- req.ResumeNetworkStart();
+ req->ResumeNetworkStart();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
- req.FollowDeferredRedirect();
+ req->FollowDeferredRedirect();
base::RunLoop().Run();
// Check that the redirect's new network transaction does not get propagated
@@ -5633,7 +5546,7 @@ TEST_F(URLRequestTestHTTP, BeforeNetworkStartCalledOnce) {
EXPECT_EQ(1, d.response_started_count());
EXPECT_NE(0, d.bytes_received());
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
}
}
@@ -5645,20 +5558,21 @@ TEST_F(URLRequestTestHTTP, CancelOnBeforeNetworkStart) {
{
d.set_quit_on_network_start(true);
GURL test_url(test_server_.GetURL("echo"));
- URLRequest req(test_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_url, DEFAULT_PRIORITY, &d, NULL));
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_before_network_start_count());
EXPECT_EQ(0, d.response_started_count());
- req.Cancel();
+ req->Cancel();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.bytes_received());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
}
@@ -5668,17 +5582,16 @@ TEST_F(URLRequestTestHTTP, CancelRedirect) {
TestDelegate d;
{
d.set_cancel_in_received_redirect(true);
- URLRequest req(test_server_.GetURL("files/redirect-test.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.bytes_received());
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
}
@@ -5689,19 +5602,20 @@ TEST_F(URLRequestTestHTTP, DeferredRedirect) {
{
d.set_quit_on_redirect(true);
GURL test_url(test_server_.GetURL("files/redirect-test.html"));
- URLRequest req(test_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_url, DEFAULT_PRIORITY, &d, NULL));
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
- req.FollowDeferredRedirect();
+ req->FollowDeferredRedirect();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
base::FilePath path;
PathService::Get(base::DIR_SOURCE_ROOT, &path);
@@ -5723,11 +5637,12 @@ TEST_F(URLRequestTestHTTP, DeferredRedirect_GetFullRequestHeaders) {
{
d.set_quit_on_redirect(true);
GURL test_url(test_server_.GetURL("files/redirect-test.html"));
- URLRequest req(test_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_url, DEFAULT_PRIORITY, &d, NULL));
EXPECT_FALSE(d.have_full_request_headers());
- req.Start();
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
@@ -5735,7 +5650,7 @@ TEST_F(URLRequestTestHTTP, DeferredRedirect_GetFullRequestHeaders) {
CheckFullRequestHeaders(d.full_request_headers(), test_url);
d.ClearFullRequestHeaders();
- req.FollowDeferredRedirect();
+ req->FollowDeferredRedirect();
base::RunLoop().Run();
GURL target_url(test_server_.GetURL("files/with-headers.html"));
@@ -5743,7 +5658,7 @@ TEST_F(URLRequestTestHTTP, DeferredRedirect_GetFullRequestHeaders) {
EXPECT_TRUE(d.have_full_request_headers());
CheckFullRequestHeaders(d.full_request_headers(), target_url);
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, req->status().status());
base::FilePath path;
PathService::Get(base::DIR_SOURCE_ROOT, &path);
@@ -5764,22 +5679,21 @@ TEST_F(URLRequestTestHTTP, CancelDeferredRedirect) {
TestDelegate d;
{
d.set_quit_on_redirect(true);
- URLRequest req(test_server_.GetURL("files/redirect-test.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/redirect-test.html"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.received_redirect_count());
- req.Cancel();
+ req->Cancel();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_EQ(0, d.bytes_received());
EXPECT_FALSE(d.received_data_before_response());
- EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status());
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
}
}
@@ -5789,58 +5703,55 @@ TEST_F(URLRequestTestHTTP, VaryHeader) {
// Populate the cache.
{
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheadercache?foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader("foo", "1");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
LoadTimingInfo load_timing_info;
- req.GetLoadTimingInfo(&load_timing_info);
+ req->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES);
}
// Expect a cache hit.
{
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheadercache?foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader("foo", "1");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
- EXPECT_TRUE(req.was_cached());
+ EXPECT_TRUE(req->was_cached());
LoadTimingInfo load_timing_info;
- req.GetLoadTimingInfo(&load_timing_info);
+ req->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingCacheHitNoNetwork(load_timing_info);
}
// Expect a cache miss.
{
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheadercache?foo"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheadercache?foo"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader("foo", "2");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
- EXPECT_FALSE(req.was_cached());
+ EXPECT_FALSE(req->was_cached());
LoadTimingInfo load_timing_info;
- req.GetLoadTimingInfo(&load_timing_info);
+ req->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES);
}
}
@@ -5853,11 +5764,9 @@ TEST_F(URLRequestTestHTTP, BasicAuth) {
TestDelegate d;
d.set_credentials(AuthCredentials(kUser, kSecret));
- URLRequest r(test_server_.GetURL("auth-basic"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
@@ -5871,19 +5780,17 @@ TEST_F(URLRequestTestHTTP, BasicAuth) {
TestDelegate d;
d.set_credentials(AuthCredentials(kUser, kSecret));
- URLRequest r(test_server_.GetURL("auth-basic"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.SetLoadFlags(LOAD_VALIDATE_CACHE);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL));
+ r->SetLoadFlags(LOAD_VALIDATE_CACHE);
+ r->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos);
// Should be the same cached document.
- EXPECT_TRUE(r.was_cached());
+ EXPECT_TRUE(r->was_cached());
}
}
@@ -5906,8 +5813,9 @@ TEST_F(URLRequestTestHTTP, BasicAuthWithCookies) {
TestDelegate d;
d.set_credentials(AuthCredentials(kUser, kSecret));
- URLRequest r(url_requiring_auth, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url_requiring_auth, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
@@ -5935,8 +5843,9 @@ TEST_F(URLRequestTestHTTP, BasicAuthWithCookies) {
replacements.SetPasswordStr(password);
GURL url_with_identity = url_requiring_auth.ReplaceComponents(replacements);
- URLRequest r(url_with_identity, DEFAULT_PRIORITY, &d, &context);
- r.Start();
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ url_with_identity, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
@@ -5957,11 +5866,9 @@ TEST_F(URLRequestTestHTTP, BasicAuthLoadTiming) {
TestDelegate d;
d.set_credentials(AuthCredentials(kUser, kSecret));
- URLRequest r(test_server_.GetURL("auth-basic"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
@@ -5974,7 +5881,7 @@ TEST_F(URLRequestTestHTTP, BasicAuthLoadTiming) {
CONNECT_TIMING_HAS_DNS_TIMES);
LoadTimingInfo load_timing_info;
- r.GetLoadTimingInfo(&load_timing_info);
+ r->GetLoadTimingInfo(&load_timing_info);
// The test server does not support keep alive sockets, so the second
// request with auth should use a new socket.
TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES);
@@ -5991,24 +5898,22 @@ TEST_F(URLRequestTestHTTP, BasicAuthLoadTiming) {
TestDelegate d;
d.set_credentials(AuthCredentials(kUser, kSecret));
- URLRequest r(test_server_.GetURL("auth-basic"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.SetLoadFlags(LOAD_VALIDATE_CACHE);
- r.Start();
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("auth-basic"), DEFAULT_PRIORITY, &d, NULL));
+ r->SetLoadFlags(LOAD_VALIDATE_CACHE);
+ r->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.data_received().find("user/secret") != std::string::npos);
// Should be the same cached document.
- EXPECT_TRUE(r.was_cached());
+ EXPECT_TRUE(r->was_cached());
// Since there was a request that went over the wire, the load timing
// information should include connection times.
LoadTimingInfo load_timing_info;
- r.GetLoadTimingInfo(&load_timing_info);
+ r->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingNotReused(load_timing_info, CONNECT_TIMING_HAS_DNS_TIMES);
}
}
@@ -6023,12 +5928,11 @@ TEST_F(URLRequestTestHTTP, Post302RedirectGet) {
const char kData[] = "hello world";
TestDelegate d;
- URLRequest req(test_server_.GetURL("files/redirect-to-echoall"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("POST");
- req.set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("files/redirect-to-echoall"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->set_method("POST");
+ req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
// Set headers (some of which are specific to the POST).
HttpRequestHeaders headers;
@@ -6041,12 +5945,12 @@ TEST_F(URLRequestTestHTTP, Post302RedirectGet) {
"Accept-Charset: ISO-8859-1,*,utf-8\r\n"
"Content-Length: 11\r\n"
"Origin: http://localhost:1337/");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
std::string mime_type;
- req.GetMimeType(&mime_type);
+ req->GetMimeType(&mime_type);
EXPECT_EQ("text/html", mime_type);
const std::string& data = d.data_received();
@@ -6125,14 +6029,15 @@ TEST_F(URLRequestTestHTTP, NoRedirectOn308WithoutLocationHeader) {
TestDelegate d;
const GURL url = test_server_.GetURL("files/308-without-location-header");
- URLRequest request(url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> request(default_context_.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
- request.Start();
+ request->Start();
base::RunLoop().Run();
- EXPECT_EQ(URLRequestStatus::SUCCESS, request.status().status());
- EXPECT_EQ(OK, request.status().error());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status());
+ EXPECT_EQ(OK, request->status().error());
EXPECT_EQ(0, d.received_redirect_count());
- EXPECT_EQ(308, request.response_headers()->response_code());
+ EXPECT_EQ(308, request->response_headers()->response_code());
EXPECT_EQ("This is not a redirect.", d.data_received());
}
@@ -6144,16 +6049,17 @@ TEST_F(URLRequestTestHTTP, Redirect302PreserveReferenceFragment) {
TestDelegate d;
{
- URLRequest r(original_url, DEFAULT_PRIORITY, &d, &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ original_url, DEFAULT_PRIORITY, &d, NULL));
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(original_url, r.original_url());
- EXPECT_EQ(expected_url, r.url());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(original_url, r->original_url());
+ EXPECT_EQ(expected_url, r->url());
}
}
@@ -6165,16 +6071,17 @@ TEST_F(URLRequestTestHTTP, RedirectPreserveFirstPartyURL) {
TestDelegate d;
{
- URLRequest r(url, DEFAULT_PRIORITY, &d, &default_context_);
- r.set_first_party_for_cookies(first_party_url);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->set_first_party_for_cookies(first_party_url);
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(first_party_url, r.first_party_for_cookies());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(first_party_url, r->first_party_for_cookies());
}
}
@@ -6187,18 +6094,19 @@ TEST_F(URLRequestTestHTTP, RedirectUpdateFirstPartyURL) {
TestDelegate d;
{
- URLRequest r(url, DEFAULT_PRIORITY, &d, &default_context_);
- r.set_first_party_for_cookies(original_first_party_url);
- r.set_first_party_url_policy(
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->set_first_party_for_cookies(original_first_party_url);
+ r->set_first_party_url_policy(
URLRequest::UPDATE_FIRST_PARTY_URL_ON_REDIRECT);
- r.Start();
+ r->Start();
base::RunLoop().Run();
- EXPECT_EQ(2U, r.url_chain().size());
- EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status());
- EXPECT_EQ(OK, r.status().error());
- EXPECT_EQ(expected_first_party_url, r.first_party_for_cookies());
+ EXPECT_EQ(2U, r->url_chain().size());
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status());
+ EXPECT_EQ(OK, r->status().error());
+ EXPECT_EQ(expected_first_party_url, r->first_party_for_cookies());
}
}
@@ -6208,25 +6116,23 @@ TEST_F(URLRequestTestHTTP, InterceptPost302RedirectGet) {
const char kData[] = "hello world";
TestDelegate d;
- URLRequest req(test_server_.GetURL("empty.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("POST");
- req.set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("POST");
+ req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
- req.SetExtraRequestHeaders(headers);
+ req->SetExtraRequestHeaders(headers);
URLRequestRedirectJob* job = new URLRequestRedirectJob(
- &req, &default_network_delegate_, test_server_.GetURL("echo"),
+ req.get(), &default_network_delegate_, test_server_.GetURL("echo"),
URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason");
AddTestInterceptor()->set_main_intercept_job(job);
- req.Start();
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ("GET", req.method());
+ EXPECT_EQ("GET", req->method());
}
TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) {
@@ -6235,26 +6141,24 @@ TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) {
const char kData[] = "hello world";
TestDelegate d;
- URLRequest req(test_server_.GetURL("empty.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.set_method("POST");
- req.set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("POST");
+ req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kContentLength,
base::UintToString(arraysize(kData) - 1));
- req.SetExtraRequestHeaders(headers);
+ req->SetExtraRequestHeaders(headers);
URLRequestRedirectJob* job = new URLRequestRedirectJob(
- &req, &default_network_delegate_, test_server_.GetURL("echo"),
+ req.get(), &default_network_delegate_, test_server_.GetURL("echo"),
URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT,
"Very Good Reason");
AddTestInterceptor()->set_main_intercept_job(job);
- req.Start();
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ("POST", req.method());
+ EXPECT_EQ("POST", req->method());
EXPECT_EQ(kData, d.data_received());
}
@@ -6270,11 +6174,10 @@ TEST_F(URLRequestTestHTTP, DefaultAcceptLanguage) {
context.Init();
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Accept-Language"),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ("en", d.data_received());
}
@@ -6294,11 +6197,10 @@ TEST_F(URLRequestTestHTTP, EmptyAcceptLanguage) {
context.set_http_user_agent_settings(&settings);
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Accept-Language"),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ("None", d.data_received());
}
@@ -6309,14 +6211,13 @@ TEST_F(URLRequestTestHTTP, OverrideAcceptLanguage) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Accept-Language"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Accept-Language"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kAcceptLanguage, "ru");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(std::string("ru"), d.data_received());
}
@@ -6326,13 +6227,12 @@ TEST_F(URLRequestTestHTTP, DefaultAcceptEncoding) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Accept-Encoding"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Accept-Encoding"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(ContainsString(d.data_received(), "gzip"));
}
@@ -6343,14 +6243,13 @@ TEST_F(URLRequestTestHTTP, OverrideAcceptEncoding) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Accept-Encoding"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Accept-Encoding"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kAcceptEncoding, "identity");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
EXPECT_FALSE(ContainsString(d.data_received(), "gzip"));
EXPECT_TRUE(ContainsString(d.data_received(), "identity"));
@@ -6361,14 +6260,13 @@ TEST_F(URLRequestTestHTTP, SetAcceptCharset) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?Accept-Charset"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kAcceptCharset, "koi-8r");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(std::string("koi-8r"), d.data_received());
}
@@ -6378,13 +6276,12 @@ TEST_F(URLRequestTestHTTP, DefaultUserAgent) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?User-Agent"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- req.Start();
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?User-Agent"), DEFAULT_PRIORITY, &d,
+ NULL));
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ(req.context()->http_user_agent_settings()->GetUserAgent(),
+ EXPECT_EQ(default_context_.http_user_agent_settings()->GetUserAgent(),
d.data_received());
}
@@ -6394,14 +6291,13 @@ TEST_F(URLRequestTestHTTP, OverrideUserAgent) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("echoheader?User-Agent"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("echoheader?User-Agent"), DEFAULT_PRIORITY, &d,
+ NULL));
HttpRequestHeaders headers;
headers.SetHeader(HttpRequestHeaders::kUserAgent, "Lynx (textmode)");
- req.SetExtraRequestHeaders(headers);
- req.Start();
+ req->SetExtraRequestHeaders(headers);
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(std::string("Lynx (textmode)"), d.data_received());
}
@@ -6429,9 +6325,9 @@ TEST_F(URLRequestTestHTTP, EmptyHttpUserAgentSettings) {
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); i++) {
TestDelegate d;
- URLRequest req(
- test_server_.GetURL(tests[i].request), DEFAULT_PRIORITY, &d, &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ test_server_.GetURL(tests[i].request), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_EQ(tests[i].expected_response, d.data_received())
<< " Request = \"" << tests[i].request << "\"";
@@ -6444,24 +6340,22 @@ TEST_F(URLRequestTestHTTP, SetSubsequentJobPriority) {
ASSERT_TRUE(test_server_.Start());
TestDelegate d;
- URLRequest req(test_server_.GetURL("empty.html"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- EXPECT_EQ(DEFAULT_PRIORITY, req.priority());
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ test_server_.GetURL("empty.html"), DEFAULT_PRIORITY, &d, NULL));
+ EXPECT_EQ(DEFAULT_PRIORITY, req->priority());
scoped_refptr<URLRequestRedirectJob> redirect_job =
new URLRequestRedirectJob(
- &req, &default_network_delegate_, test_server_.GetURL("echo"),
+ req.get(), &default_network_delegate_, test_server_.GetURL("echo"),
URLRequestRedirectJob::REDIRECT_302_FOUND, "Very Good Reason");
AddTestInterceptor()->set_main_intercept_job(redirect_job.get());
- req.SetPriority(LOW);
- req.Start();
- EXPECT_TRUE(req.is_pending());
+ req->SetPriority(LOW);
+ req->Start();
+ EXPECT_TRUE(req->is_pending());
scoped_refptr<URLRequestTestJob> job =
- new URLRequestTestJob(&req, &default_network_delegate_);
+ new URLRequestTestJob(req.get(), &default_network_delegate_);
AddTestInterceptor()->set_main_intercept_job(job.get());
// Should trigger |job| to be started.
@@ -6496,16 +6390,14 @@ TEST_F(URLRequestTestHTTP, NetworkSuspendTest) {
context.Init();
TestDelegate d;
- URLRequest req(GURL("http://127.0.0.1/"),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ GURL("http://127.0.0.1/"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.request_failed());
- EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
- EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, req->status().status());
+ EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req->status().error());
}
// Check that creating a network request while entering/exiting suspend mode
@@ -6531,16 +6423,14 @@ TEST_F(URLRequestTestHTTP, NetworkSuspendTestNoCache) {
context.Init();
TestDelegate d;
- URLRequest req(GURL("http://127.0.0.1/"),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.Start();
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ GURL("http://127.0.0.1/"), DEFAULT_PRIORITY, &d, NULL));
+ req->Start();
base::RunLoop().Run();
EXPECT_TRUE(d.request_failed());
- EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
- EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req.status().error());
+ EXPECT_EQ(URLRequestStatus::FAILED, req->status().status());
+ EXPECT_EQ(ERR_NETWORK_IO_SUSPENDED, req->status().error());
}
class HTTPSRequestTest : public testing::Test {
@@ -6565,23 +6455,21 @@ TEST_F(HTTPSRequestTest, HTTPSGetTest) {
TestDelegate d;
{
- URLRequest r(test_server.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_NE(0, d.bytes_received());
- CheckSSLInfo(r.ssl_info());
+ CheckSSLInfo(r->ssl_info());
EXPECT_EQ(test_server.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
}
}
@@ -6599,13 +6487,11 @@ TEST_F(HTTPSRequestTest, HTTPSMismatchedTest) {
TestDelegate d;
{
d.set_allow_certificate_errors(err_allowed);
- URLRequest r(test_server.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6614,7 +6500,7 @@ TEST_F(HTTPSRequestTest, HTTPSMismatchedTest) {
EXPECT_TRUE(d.have_certificate_errors());
if (err_allowed) {
EXPECT_NE(0, d.bytes_received());
- CheckSSLInfo(r.ssl_info());
+ CheckSSLInfo(r->ssl_info());
} else {
EXPECT_EQ(0, d.bytes_received());
}
@@ -6638,13 +6524,11 @@ TEST_F(HTTPSRequestTest, HTTPSExpiredTest) {
TestDelegate d;
{
d.set_allow_certificate_errors(err_allowed);
- URLRequest r(test_server.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6653,7 +6537,7 @@ TEST_F(HTTPSRequestTest, HTTPSExpiredTest) {
EXPECT_TRUE(d.have_certificate_errors());
if (err_allowed) {
EXPECT_NE(0, d.bytes_received());
- CheckSSLInfo(r.ssl_info());
+ CheckSSLInfo(r->ssl_info());
} else {
EXPECT_EQ(0, d.bytes_received());
}
@@ -6688,14 +6572,13 @@ TEST_F(HTTPSRequestTest, HTTPSPreloadedHSTSTest) {
context.Init();
TestDelegate d;
- URLRequest r(GURL(base::StringPrintf("https://www.google.com:%d",
- test_server.host_port_pair().port())),
- DEFAULT_PRIORITY,
- &d,
- &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ GURL(base::StringPrintf("https://www.google.com:%d",
+ test_server.host_port_pair().port())),
+ DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6741,14 +6624,13 @@ TEST_F(HTTPSRequestTest, HTTPSErrorsNoClobberTSSTest) {
"www.google.com", &dynamic_domain_state));
TestDelegate d;
- URLRequest r(GURL(base::StringPrintf("https://www.google.com:%d",
- test_server.host_port_pair().port())),
- DEFAULT_PRIORITY,
- &d,
- &context);
+ scoped_ptr<URLRequest> r(context.CreateRequest(
+ GURL(base::StringPrintf("https://www.google.com:%d",
+ test_server.host_port_pair().port())),
+ DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6816,19 +6698,18 @@ TEST_F(HTTPSRequestTest, HSTSPreservesPosts) {
// cause a certificate error. Ignore the error.
d.set_allow_certificate_errors(true);
- URLRequest req(GURL(base::StringPrintf("http://www.somewhere.com:%d/echo",
- test_server.host_port_pair().port())),
- DEFAULT_PRIORITY,
- &d,
- &context);
- req.set_method("POST");
- req.set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
+ scoped_ptr<URLRequest> req(context.CreateRequest(
+ GURL(base::StringPrintf("http://www.somewhere.com:%d/echo",
+ test_server.host_port_pair().port())),
+ DEFAULT_PRIORITY, &d, NULL));
+ req->set_method("POST");
+ req->set_upload(make_scoped_ptr(CreateSimpleUploadData(kData)));
- req.Start();
+ req->Start();
base::RunLoop().Run();
- EXPECT_EQ("https", req.url().scheme());
- EXPECT_EQ("POST", req.method());
+ EXPECT_EQ("https", req->url().scheme());
+ EXPECT_EQ("POST", req->method());
EXPECT_EQ(kData, d.data_received());
LoadTimingInfo load_timing_info;
@@ -6874,13 +6755,11 @@ TEST_F(HTTPSRequestTest, ClientAuthTest) {
SSLClientAuthTestDelegate d;
{
- URLRequest r(test_server.GetURL(std::string()),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6891,7 +6770,7 @@ TEST_F(HTTPSRequestTest, ClientAuthTest) {
// Send no certificate.
// TODO(davidben): Get temporary client cert import (with keys) working on
// all platforms so we can test sending a cert as well.
- r.ContinueWithCertificate(NULL);
+ r->ContinueWithCertificate(NULL);
base::RunLoop().Run();
@@ -6916,13 +6795,11 @@ TEST_F(HTTPSRequestTest, ResumeTest) {
{
TestDelegate d;
- URLRequest r(test_server.GetURL("ssl-session-cache"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6934,13 +6811,11 @@ TEST_F(HTTPSRequestTest, ResumeTest) {
{
TestDelegate d;
- URLRequest r(test_server.GetURL("ssl-session-cache"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -6989,13 +6864,11 @@ TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
{
TestDelegate d;
- URLRequest r(test_server.GetURL("ssl-session-cache"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -7023,13 +6896,11 @@ TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
{
TestDelegate d;
- URLRequest r(test_server.GetURL("ssl-session-cache"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -7077,9 +6948,8 @@ class HTTPSFallbackTest : public testing::Test {
base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
ASSERT_TRUE(test_server.Start());
- request_.reset(new URLRequest(
- test_server.GetURL(std::string()), DEFAULT_PRIORITY,
- &delegate_, &context_));
+ request_ = context_.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &delegate_, NULL);
request_->Start();
base::RunLoop().Run();
@@ -7254,13 +7124,11 @@ TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
cert_verifier_.set_default_result(ERR_CERT_DATE_INVALID);
{
TestDelegate d;
- URLRequest r(test_server.GetURL("ssl-session-cache"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -7275,13 +7143,11 @@ TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
cert_verifier_.set_default_result(OK);
{
TestDelegate d;
- URLRequest r(test_server.GetURL("ssl-session-cache"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d, NULL));
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
@@ -7402,14 +7268,14 @@ class HTTPSOCSPTest : public HTTPSRequestTest {
TestDelegate d;
d.set_allow_certificate_errors(true);
- URLRequest r(
- test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, &context_);
- r.Start();
+ scoped_ptr<URLRequest> r(context_.CreateRequest(
+ test_server.GetURL(std::string()), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
base::RunLoop().Run();
EXPECT_EQ(1, d.response_started_count());
- *out_cert_status = r.ssl_info().cert_status;
+ *out_cert_status = r->ssl_info().cert_status;
}
virtual ~HTTPSOCSPTest() {
@@ -7858,15 +7724,16 @@ TEST_F(URLRequestTestFTP, UnsafePort) {
TestDelegate d;
{
- URLRequest r(url, DEFAULT_PRIORITY, &d, &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ url, DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_FALSE(r.is_pending());
- EXPECT_EQ(URLRequestStatus::FAILED, r.status().status());
- EXPECT_EQ(ERR_UNSAFE_PORT, r.status().error());
+ EXPECT_FALSE(r->is_pending());
+ EXPECT_EQ(URLRequestStatus::FAILED, r->status().status());
+ EXPECT_EQ(ERR_UNSAFE_PORT, r->status().error());
}
}
@@ -7876,21 +7743,21 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPDirectoryListing) {
TestDelegate d;
{
- URLRequest r(
- test_server_.GetURL("/"), DEFAULT_PRIORITY, &d, &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("/"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_LT(0, d.bytes_received());
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
}
}
@@ -7903,26 +7770,24 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPGetTestAnonymous) {
app_path = app_path.AppendASCII("LICENSE");
TestDelegate d;
{
- URLRequest r(test_server_.GetURL("/LICENSE"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size));
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
}
}
@@ -7935,30 +7800,28 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPGetTest) {
app_path = app_path.AppendASCII("LICENSE");
TestDelegate d;
{
- URLRequest r(
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(test_server_.host_port_pair().host(),
- r.GetSocketAddress().host());
+ r->GetSocketAddress().host());
EXPECT_EQ(test_server_.host_port_pair().port(),
- r.GetSocketAddress().port());
+ r->GetSocketAddress().port());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size));
LoadTimingInfo load_timing_info;
- r.GetLoadTimingInfo(&load_timing_info);
+ r->GetLoadTimingInfo(&load_timing_info);
TestLoadTimingNoHttpResponse(load_timing_info);
}
}
@@ -7972,20 +7835,19 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongPassword) {
app_path = app_path.AppendASCII("LICENSE");
TestDelegate d;
{
- URLRequest r(test_server_.GetURLWithUserAndPassword(
- "/LICENSE", "chrome", "wrong_password"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome",
+ "wrong_password"),
+ DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), 0);
@@ -8004,20 +7866,19 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongPasswordRestart) {
// the initial login with wrong credentials will fail.
d.set_credentials(AuthCredentials(kChrome, kChrome));
{
- URLRequest r(test_server_.GetURLWithUserAndPassword(
- "/LICENSE", "chrome", "wrong_password"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome",
+ "wrong_password"),
+ DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size));
@@ -8033,20 +7894,19 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUser) {
app_path = app_path.AppendASCII("LICENSE");
TestDelegate d;
{
- URLRequest r(test_server_.GetURLWithUserAndPassword(
- "/LICENSE", "wrong_user", "chrome"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURLWithUserAndPassword("/LICENSE", "wrong_user",
+ "chrome"),
+ DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), 0);
@@ -8065,20 +7925,19 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCheckWrongUserRestart) {
// the initial login with wrong credentials will fail.
d.set_credentials(AuthCredentials(kChrome, kChrome));
{
- URLRequest r(test_server_.GetURLWithUserAndPassword(
- "/LICENSE", "wrong_user", "chrome"),
- DEFAULT_PRIORITY,
- &d,
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURLWithUserAndPassword("/LICENSE", "wrong_user",
+ "chrome"),
+ DEFAULT_PRIORITY, &d, NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d.response_started_count());
EXPECT_FALSE(d.received_data_before_response());
EXPECT_EQ(d.bytes_received(), static_cast<int>(file_size));
@@ -8096,20 +7955,18 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCacheURLCredentials) {
scoped_ptr<TestDelegate> d(new TestDelegate);
{
// Pass correct login identity in the URL.
- URLRequest r(
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome", "chrome"),
- DEFAULT_PRIORITY,
- d.get(),
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ DEFAULT_PRIORITY, d.get(), NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d->response_started_count());
EXPECT_FALSE(d->received_data_before_response());
EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size));
@@ -8118,19 +7975,17 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCacheURLCredentials) {
d.reset(new TestDelegate);
{
// This request should use cached identity from previous request.
- URLRequest r(test_server_.GetURL("/LICENSE"),
- DEFAULT_PRIORITY,
- d.get(),
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, d.get(), NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d->response_started_count());
EXPECT_FALSE(d->received_data_before_response());
EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size));
@@ -8150,20 +8005,19 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCacheLoginBoxCredentials) {
// the initial login with wrong credentials will fail.
d->set_credentials(AuthCredentials(kChrome, kChrome));
{
- URLRequest r(test_server_.GetURLWithUserAndPassword(
- "/LICENSE", "chrome", "wrong_password"),
- DEFAULT_PRIORITY,
- d.get(),
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURLWithUserAndPassword("/LICENSE", "chrome",
+ "wrong_password"),
+ DEFAULT_PRIORITY, d.get(), NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d->response_started_count());
EXPECT_FALSE(d->received_data_before_response());
EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size));
@@ -8175,19 +8029,17 @@ TEST_F(URLRequestTestFTP, DISABLED_FTPCacheLoginBoxCredentials) {
{
// Don't pass wrong credentials in the URL, they would override valid cached
// ones.
- URLRequest r(test_server_.GetURL("/LICENSE"),
- DEFAULT_PRIORITY,
- d.get(),
- &default_context_);
- r.Start();
- EXPECT_TRUE(r.is_pending());
+ scoped_ptr<URLRequest> r(default_context_.CreateRequest(
+ test_server_.GetURL("/LICENSE"), DEFAULT_PRIORITY, d.get(), NULL));
+ r->Start();
+ EXPECT_TRUE(r->is_pending());
base::RunLoop().Run();
int64 file_size = 0;
base::GetFileSize(app_path, &file_size);
- EXPECT_FALSE(r.is_pending());
+ EXPECT_FALSE(r->is_pending());
EXPECT_EQ(1, d->response_started_count());
EXPECT_FALSE(d->received_data_before_response());
EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size));
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc
index c9513d7..b609632 100644
--- a/net/websockets/websocket_stream.cc
+++ b/net/websockets/websocket_stream.cc
@@ -86,7 +86,8 @@ class StreamRequestImpl : public WebSocketStreamRequest {
scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate,
scoped_ptr<WebSocketHandshakeStreamCreateHelper> create_helper)
: delegate_(new Delegate(this)),
- url_request_(url, DEFAULT_PRIORITY, delegate_.get(), context),
+ url_request_(context->CreateRequest(url, DEFAULT_PRIORITY,
+ delegate_.get(), NULL)),
connect_delegate_(connect_delegate.Pass()),
create_helper_(create_helper.release()) {
create_helper_->set_failure_message(&failure_message_);
@@ -96,15 +97,15 @@ class StreamRequestImpl : public WebSocketStreamRequest {
headers.SetHeader(HttpRequestHeaders::kOrigin, origin.string());
headers.SetHeader(websockets::kSecWebSocketVersion,
websockets::kSupportedVersion);
- url_request_.SetExtraRequestHeaders(headers);
+ url_request_->SetExtraRequestHeaders(headers);
// This passes the ownership of |create_helper_| to |url_request_|.
- url_request_.SetUserData(
+ url_request_->SetUserData(
WebSocketHandshakeStreamBase::CreateHelper::DataKey(),
create_helper_);
- url_request_.SetLoadFlags(LOAD_DISABLE_CACHE |
- LOAD_BYPASS_CACHE |
- LOAD_DO_NOT_PROMPT_FOR_LOGIN);
+ url_request_->SetLoadFlags(LOAD_DISABLE_CACHE |
+ LOAD_BYPASS_CACHE |
+ LOAD_DO_NOT_PROMPT_FOR_LOGIN);
}
// Destroying this object destroys the URLRequest, which cancels the request
@@ -112,7 +113,7 @@ class StreamRequestImpl : public WebSocketStreamRequest {
virtual ~StreamRequestImpl() {}
void Start() {
- url_request_.Start();
+ url_request_->Start();
}
void PerformUpgrade() {
@@ -121,7 +122,7 @@ class StreamRequestImpl : public WebSocketStreamRequest {
void ReportFailure() {
if (failure_message_.empty()) {
- switch (url_request_.status().status()) {
+ switch (url_request_->status().status()) {
case URLRequestStatus::SUCCESS:
case URLRequestStatus::IO_PENDING:
break;
@@ -131,7 +132,7 @@ class StreamRequestImpl : public WebSocketStreamRequest {
case URLRequestStatus::FAILED:
failure_message_ =
std::string("Error in connection establishment: ") +
- ErrorToString(url_request_.status().error());
+ ErrorToString(url_request_->status().error());
break;
}
}
@@ -144,9 +145,9 @@ class StreamRequestImpl : public WebSocketStreamRequest {
void OnFinishOpeningHandshake() {
WebSocketDispatchOnFinishOpeningHandshake(connect_delegate(),
- url_request_.url(),
- url_request_.response_headers(),
- url_request_.response_time());
+ url_request_->url(),
+ url_request_->response_headers(),
+ url_request_->response_time());
}
WebSocketStream::ConnectDelegate* connect_delegate() const {
@@ -160,7 +161,7 @@ class StreamRequestImpl : public WebSocketStreamRequest {
// Deleting the StreamRequestImpl object deletes this URLRequest object,
// cancelling the whole connection.
- URLRequest url_request_;
+ scoped_ptr<URLRequest> url_request_;
scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate_;