summaryrefslogtreecommitdiff
path: root/chromium/net/test
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/test')
-rw-r--r--chromium/net/test/ct_test_util.cc29
-rw-r--r--chromium/net/test/ct_test_util.h7
-rw-r--r--chromium/net/test/embedded_test_server/default_handlers.cc88
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server.cc52
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server.h43
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server_connection_listener.h2
-rw-r--r--chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc56
-rw-r--r--chromium/net/test/embedded_test_server/http_connection.cc2
-rw-r--r--chromium/net/test/embedded_test_server/http_connection.h9
-rw-r--r--chromium/net/test/embedded_test_server/http_request.cc4
-rw-r--r--chromium/net/test/embedded_test_server/http_request.h10
-rw-r--r--chromium/net/test/embedded_test_server/http_request_unittest.cc15
-rw-r--r--chromium/net/test/embedded_test_server/request_handler_util.cc15
-rw-r--r--chromium/net/test/embedded_test_server/request_handler_util.h9
-rw-r--r--chromium/net/test/net_test_suite.cc4
-rw-r--r--chromium/net/test/net_test_suite.h6
-rw-r--r--chromium/net/test/python_utils.cc5
-rw-r--r--chromium/net/test/python_utils_unittest.cc7
-rw-r--r--chromium/net/test/run_all_unittests.cc10
-rw-r--r--chromium/net/test/spawned_test_server/base_test_server.cc23
-rw-r--r--chromium/net/test/spawned_test_server/base_test_server.h6
-rw-r--r--chromium/net/test/spawned_test_server/remote_test_server.h2
-rw-r--r--chromium/net/test/spawned_test_server/spawner_communicator.cc5
-rw-r--r--chromium/net/test/spawned_test_server/spawner_communicator.h8
-rw-r--r--chromium/net/test/url_request/ssl_certificate_error_job.cc4
-rw-r--r--chromium/net/test/url_request/url_request_failed_job.cc6
-rw-r--r--chromium/net/test/url_request/url_request_hanging_read_job.cc119
-rw-r--r--chromium/net/test/url_request/url_request_hanging_read_job.h48
-rw-r--r--chromium/net/test/url_request/url_request_mock_data_job.cc7
-rw-r--r--chromium/net/test/url_request/url_request_mock_http_job.cc8
-rw-r--r--chromium/net/test/url_request/url_request_mock_http_job.h6
-rw-r--r--chromium/net/test/url_request/url_request_slow_download_job.cc10
32 files changed, 435 insertions, 190 deletions
diff --git a/chromium/net/test/ct_test_util.cc b/chromium/net/test/ct_test_util.cc
index 9bc6f958da7..6f2a47e6da7 100644
--- a/chromium/net/test/ct_test_util.cc
+++ b/chromium/net/test/ct_test_util.cc
@@ -15,6 +15,7 @@
#include "base/strings/stringprintf.h"
#include "net/cert/ct_serialization.h"
#include "net/cert/ct_verify_result.h"
+#include "net/cert/merkle_tree_leaf.h"
#include "net/cert/signed_tree_head.h"
#include "net/cert/x509_certificate.h"
@@ -78,6 +79,8 @@ const char kDefaultDerTbsCert[] =
"41310e300c0603550408130557616c65733110300e060355040713074572772057656e8201"
"0030090603551d1304023000";
+const char kDefaultExtensions[] = "666f6f626172"; // "foobar"
+
const char kTestDigitallySigned[] =
"0403004730450220606e10ae5c2d5a1b0aed49dc4937f48de71a4e9784e9c208dfbfe9ef53"
"6cf7f2022100beb29c72d7d06d61d06bdb38a069469aa86fe12e18bb7cc45689a2c0187ef5"
@@ -97,6 +100,8 @@ const char kEcP256PublicKey[] =
const char kTestKeyId[] =
"df1c2ec11500945247a96168325ddc5c7959e8f7c6d388fc002e0bbd3f74d764";
+const int64_t kTestTimestamp = INT64_C(1396877277237);
+
const char kTestSCTSignatureData[] =
"30450220606e10ae5c2d5a1b0aed49dc4937f48de71a4e9784e9c208dfbfe9ef536cf7f202"
"2100beb29c72d7d06d61d06bdb38a069469aa86fe12e18bb7cc45689a2c0187ef5a5";
@@ -155,7 +160,6 @@ const char kFakeOCSPResponseIssuerCert[] =
"3ea1e11df2ccb357a5fed5220f9c6239e8946b9b7517707631d51ab996833d58a022cff5a6"
"2169ac9258ec110efee78da9ab4a641e3b3c9ee5e8bd291460";
-
const char kFakeOCSPExtensionValue[] = "74657374"; // "test"
// For the sample STH
@@ -166,7 +170,6 @@ const char kSampleSTHTreeHeadSignature[] =
"6c7a20022100e38464f3c0fd066257b982074f7ac87655e0c8f714768a050b4be9a7b441cb"
"d3";
size_t kSampleSTHTreeSize = 21u;
-int64_t kSampleSTHTimestamp = INT64_C(1396877277237);
} // namespace
@@ -175,6 +178,13 @@ void GetX509CertLogEntry(LogEntry* entry) {
entry->leaf_certificate = HexToBytes(kDefaultDerCert);
}
+void GetX509CertTreeLeaf(MerkleTreeLeaf* tree_leaf) {
+ tree_leaf->log_id = HexToBytes(kTestKeyId);
+ tree_leaf->timestamp = base::Time::FromJsTime(kTestTimestamp);
+ GetX509CertLogEntry(&tree_leaf->log_entry);
+ tree_leaf->extensions = HexToBytes(kDefaultExtensions);
+}
+
std::string GetDerEncodedX509Cert() { return HexToBytes(kDefaultDerCert); }
void GetPrecertLogEntry(LogEntry* entry) {
@@ -184,6 +194,13 @@ void GetPrecertLogEntry(LogEntry* entry) {
entry->tbs_certificate = HexToBytes(kDefaultDerTbsCert);
}
+void GetPrecertTreeLeaf(MerkleTreeLeaf* tree_leaf) {
+ tree_leaf->log_id = HexToBytes(kTestKeyId);
+ tree_leaf->timestamp = base::Time::FromJsTime(kTestTimestamp);
+ GetPrecertLogEntry(&tree_leaf->log_entry);
+ tree_leaf->extensions = HexToBytes(kDefaultExtensions);
+}
+
std::string GetTestDigitallySigned() {
return HexToBytes(kTestDigitallySigned);
}
@@ -204,7 +221,7 @@ void GetX509CertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) {
CHECK(sct_ref != NULL);
*sct_ref = new SignedCertificateTimestamp();
SignedCertificateTimestamp *const sct(sct_ref->get());
- sct->version = ct::SignedCertificateTimestamp::SCT_VERSION_1;
+ sct->version = ct::SignedCertificateTimestamp::V1;
sct->log_id = HexToBytes(kTestKeyId);
// Time the log issued a SCT for this certificate, which is
// Fri Apr 5 10:04:16.089 2013
@@ -221,7 +238,7 @@ void GetPrecertSCT(scoped_refptr<SignedCertificateTimestamp>* sct_ref) {
CHECK(sct_ref != NULL);
*sct_ref = new SignedCertificateTimestamp();
SignedCertificateTimestamp *const sct(sct_ref->get());
- sct->version = ct::SignedCertificateTimestamp::SCT_VERSION_1;
+ sct->version = ct::SignedCertificateTimestamp::V1;
sct->log_id = HexToBytes(kTestKeyId);
// Time the log issued a SCT for this Precertificate, which is
// Fri Apr 5 10:04:16.275 2013
@@ -258,7 +275,7 @@ std::string GetDerEncodedFakeOCSPResponseIssuerCert() {
bool GetSampleSignedTreeHead(SignedTreeHead* sth) {
sth->version = SignedTreeHead::V1;
sth->timestamp = base::Time::UnixEpoch() +
- base::TimeDelta::FromMilliseconds(kSampleSTHTimestamp);
+ base::TimeDelta::FromMilliseconds(kTestTimestamp);
sth->tree_size = kSampleSTHTreeSize;
std::string sha256_root_hash = GetSampleSTHSHA256RootHash();
memcpy(sth->sha256_root_hash, sha256_root_hash.c_str(), kSthRootHashLength);
@@ -313,7 +330,7 @@ bool GetSampleSTHTreeHeadDecodedSignature(DigitallySigned* signature) {
}
std::string GetSampleSTHAsJson() {
- return CreateSignedTreeHeadJsonString(kSampleSTHTreeSize, kSampleSTHTimestamp,
+ return CreateSignedTreeHeadJsonString(kSampleSTHTreeSize, kTestTimestamp,
GetSampleSTHSHA256RootHash(),
GetSampleSTHTreeHeadSignature());
}
diff --git a/chromium/net/test/ct_test_util.h b/chromium/net/test/ct_test_util.h
index d3df6e62d9b..649b87c0824 100644
--- a/chromium/net/test/ct_test_util.h
+++ b/chromium/net/test/ct_test_util.h
@@ -21,6 +21,7 @@ namespace ct {
struct CTVerifyResult;
struct DigitallySigned;
struct LogEntry;
+struct MerkleTreeLeaf;
struct SignedTreeHead;
// Note: unless specified otherwise, all test data is taken from Certificate
@@ -29,6 +30,9 @@ struct SignedTreeHead;
// Fills |entry| with test data for an X.509 entry.
void GetX509CertLogEntry(LogEntry* entry);
+// Fills |tree_leaf| with test data for an X.509 Merkle tree leaf.
+void GetX509CertTreeLeaf(MerkleTreeLeaf* tree_leaf);
+
// Returns a DER-encoded X509 cert. The SCT provided by
// GetX509CertSCT is signed over this certificate.
std::string GetDerEncodedX509Cert();
@@ -36,6 +40,9 @@ std::string GetDerEncodedX509Cert();
// Fills |entry| with test data for a Precertificate entry.
void GetPrecertLogEntry(LogEntry* entry);
+// Fills |tree_leaf| with test data for a Precertificate Merkle tree leaf.
+void GetPrecertTreeLeaf(MerkleTreeLeaf* tree_leaf);
+
// Returns the binary representation of a test DigitallySigned
std::string GetTestDigitallySigned();
diff --git a/chromium/net/test/embedded_test_server/default_handlers.cc b/chromium/net/test/embedded_test_server/default_handlers.cc
index 74967217f5f..1b49ceb61ca 100644
--- a/chromium/net/test/embedded_test_server/default_handlers.cc
+++ b/chromium/net/test/embedded_test_server/default_handlers.cc
@@ -21,7 +21,7 @@
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
-#include "base/thread_task_runner_handle.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "net/base/escape.h"
#include "net/base/url_util.h"
@@ -46,11 +46,11 @@ const char kLogoPath[] = "chrome/test/data/google/logo.gif";
// method: CONNECT
// Responses with a BAD_REQUEST to any CONNECT requests.
-scoped_ptr<HttpResponse> HandleDefaultConnect(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleDefaultConnect(const HttpRequest& request) {
if (request.method != METHOD_CONNECT)
return nullptr;
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_code(HTTP_BAD_REQUEST);
http_response->set_content(
"Your client has issued a malformed or illegal request.");
@@ -60,8 +60,8 @@ scoped_ptr<HttpResponse> HandleDefaultConnect(const HttpRequest& request) {
// /cachetime
// Returns a cacheable response.
-scoped_ptr<HttpResponse> HandleCacheTime(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleCacheTime(const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content(
"<html><head><title>Cache: max-age=60</title></head></html>");
http_response->set_content_type("text/html");
@@ -72,13 +72,13 @@ scoped_ptr<HttpResponse> HandleCacheTime(const HttpRequest& request) {
// /echoheader | /echoheadercache
// Responds with the headers echoed in the message body.
// echoheader does not cache the results, while echoheadercache does.
-scoped_ptr<HttpResponse> HandleEchoHeader(const std::string& url,
- const std::string& cache_control,
- const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleEchoHeader(const std::string& url,
+ const std::string& cache_control,
+ const HttpRequest& request) {
if (!ShouldHandle(request, url))
return nullptr;
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
GURL request_url = request.GetURL();
if (request_url.has_query()) {
@@ -98,8 +98,8 @@ scoped_ptr<HttpResponse> HandleEchoHeader(const std::string& url,
// /echo?status=STATUS
// Responds with the request body as the response body and
// a status code of STATUS.
-scoped_ptr<HttpResponse> HandleEcho(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleEcho(const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
GURL request_url = request.GetURL();
if (request_url.has_query()) {
@@ -119,8 +119,8 @@ scoped_ptr<HttpResponse> HandleEcho(const HttpRequest& request) {
// /echotitle
// Responds with the request body as the title.
-scoped_ptr<HttpResponse> HandleEchoTitle(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleEchoTitle(const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
http_response->set_content("<html><head><title>" + request.content +
"</title></head></html>");
@@ -129,8 +129,8 @@ scoped_ptr<HttpResponse> HandleEchoTitle(const HttpRequest& request) {
// /echoall?QUERY
// Responds with the list of QUERY and the request headers.
-scoped_ptr<HttpResponse> HandleEchoAll(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleEchoAll(const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
std::string body =
"<html><head><style>"
@@ -161,8 +161,8 @@ scoped_ptr<HttpResponse> HandleEchoAll(const HttpRequest& request) {
// /set-cookie?COOKIES
// Sets response cookies to be COOKIES.
-scoped_ptr<HttpResponse> HandleSetCookie(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleSetCookie(const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
std::string content;
GURL request_url = request.GetURL();
@@ -181,7 +181,7 @@ scoped_ptr<HttpResponse> HandleSetCookie(const HttpRequest& request) {
// /set-many-cookies?N
// Sets N cookies in the response.
-scoped_ptr<HttpResponse> HandleSetManyCookies(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleSetManyCookies(const HttpRequest& request) {
std::string content;
GURL request_url = request.GetURL();
@@ -189,7 +189,7 @@ scoped_ptr<HttpResponse> HandleSetManyCookies(const HttpRequest& request) {
if (request_url.has_query())
num = std::atoi(request_url.query().c_str());
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
for (size_t i = 0; i < num; ++i) {
http_response->AddCustomHeader("Set-Cookie", "a=");
@@ -203,7 +203,8 @@ scoped_ptr<HttpResponse> HandleSetManyCookies(const HttpRequest& request) {
// /expect-and-set-cookie?expect=EXPECTED&set=SET&data=DATA
// Verifies that the request cookies match EXPECTED and then returns cookies
// that match SET and a content that matches DATA.
-scoped_ptr<HttpResponse> HandleExpectAndSetCookie(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleExpectAndSetCookie(
+ const HttpRequest& request) {
std::vector<std::string> received_cookies;
if (request.headers.find("Cookie") != request.headers.end()) {
received_cookies =
@@ -225,7 +226,7 @@ scoped_ptr<HttpResponse> HandleExpectAndSetCookie(const HttpRequest& request) {
}
}
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
if (got_all_expected) {
for (const auto& cookie : query_list.at("set")) {
@@ -246,12 +247,12 @@ scoped_ptr<HttpResponse> HandleExpectAndSetCookie(const HttpRequest& request) {
// /set-header?HEADERS
// Returns a response with HEADERS set as the response headers.
-scoped_ptr<HttpResponse> HandleSetHeader(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleSetHeader(const HttpRequest& request) {
std::string content;
GURL request_url = request.GetURL();
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
if (request_url.has_query()) {
RequestQuery headers = ParseQuery(request_url);
@@ -272,23 +273,23 @@ scoped_ptr<HttpResponse> HandleSetHeader(const HttpRequest& request) {
// /nocontent
// Returns a NO_CONTENT response.
-scoped_ptr<HttpResponse> HandleNoContent(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleNoContent(const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_code(HTTP_NO_CONTENT);
return std::move(http_response);
}
// /close-socket
// Immediately closes the connection.
-scoped_ptr<HttpResponse> HandleCloseSocket(const HttpRequest& request) {
- scoped_ptr<RawHttpResponse> http_response(new RawHttpResponse("", ""));
+std::unique_ptr<HttpResponse> HandleCloseSocket(const HttpRequest& request) {
+ std::unique_ptr<RawHttpResponse> http_response(new RawHttpResponse("", ""));
return std::move(http_response);
}
// /auth-basic?password=PASS&realm=REALM
// Performs "Basic" HTTP authentication using expected password PASS and
// realm REALM.
-scoped_ptr<HttpResponse> HandleAuthBasic(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleAuthBasic(const HttpRequest& request) {
GURL request_url = request.GetURL();
RequestQuery query = ParseQuery(request_url);
@@ -329,7 +330,7 @@ scoped_ptr<HttpResponse> HandleAuthBasic(const HttpRequest& request) {
}
}
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
if (!authed) {
http_response->set_code(HTTP_UNAUTHORIZED);
http_response->set_content_type("text/html");
@@ -378,7 +379,7 @@ scoped_ptr<HttpResponse> HandleAuthBasic(const HttpRequest& request) {
// /auth-digest
// Performs "Digest" HTTP authentication.
-scoped_ptr<HttpResponse> HandleAuthDigest(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleAuthDigest(const HttpRequest& request) {
std::string nonce = base::MD5String(
base::StringPrintf("privatekey%s", request.relative_url.c_str()));
std::string opaque = base::MD5String("opaque");
@@ -446,7 +447,7 @@ scoped_ptr<HttpResponse> HandleAuthDigest(const HttpRequest& request) {
}
}
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
if (!authed) {
http_response->set_code(HTTP_UNAUTHORIZED);
http_response->set_content_type("text/html");
@@ -476,12 +477,12 @@ scoped_ptr<HttpResponse> HandleAuthDigest(const HttpRequest& request) {
// /server-redirect?URL
// Returns a server-redirect (301) to URL.
-scoped_ptr<HttpResponse> HandleServerRedirect(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleServerRedirect(const HttpRequest& request) {
GURL request_url = request.GetURL();
std::string dest =
net::UnescapeURLComponent(request_url.query(), kUnescapeAll);
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_code(HTTP_MOVED_PERMANENTLY);
http_response->AddCustomHeader("Location", dest);
http_response->set_content_type("text/html");
@@ -493,8 +494,9 @@ scoped_ptr<HttpResponse> HandleServerRedirect(const HttpRequest& request) {
// /cross-site?URL
// Returns a cross-site redirect to URL.
-scoped_ptr<HttpResponse> HandleCrossSiteRedirect(EmbeddedTestServer* server,
- const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleCrossSiteRedirect(
+ EmbeddedTestServer* server,
+ const HttpRequest& request) {
if (!ShouldHandle(request, "/cross-site"))
return nullptr;
@@ -510,7 +512,7 @@ scoped_ptr<HttpResponse> HandleCrossSiteRedirect(EmbeddedTestServer* server,
dest_all.substr(delimiter + 1).c_str());
}
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_code(HTTP_MOVED_PERMANENTLY);
http_response->AddCustomHeader("Location", dest);
http_response->set_content_type("text/html");
@@ -522,12 +524,12 @@ scoped_ptr<HttpResponse> HandleCrossSiteRedirect(EmbeddedTestServer* server,
// /client-redirect?URL
// Returns a meta redirect to URL.
-scoped_ptr<HttpResponse> HandleClientRedirect(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleClientRedirect(const HttpRequest& request) {
GURL request_url = request.GetURL();
std::string dest =
net::UnescapeURLComponent(request_url.query(), kUnescapeAll);
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
http_response->set_content(base::StringPrintf(
"<html><head><meta http-equiv=\"refresh\" content=\"0;url=%s\"></head>"
@@ -538,8 +540,9 @@ scoped_ptr<HttpResponse> HandleClientRedirect(const HttpRequest& request) {
// /defaultresponse
// Returns a valid 200 response.
-scoped_ptr<HttpResponse> HandleDefaultResponse(const HttpRequest& request) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+std::unique_ptr<HttpResponse> HandleDefaultResponse(
+ const HttpRequest& request) {
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_content_type("text/html");
http_response->set_content("Default response given for path: " +
request.relative_url);
@@ -566,14 +569,15 @@ class DelayedHttpResponse : public BasicHttpResponse {
// /slow?N
// Returns a response to the server delayed by N seconds.
-scoped_ptr<HttpResponse> HandleSlowServer(const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleSlowServer(const HttpRequest& request) {
double delay = 1.0f;
GURL request_url = request.GetURL();
if (request_url.has_query())
delay = std::atof(request_url.query().c_str());
- scoped_ptr<BasicHttpResponse> http_response(new DelayedHttpResponse(delay));
+ std::unique_ptr<BasicHttpResponse> http_response(
+ new DelayedHttpResponse(delay));
http_response->set_content_type("text/plain");
http_response->set_content(base::StringPrintf("waited %.1f seconds", delay));
return std::move(http_response);
diff --git a/chromium/net/test/embedded_test_server/embedded_test_server.cc b/chromium/net/test/embedded_test_server/embedded_test_server.cc
index eb09b967867..c93ff0c7f8c 100644
--- a/chromium/net/test/embedded_test_server/embedded_test_server.cc
+++ b/chromium/net/test/embedded_test_server/embedded_test_server.cc
@@ -18,8 +18,8 @@
#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
-#include "base/thread_task_runner_handle.h"
#include "base/threading/thread_restrictions.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "crypto/rsa_private_key.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_errors.h"
@@ -131,7 +131,7 @@ void EmbeddedTestServer::InitializeSSLServerContext() {
std::vector<uint8_t> key_vector;
key_vector.assign(pem_tokenizer.data().begin(), pem_tokenizer.data().end());
- scoped_ptr<crypto::RSAPrivateKey> server_key(
+ std::unique_ptr<crypto::RSAPrivateKey> server_key(
crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_vector));
context_ =
CreateSSLServerContext(GetCertificate().get(), *server_key, ssl_config_);
@@ -167,10 +167,13 @@ void EmbeddedTestServer::ShutdownOnIOThread() {
}
void EmbeddedTestServer::HandleRequest(HttpConnection* connection,
- scoped_ptr<HttpRequest> request) {
+ std::unique_ptr<HttpRequest> request) {
DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
- scoped_ptr<HttpResponse> response;
+ for (const auto& monitor : request_monitors_)
+ monitor.Run(*request);
+
+ std::unique_ptr<HttpResponse> response;
for (const auto& handler : request_handlers_) {
response = handler.Run(*request);
@@ -189,7 +192,8 @@ void EmbeddedTestServer::HandleRequest(HttpConnection* connection,
if (!response) {
LOG(WARNING) << "Request not handled. Returning 404: "
<< request->relative_url;
- scoped_ptr<BasicHttpResponse> not_found_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> not_found_response(
+ new BasicHttpResponse);
not_found_response->set_code(HTTP_NOT_FOUND);
response = std::move(not_found_response);
}
@@ -283,20 +287,27 @@ void EmbeddedTestServer::AddDefaultHandlers(const base::FilePath& directory) {
void EmbeddedTestServer::RegisterRequestHandler(
const HandleRequestCallback& callback) {
- // TODO(svaldez): Add check to prevent RegisterHandler from being called
- // after the server has started. https://crbug.com/546060
+ // TODO(svaldez): Add check to prevent RegisterRequestHandler from being
+ // called after the server has started. https://crbug.com/546060
request_handlers_.push_back(callback);
}
+void EmbeddedTestServer::RegisterRequestMonitor(
+ const MonitorRequestCallback& callback) {
+ // TODO(svaldez): Add check to prevent RegisterRequestMonitor from being
+ // called after the server has started. https://crbug.com/546060
+ request_monitors_.push_back(callback);
+}
+
void EmbeddedTestServer::RegisterDefaultHandler(
const HandleRequestCallback& callback) {
- // TODO(svaldez): Add check to prevent RegisterHandler from being called
- // after the server has started. https://crbug.com/546060
+ // TODO(svaldez): Add check to prevent RegisterDefaultHandler from being
+ // called after the server has started. https://crbug.com/546060
default_request_handlers_.push_back(callback);
}
-scoped_ptr<StreamSocket> EmbeddedTestServer::DoSSLUpgrade(
- scoped_ptr<StreamSocket> connection) {
+std::unique_ptr<StreamSocket> EmbeddedTestServer::DoSSLUpgrade(
+ std::unique_ptr<StreamSocket> connection) {
DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
return context_->CreateSSLServerSocket(std::move(connection));
@@ -314,6 +325,18 @@ void EmbeddedTestServer::DoAcceptLoop() {
}
}
+bool EmbeddedTestServer::FlushAllSocketsAndConnectionsOnUIThread() {
+ return PostTaskToIOThreadAndWait(
+ base::Bind(&EmbeddedTestServer::FlushAllSocketsAndConnections,
+ base::Unretained(this)));
+}
+
+void EmbeddedTestServer::FlushAllSocketsAndConnections() {
+ STLDeleteContainerPairSecondPointers(connections_.begin(),
+ connections_.end());
+ connections_.clear();
+}
+
void EmbeddedTestServer::OnAcceptCompleted(int rv) {
DCHECK_NE(ERR_IO_PENDING, rv);
HandleAcceptResult(std::move(accepted_socket_));
@@ -327,7 +350,8 @@ void EmbeddedTestServer::OnHandshakeDone(HttpConnection* connection, int rv) {
DidClose(connection);
}
-void EmbeddedTestServer::HandleAcceptResult(scoped_ptr<StreamSocket> socket) {
+void EmbeddedTestServer::HandleAcceptResult(
+ std::unique_ptr<StreamSocket> socket) {
DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
if (connection_listener_)
connection_listener_->AcceptedSocket(*socket);
@@ -374,7 +398,7 @@ void EmbeddedTestServer::OnReadCompleted(HttpConnection* connection, int rv) {
bool EmbeddedTestServer::HandleReadResult(HttpConnection* connection, int rv) {
DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
if (connection_listener_)
- connection_listener_->ReadFromSocket(*connection->socket_);
+ connection_listener_->ReadFromSocket(*connection->socket_, rv);
if (rv <= 0) {
DidClose(connection);
return false;
@@ -419,7 +443,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(
//
// To handle this situation, create temporary message loop to support the
// PostTaskAndReply operation if the current thread as no message loop.
- scoped_ptr<base::MessageLoop> temporary_loop;
+ std::unique_ptr<base::MessageLoop> temporary_loop;
if (!base::MessageLoop::current())
temporary_loop.reset(new base::MessageLoop());
diff --git a/chromium/net/test/embedded_test_server/embedded_test_server.h b/chromium/net/test/embedded_test_server/embedded_test_server.h
index 00952f9905d..3b9e253b906 100644
--- a/chromium/net/test/embedded_test_server/embedded_test_server.h
+++ b/chromium/net/test/embedded_test_server/embedded_test_server.h
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <map>
+#include <memory>
#include <string>
#include <vector>
@@ -16,7 +17,6 @@
#include "base/files/file_path.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/threading/thread.h"
#include "base/threading/thread_checker.h"
@@ -57,12 +57,12 @@ struct HttpRequest;
// base::Bind(&FooTest::HandleRequest, base::Unretained(this)));
// }
//
-// scoped_ptr<HttpResponse> HandleRequest(const HttpRequest& request) {
+// std::unique_ptr<HttpResponse> HandleRequest(const HttpRequest& request) {
// GURL absolute_url = test_server_->GetURL(request.relative_url);
// if (absolute_url.path() != "/test")
-// return scoped_ptr<HttpResponse>();
+// return std::unique_ptr<HttpResponse>();
//
-// scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse());
+// std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse());
// http_response->set_code(test_server::SUCCESS);
// http_response->set_content("hello");
// http_response->set_content_type("text/plain");
@@ -114,8 +114,11 @@ class EmbeddedTestServer {
CERT_COMMON_NAME_IS_DOMAIN,
};
- typedef base::Callback<scoped_ptr<HttpResponse>(
- const HttpRequest& request)> HandleRequestCallback;
+ typedef base::Callback<std::unique_ptr<HttpResponse>(
+ const HttpRequest& request)>
+ HandleRequestCallback;
+ typedef base::Callback<void(const HttpRequest& request)>
+ MonitorRequestCallback;
// Creates a http test server. Start() must be called to start the server.
// |type| indicates the protocol type of the server (HTTP/HTTPS).
@@ -132,7 +135,7 @@ class EmbeddedTestServer {
// This is the equivalent of calling InitializeAndListen() followed by
// StartAcceptingConnections().
// Returns whether a listening socket has been successfully created.
- bool Start();
+ bool Start() WARN_UNUSED_RESULT;
// Starts listening for incoming connections but will not yet accept them.
// Returns whether a listening socket has been succesfully created.
@@ -206,16 +209,25 @@ class EmbeddedTestServer {
// on UI thread.
void RegisterRequestHandler(const HandleRequestCallback& callback);
+ // Adds request monitors. The |callback| is called before any handlers are
+ // called, but can not respond it. This is useful to monitor requests that
+ // will be handled by other request handlers.
+ void RegisterRequestMonitor(const MonitorRequestCallback& callback);
+
// Adds default handlers, including those added by AddDefaultHandlers, to be
// tried after all other user-specified handlers have been tried.
void RegisterDefaultHandler(const HandleRequestCallback& callback);
+ bool FlushAllSocketsAndConnectionsOnUIThread();
+ void FlushAllSocketsAndConnections();
+
private:
// Shuts down the server.
void ShutdownOnIOThread();
// Upgrade the TCP connection to one over SSL.
- scoped_ptr<StreamSocket> DoSSLUpgrade(scoped_ptr<StreamSocket> connection);
+ std::unique_ptr<StreamSocket> DoSSLUpgrade(
+ std::unique_ptr<StreamSocket> connection);
// Handles async callback when the SSL handshake has been completed.
void OnHandshakeDone(HttpConnection* connection, int rv);
@@ -226,7 +238,7 @@ class EmbeddedTestServer {
void OnAcceptCompleted(int rv);
// Adds the new |socket| to the list of clients and begins the reading
// data.
- void HandleAcceptResult(scoped_ptr<StreamSocket> socket);
+ void HandleAcceptResult(std::unique_ptr<StreamSocket> socket);
// Attempts to read data from the |connection|'s socket.
void ReadData(HttpConnection* connection);
@@ -242,7 +254,7 @@ class EmbeddedTestServer {
// Handles a request when it is parsed. It passes the request to registered
// request handlers and sends a http response.
void HandleRequest(HttpConnection* connection,
- scoped_ptr<HttpRequest> request);
+ std::unique_ptr<HttpRequest> request);
// Initializes the SSLServerContext so that SSLServerSocket connections may
// share the same cache
@@ -256,10 +268,10 @@ class EmbeddedTestServer {
const bool is_using_ssl_;
- scoped_ptr<base::Thread> io_thread_;
+ std::unique_ptr<base::Thread> io_thread_;
- scoped_ptr<TCPServerSocket> listen_socket_;
- scoped_ptr<StreamSocket> accepted_socket_;
+ std::unique_ptr<TCPServerSocket> listen_socket_;
+ std::unique_ptr<StreamSocket> accepted_socket_;
EmbeddedTestServerConnectionListener* connection_listener_;
uint16_t port_;
@@ -269,15 +281,16 @@ class EmbeddedTestServer {
// Owns the HttpConnection objects.
std::map<StreamSocket*, HttpConnection*> connections_;
- // Vector of registered and default request handlers.
+ // Vector of registered and default request handlers and monitors.
std::vector<HandleRequestCallback> request_handlers_;
+ std::vector<MonitorRequestCallback> request_monitors_;
std::vector<HandleRequestCallback> default_request_handlers_;
base::ThreadChecker thread_checker_;
net::SSLServerConfig ssl_config_;
ServerCertificate cert_;
- scoped_ptr<SSLServerContext> context_;
+ std::unique_ptr<SSLServerContext> context_;
base::WeakPtrFactory<EmbeddedTestServer> weak_factory_;
diff --git a/chromium/net/test/embedded_test_server/embedded_test_server_connection_listener.h b/chromium/net/test/embedded_test_server/embedded_test_server_connection_listener.h
index 01d5415220d..d712aea4947 100644
--- a/chromium/net/test/embedded_test_server/embedded_test_server_connection_listener.h
+++ b/chromium/net/test/embedded_test_server/embedded_test_server_connection_listener.h
@@ -18,7 +18,7 @@ class EmbeddedTestServerConnectionListener {
virtual void AcceptedSocket(const StreamSocket& socket) = 0;
// Notified when a socket was read from by the EmbeddedTestServer.
- virtual void ReadFromSocket(const StreamSocket& socket) = 0;
+ virtual void ReadFromSocket(const StreamSocket& socket, int rv) = 0;
protected:
EmbeddedTestServerConnectionListener() {}
diff --git a/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc b/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc
index bdd4a826d04..d3a10319962 100644
--- a/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc
+++ b/chromium/net/test/embedded_test_server/embedded_test_server_unittest.cc
@@ -7,6 +7,7 @@
#include <utility>
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/memory/weak_ptr.h"
#include "base/path_service.h"
#include "base/run_loop.h"
@@ -30,7 +31,7 @@
#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
#include "net/cert_net/nss_ocsp.h"
#endif
@@ -82,7 +83,7 @@ class TestConnectionListener
// Get called from the EmbeddedTestServer thread to be notified that
// a connection was read from.
- void ReadFromSocket(const net::StreamSocket& connection) override {
+ void ReadFromSocket(const net::StreamSocket& connection, int rv) override {
base::AutoLock lock(lock_);
did_read_from_socket_ = true;
}
@@ -122,7 +123,7 @@ class EmbeddedTestServerTest
}
void SetUp() override {
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
// This is needed so NSS's HTTP client functions are initialized on the
// right thread. These tests create SSLClientSockets on a different thread.
// TODO(davidben): Initialization can't be deferred to SSLClientSocket. See
@@ -145,7 +146,7 @@ class EmbeddedTestServerTest
void TearDown() override {
if (server_->Started())
ASSERT_TRUE(server_->ShutdownAndWaitUntilComplete());
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
ShutdownNSSHttpIO();
#endif
}
@@ -167,16 +168,16 @@ class EmbeddedTestServerTest
// Handles |request| sent to |path| and returns the response per |content|,
// |content type|, and |code|. Saves the request URL for verification.
- scoped_ptr<HttpResponse> HandleRequest(const std::string& path,
- const std::string& content,
- const std::string& content_type,
- HttpStatusCode code,
- const HttpRequest& request) {
+ std::unique_ptr<HttpResponse> HandleRequest(const std::string& path,
+ const std::string& content,
+ const std::string& content_type,
+ HttpStatusCode code,
+ const HttpRequest& request) {
request_relative_url_ = request.relative_url;
GURL absolute_url = server_->GetURL(request.relative_url);
if (absolute_url.path() == path) {
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_code(code);
http_response->set_content(content);
http_response->set_content_type(content_type);
@@ -193,7 +194,7 @@ class EmbeddedTestServerTest
base::Thread io_thread_;
scoped_refptr<TestURLRequestContextGetter> request_context_getter_;
TestConnectionListener connection_listener_;
- scoped_ptr<EmbeddedTestServer> server_;
+ std::unique_ptr<EmbeddedTestServer> server_;
};
TEST_P(EmbeddedTestServerTest, GetBaseURL) {
@@ -243,7 +244,7 @@ TEST_P(EmbeddedTestServerTest, RegisterRequestHandler) {
HTTP_OK));
ASSERT_TRUE(server_->Start());
- scoped_ptr<URLFetcher> fetcher =
+ std::unique_ptr<URLFetcher> fetcher =
URLFetcher::Create(server_->GetURL("/test?q=foo"), URLFetcher::GET, this);
fetcher->SetRequestContext(request_context_getter_.get());
fetcher->Start();
@@ -264,7 +265,7 @@ TEST_P(EmbeddedTestServerTest, ServeFilesFromDirectory) {
src_dir.AppendASCII("net").AppendASCII("data"));
ASSERT_TRUE(server_->Start());
- scoped_ptr<URLFetcher> fetcher =
+ std::unique_ptr<URLFetcher> fetcher =
URLFetcher::Create(server_->GetURL("/test.html"), URLFetcher::GET, this);
fetcher->SetRequestContext(request_context_getter_.get());
fetcher->Start();
@@ -279,7 +280,7 @@ TEST_P(EmbeddedTestServerTest, ServeFilesFromDirectory) {
TEST_P(EmbeddedTestServerTest, DefaultNotFoundResponse) {
ASSERT_TRUE(server_->Start());
- scoped_ptr<URLFetcher> fetcher = URLFetcher::Create(
+ std::unique_ptr<URLFetcher> fetcher = URLFetcher::Create(
server_->GetURL("/non-existent"), URLFetcher::GET, this);
fetcher->SetRequestContext(request_context_getter_.get());
@@ -296,9 +297,9 @@ TEST_P(EmbeddedTestServerTest, ConnectionListenerAccept) {
net::AddressList address_list;
EXPECT_TRUE(server_->GetAddressList(&address_list));
- scoped_ptr<StreamSocket> socket =
+ std::unique_ptr<StreamSocket> socket =
ClientSocketFactory::GetDefaultFactory()->CreateTransportClientSocket(
- address_list, &net_log, NetLog::Source());
+ address_list, NULL, &net_log, NetLog::Source());
TestCompletionCallback callback;
ASSERT_EQ(OK, callback.GetResult(socket->Connect(callback.callback())));
@@ -311,7 +312,7 @@ TEST_P(EmbeddedTestServerTest, ConnectionListenerAccept) {
TEST_P(EmbeddedTestServerTest, ConnectionListenerRead) {
ASSERT_TRUE(server_->Start());
- scoped_ptr<URLFetcher> fetcher = URLFetcher::Create(
+ std::unique_ptr<URLFetcher> fetcher = URLFetcher::Create(
server_->GetURL("/non-existent"), URLFetcher::GET, this);
fetcher->SetRequestContext(request_context_getter_.get());
@@ -345,13 +346,13 @@ TEST_P(EmbeddedTestServerTest, ConcurrentFetches) {
HTTP_NOT_FOUND));
ASSERT_TRUE(server_->Start());
- scoped_ptr<URLFetcher> fetcher1 =
+ std::unique_ptr<URLFetcher> fetcher1 =
URLFetcher::Create(server_->GetURL("/test1"), URLFetcher::GET, this);
fetcher1->SetRequestContext(request_context_getter_.get());
- scoped_ptr<URLFetcher> fetcher2 =
+ std::unique_ptr<URLFetcher> fetcher2 =
URLFetcher::Create(server_->GetURL("/test2"), URLFetcher::GET, this);
fetcher2->SetRequestContext(request_context_getter_.get());
- scoped_ptr<URLFetcher> fetcher3 =
+ std::unique_ptr<URLFetcher> fetcher3 =
URLFetcher::Create(server_->GetURL("/test3"), URLFetcher::GET, this);
fetcher3->SetRequestContext(request_context_getter_.get());
@@ -423,8 +424,9 @@ class InfiniteResponse : public BasicHttpResponse {
DISALLOW_COPY_AND_ASSIGN(InfiniteResponse);
};
-scoped_ptr<HttpResponse> HandleInfiniteRequest(const HttpRequest& request) {
- return make_scoped_ptr(new InfiniteResponse);
+std::unique_ptr<HttpResponse> HandleInfiniteRequest(
+ const HttpRequest& request) {
+ return base::WrapUnique(new InfiniteResponse);
}
}
@@ -440,7 +442,7 @@ TEST_P(EmbeddedTestServerTest, CloseDuringWrite) {
&HandlePrefixedRequest, "/infinite", base::Bind(&HandleInfiniteRequest)));
ASSERT_TRUE(server_->Start());
- scoped_ptr<URLRequest> request = context.CreateRequest(
+ std::unique_ptr<URLRequest> request = context.CreateRequest(
server_->GetURL("/infinite"), DEFAULT_PRIORITY, &cancel_delegate);
request->Start();
cancel_delegate.WaitUntilDone();
@@ -496,7 +498,7 @@ typedef std::tr1::tuple<bool, bool, EmbeddedTestServer::Type>
class EmbeddedTestServerThreadingTest
: public testing::TestWithParam<ThreadingTestParams> {
void SetUp() override {
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
// This is needed so NSS's HTTP client functions are initialized on the
// right thread. These tests create SSLClientSockets on a different thread.
// TODO(davidben): Initialization can't be deferred to SSLClientSocket. See
@@ -507,7 +509,7 @@ class EmbeddedTestServerThreadingTest
}
void TearDown() override {
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
ShutdownNSSHttpIO();
#endif
}
@@ -534,7 +536,7 @@ class EmbeddedTestServerThreadingTestDelegate
ASSERT_TRUE(io_thread.StartWithOptions(thread_options));
io_thread_runner = io_thread.task_runner();
- scoped_ptr<base::MessageLoop> loop;
+ std::unique_ptr<base::MessageLoop> loop;
if (message_loop_present_on_initialize_)
loop.reset(new base::MessageLoopForIO);
@@ -548,7 +550,7 @@ class EmbeddedTestServerThreadingTestDelegate
if (!loop)
loop.reset(new base::MessageLoopForIO);
- scoped_ptr<URLFetcher> fetcher =
+ std::unique_ptr<URLFetcher> fetcher =
URLFetcher::Create(server.GetURL("/test?q=foo"), URLFetcher::GET, this);
fetcher->SetRequestContext(
new TestURLRequestContextGetter(loop->task_runner()));
diff --git a/chromium/net/test/embedded_test_server/http_connection.cc b/chromium/net/test/embedded_test_server/http_connection.cc
index ce95f4362d2..2f3e906a68a 100644
--- a/chromium/net/test/embedded_test_server/http_connection.cc
+++ b/chromium/net/test/embedded_test_server/http_connection.cc
@@ -12,7 +12,7 @@
namespace net {
namespace test_server {
-HttpConnection::HttpConnection(scoped_ptr<StreamSocket> socket,
+HttpConnection::HttpConnection(std::unique_ptr<StreamSocket> socket,
const HandleRequestCallback& callback)
: socket_(std::move(socket)),
callback_(callback),
diff --git a/chromium/net/test/embedded_test_server/http_connection.h b/chromium/net/test/embedded_test_server/http_connection.h
index 4f4e555f959..0b87fcb218d 100644
--- a/chromium/net/test/embedded_test_server/http_connection.h
+++ b/chromium/net/test/embedded_test_server/http_connection.h
@@ -5,10 +5,11 @@
#ifndef NET_TEST_EMBEDDED_TEST_SERVER_HTTP_CONNECTION_H_
#define NET_TEST_EMBEDDED_TEST_SERVER_HTTP_CONNECTION_H_
+#include <memory>
+
#include "base/callback.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/strings/string_piece.h"
#include "net/base/completion_callback.h"
@@ -28,14 +29,14 @@ class HttpResponse;
// Calblack called when a request is parsed. Response should be sent
// using HttpConnection::SendResponse() on the |connection| argument.
typedef base::Callback<void(HttpConnection* connection,
- scoped_ptr<HttpRequest> request)>
+ std::unique_ptr<HttpRequest> request)>
HandleRequestCallback;
// Wraps the connection socket. Accepts incoming data and sends responses.
// If a valid request is parsed, then |callback_| is invoked.
class HttpConnection {
public:
- HttpConnection(scoped_ptr<StreamSocket> socket,
+ HttpConnection(std::unique_ptr<StreamSocket> socket,
const HandleRequestCallback& callback);
~HttpConnection();
@@ -61,7 +62,7 @@ class HttpConnection {
base::WeakPtr<HttpConnection> GetWeakPtr();
- scoped_ptr<StreamSocket> socket_;
+ std::unique_ptr<StreamSocket> socket_;
const HandleRequestCallback callback_;
HttpRequestParser request_parser_;
scoped_refptr<IOBufferWithSize> read_buf_;
diff --git a/chromium/net/test/embedded_test_server/http_request.cc b/chromium/net/test/embedded_test_server/http_request.cc
index a1332bee3b4..2c247c614a9 100644
--- a/chromium/net/test/embedded_test_server/http_request.cc
+++ b/chromium/net/test/embedded_test_server/http_request.cc
@@ -217,9 +217,9 @@ HttpRequestParser::ParseResult HttpRequestParser::ParseContent() {
return WAITING;
}
-scoped_ptr<HttpRequest> HttpRequestParser::GetRequest() {
+std::unique_ptr<HttpRequest> HttpRequestParser::GetRequest() {
DCHECK_EQ(STATE_ACCEPTED, state_);
- scoped_ptr<HttpRequest> result = std::move(http_request_);
+ std::unique_ptr<HttpRequest> result = std::move(http_request_);
// Prepare for parsing a new request.
state_ = STATE_HEADERS;
diff --git a/chromium/net/test/embedded_test_server/http_request.h b/chromium/net/test/embedded_test_server/http_request.h
index d9e54b8151b..b58f7749d8e 100644
--- a/chromium/net/test/embedded_test_server/http_request.h
+++ b/chromium/net/test/embedded_test_server/http_request.h
@@ -8,10 +8,10 @@
#include <stddef.h>
#include <map>
+#include <memory>
#include <string>
#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
#include "base/strings/string_piece.h"
#include "base/strings/string_util.h"
#include "url/gurl.h"
@@ -73,7 +73,7 @@ struct HttpRequest {
// void OnDataChunkReceived(Socket* socket, const char* data, int size) {
// parser.ProcessChunk(std::string(data, size));
// if (parser.ParseRequest() == HttpRequestParser::ACCEPTED) {
-// scoped_ptr<HttpRequest> request = parser.GetRequest();
+// std::unique_ptr<HttpRequest> request = parser.GetRequest();
// (... process the request ...)
// }
class HttpRequestParser {
@@ -106,7 +106,7 @@ class HttpRequestParser {
// Retrieves parsed request. Can be only called, when the parser is in
// STATE_ACCEPTED state. After calling it, the parser is ready to parse
// another request.
- scoped_ptr<HttpRequest> GetRequest();
+ std::unique_ptr<HttpRequest> GetRequest();
private:
HttpMethod GetMethodType(const std::string& token) const;
@@ -124,14 +124,14 @@ class HttpRequestParser {
// no line available.
std::string ShiftLine();
- scoped_ptr<HttpRequest> http_request_;
+ std::unique_ptr<HttpRequest> http_request_;
std::string buffer_;
size_t buffer_position_; // Current position in the internal buffer.
State state_;
// Content length of the request currently being parsed.
size_t declared_content_length_;
- scoped_ptr<HttpChunkedDecoder> chunked_decoder_;
+ std::unique_ptr<HttpChunkedDecoder> chunked_decoder_;
DISALLOW_COPY_AND_ASSIGN(HttpRequestParser);
};
diff --git a/chromium/net/test/embedded_test_server/http_request_unittest.cc b/chromium/net/test/embedded_test_server/http_request_unittest.cc
index ff2ae3cf968..64761cfb7fb 100644
--- a/chromium/net/test/embedded_test_server/http_request_unittest.cc
+++ b/chromium/net/test/embedded_test_server/http_request_unittest.cc
@@ -4,7 +4,8 @@
#include "net/test/embedded_test_server/http_request.h"
-#include "base/memory/scoped_ptr.h"
+#include <memory>
+
#include "testing/gtest/include/gtest/gtest.h"
namespace net {
@@ -34,7 +35,7 @@ TEST(HttpRequestTest, ParseRequest) {
// Fetch the first request and validate it.
{
- scoped_ptr<HttpRequest> request = parser.GetRequest();
+ std::unique_ptr<HttpRequest> request = parser.GetRequest();
EXPECT_EQ("/foobar.html", request->relative_url);
EXPECT_EQ("POST", request->method_string);
EXPECT_EQ(METHOD_POST, request->method);
@@ -70,7 +71,7 @@ TEST(HttpRequestTest, ParseRequestWithEmptyBody) {
parser.ProcessChunk("Content-Length: 0\r\n\r\n");
ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
- scoped_ptr<HttpRequest> request = parser.GetRequest();
+ std::unique_ptr<HttpRequest> request = parser.GetRequest();
EXPECT_EQ("", request->content);
EXPECT_TRUE(request->has_content);
EXPECT_EQ(1u, request->headers.count("Content-Length"));
@@ -88,7 +89,7 @@ TEST(HttpRequestTest, ParseRequestWithChunkedBody) {
parser.ProcessChunk("0\r\n\r\n");
ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
- scoped_ptr<HttpRequest> request = parser.GetRequest();
+ std::unique_ptr<HttpRequest> request = parser.GetRequest();
EXPECT_EQ("hello world", request->content);
EXPECT_TRUE(request->has_content);
EXPECT_EQ(1u, request->headers.count("Transfer-Encoding"));
@@ -112,7 +113,7 @@ TEST(HttpRequestTest, ParseRequestWithChunkedBodySlow) {
}
// All chunked data has been sent, the last ParseRequest should give ACCEPTED.
ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
- scoped_ptr<HttpRequest> request = parser.GetRequest();
+ std::unique_ptr<HttpRequest> request = parser.GetRequest();
EXPECT_EQ("hello", request->content);
EXPECT_TRUE(request->has_content);
EXPECT_EQ(1u, request->headers.count("Transfer-Encoding"));
@@ -125,7 +126,7 @@ TEST(HttpRequestTest, ParseRequestWithoutBody) {
parser.ProcessChunk("POST /foobar.html HTTP/1.1\r\n\r\n");
ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
- scoped_ptr<HttpRequest> request = parser.GetRequest();
+ std::unique_ptr<HttpRequest> request = parser.GetRequest();
EXPECT_EQ("", request->content);
EXPECT_FALSE(request->has_content);
}
@@ -136,7 +137,7 @@ TEST(HttpRequestTest, ParseGet) {
parser.ProcessChunk("GET /foobar.html HTTP/1.1\r\n\r\n");
ASSERT_EQ(HttpRequestParser::ACCEPTED, parser.ParseRequest());
- scoped_ptr<HttpRequest> request = parser.GetRequest();
+ std::unique_ptr<HttpRequest> request = parser.GetRequest();
EXPECT_EQ("/foobar.html", request->relative_url);
EXPECT_EQ("GET", request->method_string);
EXPECT_EQ(METHOD_GET, request->method);
diff --git a/chromium/net/test/embedded_test_server/request_handler_util.cc b/chromium/net/test/embedded_test_server/request_handler_util.cc
index db3f3a6fa0f..b555578f2a0 100644
--- a/chromium/net/test/embedded_test_server/request_handler_util.cc
+++ b/chromium/net/test/embedded_test_server/request_handler_util.cc
@@ -5,6 +5,7 @@
#include "net/test/embedded_test_server/request_handler_util.h"
#include <stdlib.h>
+
#include <ctime>
#include <sstream>
#include <utility>
@@ -12,6 +13,7 @@
#include "base/base64.h"
#include "base/files/file_util.h"
#include "base/format_macros.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/threading/thread_restrictions.h"
@@ -75,7 +77,7 @@ bool ShouldHandle(const HttpRequest& request, const std::string& path_prefix) {
base::CompareCase::SENSITIVE);
}
-scoped_ptr<HttpResponse> HandlePrefixedRequest(
+std::unique_ptr<HttpResponse> HandlePrefixedRequest(
const std::string& prefix,
const EmbeddedTestServer::HandleRequestCallback& handler,
const HttpRequest& request) {
@@ -118,8 +120,9 @@ void GetFilePathWithReplacements(const std::string& original_file_path,
}
// Handles |request| by serving a file from under |server_root|.
-scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root,
- const HttpRequest& request) {
+std::unique_ptr<HttpResponse> HandleFileRequest(
+ const base::FilePath& server_root,
+ const HttpRequest& request) {
// This is a test-only server. Ignore I/O thread restrictions.
// TODO(svaldez): Figure out why thread is I/O restricted in the first place.
base::ThreadRestrictions::ScopedAllowIO allow_io;
@@ -139,7 +142,7 @@ scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root,
RequestQuery query = ParseQuery(request_url);
- scoped_ptr<BasicHttpResponse> failed_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> failed_response(new BasicHttpResponse);
failed_response->set_code(HTTP_NOT_FOUND);
if (query.find("expected_body") != query.end()) {
@@ -197,11 +200,11 @@ scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root,
if (!base::ReadFileToString(headers_path, &headers_contents))
return nullptr;
- return make_scoped_ptr(
+ return base::WrapUnique(
new RawHttpResponse(headers_contents, file_contents));
}
- scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
+ std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse);
http_response->set_code(HTTP_OK);
if (request.headers.find("Range") != request.headers.end()) {
diff --git a/chromium/net/test/embedded_test_server/request_handler_util.h b/chromium/net/test/embedded_test_server/request_handler_util.h
index 2ed8d1383b4..fe86755c17f 100644
--- a/chromium/net/test/embedded_test_server/request_handler_util.h
+++ b/chromium/net/test/embedded_test_server/request_handler_util.h
@@ -6,12 +6,12 @@
#define NET_TEST_EMBEDDED_TEST_SERVER_REQUEST_HANDLER_UTIL_H_
#include <map>
+#include <memory>
#include <string>
#include <vector>
#include "base/files/file_path.h"
#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
#include "base/strings/string_split.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/embedded_test_server/http_response.h"
@@ -34,7 +34,7 @@ using RequestQuery = std::map<std::string, std::vector<std::string>>;
bool ShouldHandle(const HttpRequest& request, const std::string& prefix_path);
// Calls |handler| if the |request| URL starts with |prefix|.
-scoped_ptr<HttpResponse> HandlePrefixedRequest(
+std::unique_ptr<HttpResponse> HandlePrefixedRequest(
const std::string& prefix,
const EmbeddedTestServer::HandleRequestCallback& handler,
const HttpRequest& request);
@@ -54,8 +54,9 @@ void GetFilePathWithReplacements(const std::string& original_path,
std::string* replacement_path);
// Handles |request| by serving a file from under |server_root|.
-scoped_ptr<HttpResponse> HandleFileRequest(const base::FilePath& server_root,
- const HttpRequest& request);
+std::unique_ptr<HttpResponse> HandleFileRequest(
+ const base::FilePath& server_root,
+ const HttpRequest& request);
} // namespace test_server
} // namespace net
diff --git a/chromium/net/test/net_test_suite.cc b/chromium/net/test/net_test_suite.cc
index 561f149488e..8b0942b9303 100644
--- a/chromium/net/test/net_test_suite.cc
+++ b/chromium/net/test/net_test_suite.cc
@@ -10,7 +10,7 @@
#include "net/spdy/spdy_session.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
#include "net/cert_net/nss_ocsp.h"
#endif
@@ -33,7 +33,7 @@ void NetTestSuite::Initialize() {
}
void NetTestSuite::Shutdown() {
-#if defined(USE_NSS_VERIFIER)
+#if defined(USE_NSS_CERTS)
net::ShutdownNSSHttpIO();
#endif
diff --git a/chromium/net/test/net_test_suite.h b/chromium/net/test/net_test_suite.h
index 92f079cde7f..6b154a8e4fc 100644
--- a/chromium/net/test/net_test_suite.h
+++ b/chromium/net/test/net_test_suite.h
@@ -5,6 +5,8 @@
#ifndef NET_TEST_NET_TEST_SUITE_H_
#define NET_TEST_NET_TEST_SUITE_H_
+#include <memory>
+
#include "base/memory/ref_counted.h"
#include "base/test/test_suite.h"
#include "build/build_config.h"
@@ -41,8 +43,8 @@ class NetTestSuite : public base::TestSuite {
void InitializeTestThreadNoNetworkChangeNotifier();
private:
- scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_;
- scoped_ptr<base::MessageLoop> message_loop_;
+ std::unique_ptr<net::NetworkChangeNotifier> network_change_notifier_;
+ std::unique_ptr<base::MessageLoop> message_loop_;
scoped_refptr<net::RuleBasedHostResolverProc> host_resolver_proc_;
net::ScopedDefaultHostResolverProc scoped_host_resolver_proc_;
};
diff --git a/chromium/net/test/python_utils.cc b/chromium/net/test/python_utils.cc
index 7d137b7c411..208e1b924fc 100644
--- a/chromium/net/test/python_utils.cc
+++ b/chromium/net/test/python_utils.cc
@@ -4,6 +4,8 @@
#include "net/test/python_utils.h"
+#include <memory>
+
#include "base/base_paths.h"
#include "base/command_line.h"
#include "base/environment.h"
@@ -11,7 +13,6 @@
#include "base/files/file_util.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
#include "base/path_service.h"
#include "base/process/launch.h"
#include "base/strings/string_util.h"
@@ -24,7 +25,7 @@
const char kPythonPathEnv[] = "PYTHONPATH";
void AppendToPythonPath(const base::FilePath& dir) {
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ std::unique_ptr<base::Environment> env(base::Environment::Create());
std::string old_path;
std::string dir_path;
#if defined(OS_WIN)
diff --git a/chromium/net/test/python_utils_unittest.cc b/chromium/net/test/python_utils_unittest.cc
index a713e72ff33..48eb9737675 100644
--- a/chromium/net/test/python_utils_unittest.cc
+++ b/chromium/net/test/python_utils_unittest.cc
@@ -2,16 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "net/test/python_utils.h"
+
+#include <memory>
#include <string>
#include "base/command_line.h"
#include "base/environment.h"
#include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
#include "base/process/launch.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
-#include "net/test/python_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
TEST(PythonUtils, Append) {
@@ -20,7 +21,7 @@ TEST(PythonUtils, Append) {
const base::FilePath::CharType kAppendDir2[] =
FILE_PATH_LITERAL("test/path_append2");
- scoped_ptr<base::Environment> env(base::Environment::Create());
+ std::unique_ptr<base::Environment> env(base::Environment::Create());
std::string python_path;
base::FilePath append_path1(kAppendDir1);
diff --git a/chromium/net/test/run_all_unittests.cc b/chromium/net/test/run_all_unittests.cc
index e5ea90043b7..20f5a68f4cd 100644
--- a/chromium/net/test/run_all_unittests.cc
+++ b/chromium/net/test/run_all_unittests.cc
@@ -10,6 +10,7 @@
#include "net/socket/ssl_server_socket.h"
#include "net/spdy/spdy_session.h"
#include "net/test/net_test_suite.h"
+#include "url/url_features.h"
#if defined(OS_ANDROID)
#include "base/android/jni_android.h"
@@ -20,7 +21,7 @@
#include "net/android/net_jni_registrar.h"
#endif
-#if defined(USE_ICU_ALTERNATIVES_ON_ANDROID)
+#if BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES)
#include "url/android/url_jni_registrar.h" // nogncheck
#endif
@@ -42,7 +43,7 @@ int main(int argc, char** argv) {
{"NetAndroid", net::android::RegisterJni},
{"TestFileUtil", base::RegisterContentUriTestUtils},
{"TestUiThreadAndroid", base::RegisterTestUiThreadAndroid},
-#if defined(USE_ICU_ALTERNATIVES_ON_ANDROID)
+#if BUILDFLAG(USE_PLATFORM_ICU_ALTERNATIVES)
{"UrlAndroid", url::android::RegisterJni},
#endif
};
@@ -58,11 +59,6 @@ int main(int argc, char** argv) {
NetTestSuite test_suite(argc, argv);
ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false);
-#if defined(OS_WIN) && !defined(USE_OPENSSL)
- // We want to be sure to init NSPR on the main thread.
- crypto::EnsureNSPRInit();
-#endif
-
// Enable support for SSL server sockets, which must be done while
// single-threaded.
net::EnableSSLServerSockets();
diff --git a/chromium/net/test/spawned_test_server/base_test_server.cc b/chromium/net/test/spawned_test_server/base_test_server.cc
index ecf5af5d636..2ef7417b21a 100644
--- a/chromium/net/test/spawned_test_server/base_test_server.cc
+++ b/chromium/net/test/spawned_test_server/base_test_server.cc
@@ -114,8 +114,9 @@ bool GetLocalCertificatesDir(const base::FilePath& certificates_dir,
return true;
}
-scoped_ptr<base::ListValue> GetTokenBindingParams(std::vector<int> params) {
- scoped_ptr<base::ListValue> values(new base::ListValue());
+std::unique_ptr<base::ListValue> GetTokenBindingParams(
+ std::vector<int> params) {
+ std::unique_ptr<base::ListValue> values(new base::ListValue());
for (int param : params) {
values->Append(new base::FundamentalValue(param));
}
@@ -265,7 +266,8 @@ std::string BaseTestServer::GetScheme() const {
bool BaseTestServer::GetAddressList(AddressList* address_list) const {
DCHECK(address_list);
- scoped_ptr<HostResolver> resolver(HostResolver::CreateDefaultResolver(NULL));
+ std::unique_ptr<HostResolver> resolver(
+ HostResolver::CreateDefaultResolver(NULL));
HostResolver::RequestInfo info(host_port_pair_);
// Limit the lookup to IPv4. When started with the default
// address of kLocalhost, testserver.py only supports IPv4.
@@ -406,7 +408,7 @@ void BaseTestServer::SetResourcePath(const base::FilePath& document_root,
bool BaseTestServer::ParseServerData(const std::string& server_data) {
VLOG(1) << "Server data: " << server_data;
base::JSONReader json_reader;
- scoped_ptr<base::Value> value(json_reader.ReadToValue(server_data));
+ std::unique_ptr<base::Value> value(json_reader.ReadToValue(server_data));
if (!value.get() || !value->IsType(base::Value::TYPE_DICTIONARY)) {
LOG(ERROR) << "Could not parse server data: "
<< json_reader.GetErrorMessage();
@@ -490,7 +492,7 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const {
// Check the client certificate related arguments.
if (ssl_options_.request_client_certificate)
arguments->Set("ssl-client-auth", base::Value::CreateNullValue());
- scoped_ptr<base::ListValue> ssl_client_certs(new base::ListValue());
+ std::unique_ptr<base::ListValue> ssl_client_certs(new base::ListValue());
std::vector<base::FilePath>::const_iterator it;
for (it = ssl_options_.client_authorities.begin();
@@ -506,7 +508,7 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const {
if (ssl_client_certs->GetSize())
arguments->Set("ssl-client-ca", ssl_client_certs.release());
- scoped_ptr<base::ListValue> client_cert_types(new base::ListValue());
+ std::unique_ptr<base::ListValue> client_cert_types(new base::ListValue());
for (size_t i = 0; i < ssl_options_.client_cert_types.size(); i++) {
client_cert_types->Append(new base::StringValue(
GetClientCertType(ssl_options_.client_cert_types[i])));
@@ -527,12 +529,12 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const {
}
// Check key exchange argument.
- scoped_ptr<base::ListValue> key_exchange_values(new base::ListValue());
+ std::unique_ptr<base::ListValue> key_exchange_values(new base::ListValue());
GetKeyExchangesList(ssl_options_.key_exchanges, key_exchange_values.get());
if (key_exchange_values->GetSize())
arguments->Set("ssl-key-exchange", key_exchange_values.release());
// Check bulk cipher argument.
- scoped_ptr<base::ListValue> bulk_cipher_values(new base::ListValue());
+ std::unique_ptr<base::ListValue> bulk_cipher_values(new base::ListValue());
GetCiphersList(ssl_options_.bulk_ciphers, bulk_cipher_values.get());
if (bulk_cipher_values->GetSize())
arguments->Set("ssl-bulk-cipher", bulk_cipher_values.release());
@@ -558,7 +560,7 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const {
base::Value::CreateNullValue());
}
if (!ssl_options_.npn_protocols.empty()) {
- scoped_ptr<base::ListValue> npn_protocols(new base::ListValue());
+ std::unique_ptr<base::ListValue> npn_protocols(new base::ListValue());
for (const std::string& proto : ssl_options_.npn_protocols) {
npn_protocols->Append(new base::StringValue(proto));
}
@@ -574,7 +576,8 @@ bool BaseTestServer::GenerateArguments(base::DictionaryValue* arguments) const {
base::Value::CreateNullValue());
}
if (!ssl_options_.supported_token_binding_params.empty()) {
- scoped_ptr<base::ListValue> token_binding_params(new base::ListValue());
+ std::unique_ptr<base::ListValue> token_binding_params(
+ new base::ListValue());
arguments->Set(
"token-binding-params",
GetTokenBindingParams(ssl_options_.supported_token_binding_params));
diff --git a/chromium/net/test/spawned_test_server/base_test_server.h b/chromium/net/test/spawned_test_server/base_test_server.h
index 60d37e1206f..48568010f65 100644
--- a/chromium/net/test/spawned_test_server/base_test_server.h
+++ b/chromium/net/test/spawned_test_server/base_test_server.h
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <memory>
#include <string>
#include <utility>
#include <vector>
@@ -15,7 +16,6 @@
#include "base/files/file_path.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
#include "net/base/host_port_pair.h"
#include "net/ssl/ssl_client_cert_type.h"
@@ -343,7 +343,7 @@ class BaseTestServer {
HostPortPair host_port_pair_;
// Holds the data sent from the server (e.g., port number).
- scoped_ptr<base::DictionaryValue> server_data_;
+ std::unique_ptr<base::DictionaryValue> server_data_;
// If |type_| is TYPE_HTTPS or TYPE_WSS, the TLS settings to use for the test
// server.
@@ -363,7 +363,7 @@ class BaseTestServer {
// Disable creation of anonymous FTP user?
bool no_anonymous_ftp_user_;
- scoped_ptr<ScopedPortException> allowed_port_;
+ std::unique_ptr<ScopedPortException> allowed_port_;
DISALLOW_COPY_AND_ASSIGN(BaseTestServer);
};
diff --git a/chromium/net/test/spawned_test_server/remote_test_server.h b/chromium/net/test/spawned_test_server/remote_test_server.h
index 0de5c7f63b4..788f68d2fb5 100644
--- a/chromium/net/test/spawned_test_server/remote_test_server.h
+++ b/chromium/net/test/spawned_test_server/remote_test_server.h
@@ -61,7 +61,7 @@ class RemoteTestServer : public BaseTestServer {
// Helper to start and stop instances of the Python test server that runs on
// the host machine.
- scoped_ptr<SpawnerCommunicator> spawner_communicator_;
+ std::unique_ptr<SpawnerCommunicator> spawner_communicator_;
DISALLOW_COPY_AND_ASSIGN(RemoteTestServer);
};
diff --git a/chromium/net/test/spawned_test_server/spawner_communicator.cc b/chromium/net/test/spawned_test_server/spawner_communicator.cc
index 8851f9f8bec..be23202e7a1 100644
--- a/chromium/net/test/spawned_test_server/spawner_communicator.cc
+++ b/chromium/net/test/spawned_test_server/spawner_communicator.cc
@@ -190,7 +190,7 @@ void SpawnerCommunicator::SendCommandAndWaitForResultOnIOThread(
cur_request_->set_method("GET");
} else {
cur_request_->set_method("POST");
- scoped_ptr<UploadElementReader> reader(
+ std::unique_ptr<UploadElementReader> reader(
UploadOwnedBytesElementReader::CreateWithString(post_data));
cur_request_->set_upload(
ElementsUploadDataStream::CreateWithReader(std::move(reader), 0));
@@ -340,7 +340,8 @@ bool SpawnerCommunicator::StartServer(const std::string& arguments,
return false;
// Check whether the data returned from spawner server is JSON-formatted.
- scoped_ptr<base::Value> value = base::JSONReader::Read(server_return_data);
+ std::unique_ptr<base::Value> value =
+ base::JSONReader::Read(server_return_data);
if (!value.get() || !value->IsType(base::Value::TYPE_DICTIONARY)) {
LOG(ERROR) << "Invalid server data: " << server_return_data.c_str();
return false;
diff --git a/chromium/net/test/spawned_test_server/spawner_communicator.h b/chromium/net/test/spawned_test_server/spawner_communicator.h
index c066016ab13..445278257ab 100644
--- a/chromium/net/test/spawned_test_server/spawner_communicator.h
+++ b/chromium/net/test/spawned_test_server/spawner_communicator.h
@@ -7,10 +7,10 @@
#include <stdint.h>
+#include <memory>
#include <string>
#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/synchronization/waitable_event.h"
#include "base/threading/thread.h"
@@ -127,16 +127,16 @@ class SpawnerCommunicator : public URLRequest::Delegate {
const uint16_t port_;
// Helper to add |port_| to the list of the globally explicitly allowed ports.
- scoped_ptr<ScopedPortException> allowed_port_;
+ std::unique_ptr<ScopedPortException> allowed_port_;
// The next ID to use for |cur_request_| (monotonically increasing).
int next_id_;
// Request context used by |cur_request_|.
- scoped_ptr<URLRequestContext> context_;
+ std::unique_ptr<URLRequestContext> context_;
// The current (in progress) request, or NULL.
- scoped_ptr<URLRequest> cur_request_;
+ std::unique_ptr<URLRequest> cur_request_;
// Only gets/sets |is_running_| on user's thread to avoid race-condition.
bool is_running_;
diff --git a/chromium/net/test/url_request/ssl_certificate_error_job.cc b/chromium/net/test/url_request/ssl_certificate_error_job.cc
index 83e7fd0c0a7..759d5453382 100644
--- a/chromium/net/test/url_request/ssl_certificate_error_job.cc
+++ b/chromium/net/test/url_request/ssl_certificate_error_job.cc
@@ -9,7 +9,7 @@
#include "base/bind.h"
#include "base/macros.h"
#include "base/strings/stringprintf.h"
-#include "base/thread_task_runner_handle.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "net/ssl/ssl_info.h"
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_filter.h"
@@ -55,7 +55,7 @@ void SSLCertificateErrorJob::AddUrlHandler() {
URLRequestFilter* filter = URLRequestFilter::GetInstance();
filter->AddHostnameInterceptor(
"https", kMockHostname,
- scoped_ptr<URLRequestInterceptor>(new MockJobInterceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new MockJobInterceptor()));
}
GURL SSLCertificateErrorJob::GetMockUrl() {
diff --git a/chromium/net/test/url_request/url_request_failed_job.cc b/chromium/net/test/url_request/url_request_failed_job.cc
index 890a0614261..68652ccb67f 100644
--- a/chromium/net/test/url_request/url_request_failed_job.cc
+++ b/chromium/net/test/url_request/url_request_failed_job.cc
@@ -10,7 +10,7 @@
#include "base/macros.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
-#include "base/thread_task_runner_handle.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "net/base/net_errors.h"
#include "net/base/url_util.h"
#include "net/http/http_response_headers.h"
@@ -136,10 +136,10 @@ void URLRequestFailedJob::AddUrlHandlerForHostname(
// Add |hostname| to URLRequestFilter for HTTP and HTTPS.
filter->AddHostnameInterceptor(
"http", hostname,
- scoped_ptr<URLRequestInterceptor>(new MockJobInterceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new MockJobInterceptor()));
filter->AddHostnameInterceptor(
"https", hostname,
- scoped_ptr<URLRequestInterceptor>(new MockJobInterceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new MockJobInterceptor()));
}
// static
diff --git a/chromium/net/test/url_request/url_request_hanging_read_job.cc b/chromium/net/test/url_request/url_request_hanging_read_job.cc
new file mode 100644
index 00000000000..09a4c5c71b7
--- /dev/null
+++ b/chromium/net/test/url_request/url_request_hanging_read_job.cc
@@ -0,0 +1,119 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/test/url_request/url_request_hanging_read_job.h"
+
+#include <string>
+
+#include "base/bind.h"
+#include "base/location.h"
+#include "base/memory/ptr_util.h"
+#include "base/strings/stringprintf.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "net/http/http_response_headers.h"
+#include "net/http/http_util.h"
+#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_filter.h"
+
+namespace net {
+namespace {
+
+const char kMockHostname[] = "mock.hanging.read";
+
+GURL GetMockUrl(const std::string& scheme, const std::string& hostname) {
+ return GURL(scheme + "://" + hostname + "/");
+}
+
+class MockJobInterceptor : public URLRequestInterceptor {
+ public:
+ MockJobInterceptor() {}
+ ~MockJobInterceptor() override {}
+
+ // URLRequestInterceptor implementation
+ URLRequestJob* MaybeInterceptRequest(
+ URLRequest* request,
+ NetworkDelegate* network_delegate) const override {
+ return new URLRequestHangingReadJob(request, network_delegate);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MockJobInterceptor);
+};
+
+} // namespace
+
+URLRequestHangingReadJob::URLRequestHangingReadJob(
+ URLRequest* request,
+ NetworkDelegate* network_delegate)
+ : URLRequestJob(request, network_delegate),
+ content_length_(10), // non-zero content-length
+ weak_factory_(this) {}
+
+void URLRequestHangingReadJob::Start() {
+ // Start reading asynchronously so that all error reporting and data
+ // callbacks happen as they would for network requests.
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, base::Bind(&URLRequestHangingReadJob::StartAsync,
+ weak_factory_.GetWeakPtr()));
+}
+
+URLRequestHangingReadJob::~URLRequestHangingReadJob() {}
+
+int URLRequestHangingReadJob::ReadRawData(IOBuffer* buf, int buf_size) {
+ // Make read hang. It never completes.
+ return ERR_IO_PENDING;
+}
+
+int URLRequestHangingReadJob::GetResponseCode() const {
+ HttpResponseInfo info;
+ GetResponseInfoConst(&info);
+ return info.headers->response_code();
+}
+
+// Public virtual version.
+void URLRequestHangingReadJob::GetResponseInfo(HttpResponseInfo* info) {
+ // Forward to private const version.
+ GetResponseInfoConst(info);
+}
+
+// Private const version.
+void URLRequestHangingReadJob::GetResponseInfoConst(
+ HttpResponseInfo* info) const {
+ // Send back mock headers.
+ std::string raw_headers;
+ raw_headers.append(
+ "HTTP/1.1 200 OK\n"
+ "Content-type: text/plain\n");
+ raw_headers.append(
+ base::StringPrintf("Content-Length: %1d\n", content_length_));
+ info->headers = new HttpResponseHeaders(HttpUtil::AssembleRawHeaders(
+ raw_headers.c_str(), static_cast<int>(raw_headers.length())));
+}
+
+void URLRequestHangingReadJob::StartAsync() {
+ set_expected_content_size(content_length_);
+ NotifyHeadersComplete();
+}
+
+// static
+void URLRequestHangingReadJob::AddUrlHandler() {
+ // Add |hostname| to URLRequestFilter for HTTP and HTTPS.
+ URLRequestFilter* filter = URLRequestFilter::GetInstance();
+ filter->AddHostnameInterceptor("http", kMockHostname,
+ base::WrapUnique(new MockJobInterceptor()));
+ filter->AddHostnameInterceptor("https", kMockHostname,
+ base::WrapUnique(new MockJobInterceptor()));
+}
+
+// static
+GURL URLRequestHangingReadJob::GetMockHttpUrl() {
+ return GetMockUrl("http", kMockHostname);
+}
+
+// static
+GURL URLRequestHangingReadJob::GetMockHttpsUrl() {
+ return GetMockUrl("https", kMockHostname);
+}
+
+} // namespace net
diff --git a/chromium/net/test/url_request/url_request_hanging_read_job.h b/chromium/net/test/url_request/url_request_hanging_read_job.h
new file mode 100644
index 00000000000..5e335bb333b
--- /dev/null
+++ b/chromium/net/test/url_request/url_request_hanging_read_job.h
@@ -0,0 +1,48 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_
+#define NET_URL_REQUEST_URL_REQUEST_HANGING_READ_JOB_H_
+
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "net/base/net_export.h"
+#include "net/url_request/url_request_job.h"
+
+namespace net {
+
+class URLRequest;
+
+// A URLRequestJob that hangs when try to read response body.
+class URLRequestHangingReadJob : public URLRequestJob {
+ public:
+ URLRequestHangingReadJob(URLRequest* request,
+ NetworkDelegate* network_delegate);
+
+ void Start() override;
+ int ReadRawData(IOBuffer* buf, int buf_size) override;
+ int GetResponseCode() const override;
+ void GetResponseInfo(HttpResponseInfo* info) override;
+
+ // Adds the testing URLs to the URLRequestFilter.
+ static void AddUrlHandler();
+
+ static GURL GetMockHttpUrl();
+ static GURL GetMockHttpsUrl();
+
+ private:
+ void GetResponseInfoConst(HttpResponseInfo* info) const;
+ ~URLRequestHangingReadJob() override;
+
+ void StartAsync();
+
+ const int content_length_;
+ base::WeakPtrFactory<URLRequestHangingReadJob> weak_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(URLRequestHangingReadJob);
+};
+
+} // namespace net
+
+#endif // NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_
diff --git a/chromium/net/test/url_request/url_request_mock_data_job.cc b/chromium/net/test/url_request/url_request_mock_data_job.cc
index 8c67dc5cf53..8f2378b338c 100644
--- a/chromium/net/test/url_request/url_request_mock_data_job.cc
+++ b/chromium/net/test/url_request/url_request_mock_data_job.cc
@@ -7,10 +7,11 @@
#include "base/bind.h"
#include "base/location.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
-#include "base/thread_task_runner_handle.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "net/base/io_buffer.h"
#include "net/base/url_util.h"
#include "net/http/http_request_headers.h"
@@ -182,9 +183,9 @@ void URLRequestMockDataJob::AddUrlHandlerForHostname(
// Add |hostname| to URLRequestFilter for HTTP and HTTPS.
URLRequestFilter* filter = URLRequestFilter::GetInstance();
filter->AddHostnameInterceptor("http", hostname,
- make_scoped_ptr(new MockJobInterceptor()));
+ base::WrapUnique(new MockJobInterceptor()));
filter->AddHostnameInterceptor("https", hostname,
- make_scoped_ptr(new MockJobInterceptor()));
+ base::WrapUnique(new MockJobInterceptor()));
}
// static
diff --git a/chromium/net/test/url_request/url_request_mock_http_job.cc b/chromium/net/test/url_request/url_request_mock_http_job.cc
index cf2cc6c8d8f..bd893062411 100644
--- a/chromium/net/test/url_request/url_request_mock_http_job.cc
+++ b/chromium/net/test/url_request/url_request_mock_http_job.cc
@@ -120,19 +120,19 @@ GURL URLRequestMockHTTPJob::GetMockHttpsUrl(const std::string& path) {
}
// static
-scoped_ptr<URLRequestInterceptor> URLRequestMockHTTPJob::CreateInterceptor(
+std::unique_ptr<URLRequestInterceptor> URLRequestMockHTTPJob::CreateInterceptor(
const base::FilePath& base_path,
const scoped_refptr<base::SequencedWorkerPool>& worker_pool) {
- return scoped_ptr<URLRequestInterceptor>(
+ return std::unique_ptr<URLRequestInterceptor>(
new MockJobInterceptor(base_path, false, worker_pool));
}
// static
-scoped_ptr<URLRequestInterceptor>
+std::unique_ptr<URLRequestInterceptor>
URLRequestMockHTTPJob::CreateInterceptorForSingleFile(
const base::FilePath& file,
const scoped_refptr<base::SequencedWorkerPool>& worker_pool) {
- return scoped_ptr<URLRequestInterceptor>(
+ return std::unique_ptr<URLRequestInterceptor>(
new MockJobInterceptor(file, true, worker_pool));
}
diff --git a/chromium/net/test/url_request/url_request_mock_http_job.h b/chromium/net/test/url_request/url_request_mock_http_job.h
index 7a931fec5ca..41a12555d09 100644
--- a/chromium/net/test/url_request/url_request_mock_http_job.h
+++ b/chromium/net/test/url_request/url_request_mock_http_job.h
@@ -7,11 +7,11 @@
#ifndef NET_TEST_URL_REQUEST_URL_REQUEST_MOCK_HTTP_JOB_H_
#define NET_TEST_URL_REQUEST_URL_REQUEST_MOCK_HTTP_JOB_H_
+#include <memory>
#include <string>
#include "base/macros.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
#include "net/url_request/url_request_file_job.h"
#include "url/gurl.h"
@@ -55,14 +55,14 @@ class URLRequestMockHTTPJob : public URLRequestFileJob {
// URLRequestMockHTTPJob's responding like an HTTP server. |base_path| is the
// file path leading to the root of the directory to use as the root of the
// HTTP server.
- static scoped_ptr<URLRequestInterceptor> CreateInterceptor(
+ static std::unique_ptr<URLRequestInterceptor> CreateInterceptor(
const base::FilePath& base_path,
const scoped_refptr<base::SequencedWorkerPool>& worker_pool);
// Returns a URLRequestJobFactory::ProtocolHandler that serves
// URLRequestMockHTTPJob's responding like an HTTP server. It responds to all
// requests with the contents of |file|.
- static scoped_ptr<URLRequestInterceptor> CreateInterceptorForSingleFile(
+ static std::unique_ptr<URLRequestInterceptor> CreateInterceptorForSingleFile(
const base::FilePath& file,
const scoped_refptr<base::SequencedWorkerPool>& worker_pool);
diff --git a/chromium/net/test/url_request/url_request_slow_download_job.cc b/chromium/net/test/url_request/url_request_slow_download_job.cc
index ac4beb07530..61fb8658814 100644
--- a/chromium/net/test/url_request/url_request_slow_download_job.cc
+++ b/chromium/net/test/url_request/url_request_slow_download_job.cc
@@ -12,7 +12,7 @@
#include "base/single_thread_task_runner.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
-#include "base/thread_task_runner_handle.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/http/http_response_headers.h"
@@ -72,16 +72,16 @@ void URLRequestSlowDownloadJob::AddUrlHandler() {
URLRequestFilter* filter = URLRequestFilter::GetInstance();
filter->AddUrlInterceptor(
GURL(kUnknownSizeUrl),
- scoped_ptr<URLRequestInterceptor>(new Interceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new Interceptor()));
filter->AddUrlInterceptor(
GURL(kKnownSizeUrl),
- scoped_ptr<URLRequestInterceptor>(new Interceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new Interceptor()));
filter->AddUrlInterceptor(
GURL(kFinishDownloadUrl),
- scoped_ptr<URLRequestInterceptor>(new Interceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new Interceptor()));
filter->AddUrlInterceptor(
GURL(kErrorDownloadUrl),
- scoped_ptr<URLRequestInterceptor>(new Interceptor()));
+ std::unique_ptr<URLRequestInterceptor>(new Interceptor()));
}
// static