diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 15:28:34 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 13:54:51 +0000 |
commit | 2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch) | |
tree | eb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/net/test | |
parent | b014812705fc80bff0a5c120dfcef88f349816dc (diff) | |
download | qtwebengine-chromium-2a19c63448c84c1805fb1a585c3651318bb86ca7.tar.gz |
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/test')
14 files changed, 120 insertions, 35 deletions
diff --git a/chromium/net/test/cert_test_util.cc b/chromium/net/test/cert_test_util.cc index 454071f2fc7..0e96958e99d 100644 --- a/chromium/net/test/cert_test_util.cc +++ b/chromium/net/test/cert_test_util.cc @@ -55,12 +55,10 @@ scoped_refptr<X509Certificate> CreateCertificateChainFromFile( std::vector<bssl::UniquePtr<CRYPTO_BUFFER>> intermediates; for (size_t i = 1; i < certs.size(); ++i) - intermediates.push_back( - x509_util::DupCryptoBuffer(certs[i]->cert_buffer())); + intermediates.push_back(bssl::UpRef(certs[i]->cert_buffer())); scoped_refptr<X509Certificate> result(X509Certificate::CreateFromBuffer( - x509_util::DupCryptoBuffer(certs[0]->cert_buffer()), - std::move(intermediates))); + bssl::UpRef(certs[0]->cert_buffer()), std::move(intermediates))); return result; } diff --git a/chromium/net/test/embedded_test_server/controllable_http_response.cc b/chromium/net/test/embedded_test_server/controllable_http_response.cc index 226b126d6f5..9398b31aa79 100644 --- a/chromium/net/test/embedded_test_server/controllable_http_response.cc +++ b/chromium/net/test/embedded_test_server/controllable_http_response.cc @@ -5,6 +5,7 @@ #include "net/test/embedded_test_server/controllable_http_response.h" #include "base/logging.h" +#include "base/strings/stringprintf.h" #include "base/threading/thread_task_runner_handle.h" namespace net { @@ -65,6 +66,20 @@ void ControllableHttpResponse::WaitForRequest() { state_ = State::READY_TO_SEND_DATA; } +void ControllableHttpResponse::Send(net::HttpStatusCode http_status, + const std::string& content_type, + const std::string& content, + const std::vector<std::string>& cookies) { + std::string content_data(base::StringPrintf( + "HTTP/1.1 %d %s\nContent-type: %s\n", static_cast<int>(http_status), + net::GetHttpReasonPhrase(http_status), content_type.c_str())); + for (auto& cookie : cookies) + content_data += "Set-Cookie: " + cookie + "\n"; + content_data += "\n"; + content_data += content; + Send(content_data); +} + void ControllableHttpResponse::Send(const std::string& bytes) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_EQ(State::READY_TO_SEND_DATA, state_) << "Send() called without any " diff --git a/chromium/net/test/embedded_test_server/controllable_http_response.h b/chromium/net/test/embedded_test_server/controllable_http_response.h index ffc72717e3f..efb23fda7e2 100644 --- a/chromium/net/test/embedded_test_server/controllable_http_response.h +++ b/chromium/net/test/embedded_test_server/controllable_http_response.h @@ -7,6 +7,7 @@ #include <memory> #include <string> +#include <vector> #include "base/macros.h" #include "base/memory/ref_counted.h" @@ -14,6 +15,7 @@ #include "base/run_loop.h" #include "base/sequence_checker.h" #include "base/single_thread_task_runner.h" +#include "net/http/http_status_code.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" @@ -46,6 +48,12 @@ class ControllableHttpResponse { // May be called several time. void Send(const std::string& bytes); + // Same as 2) but with more specific parameters. + void Send(net::HttpStatusCode http_status, + const std::string& content_type = std::string("text/html"), + const std::string& content = std::string(), + const std::vector<std::string>& cookies = {}); + // 3) Notify there are no more data to be sent and close the socket. void Done(); 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 b3473bb5aa9..2951551c536 100644 --- a/chromium/net/test/embedded_test_server/embedded_test_server.cc +++ b/chromium/net/test/embedded_test_server/embedded_test_server.cc @@ -30,6 +30,7 @@ #include "net/socket/ssl_server_socket.h" #include "net/socket/stream_socket.h" #include "net/socket/tcp_server_socket.h" +#include "net/ssl/ssl_info.h" #include "net/ssl/ssl_server_config.h" #include "net/test/cert_test_util.h" #include "net/test/embedded_test_server/default_handlers.h" @@ -83,7 +84,8 @@ void EmbeddedTestServer::RegisterTestCerts() { void EmbeddedTestServer::SetConnectionListener( EmbeddedTestServerConnectionListener* listener) { - DCHECK(!io_thread_.get()); + DCHECK(!io_thread_.get()) + << "ConnectionListener must be set before starting the server."; connection_listener_ = listener; } @@ -170,7 +172,8 @@ void EmbeddedTestServer::InitializeSSLServerContext() { } void EmbeddedTestServer::StartAcceptingConnections() { - DCHECK(!io_thread_.get()); + DCHECK(!io_thread_.get()) + << "Server must not be started while server is running"; base::Thread::Options thread_options; thread_options.message_loop_type = base::MessageLoop::TYPE_IO; io_thread_.reset(new base::Thread("EmbeddedTestServer IO Thread")); @@ -206,6 +209,12 @@ void EmbeddedTestServer::HandleRequest(HttpConnection* connection, DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); request->base_url = base_url_; + SSLInfo ssl_info; + if (connection->socket_->GetSSLInfo(&ssl_info) && + ssl_info.early_data_received) { + request->headers["Early-Data"] = "1"; + } + for (const auto& monitor : request_monitors_) monitor.Run(*request); @@ -256,16 +265,32 @@ GURL EmbeddedTestServer::GetURL( return local_url.ReplaceComponents(replace_host); } +void EmbeddedTestServer::SetSSLConfig(ServerCertificate cert, + const SSLServerConfig& ssl_config) { + DCHECK(!Started()); + cert_ = cert; + ssl_config_ = ssl_config; +} + bool EmbeddedTestServer::GetAddressList(AddressList* address_list) const { *address_list = AddressList(local_endpoint_); return true; } -void EmbeddedTestServer::SetSSLConfig(ServerCertificate cert, - const SSLServerConfig& ssl_config) { - DCHECK(!Started()); +void EmbeddedTestServer::ResetSSLConfigOnIOThread( + ServerCertificate cert, + const SSLServerConfig& ssl_config) { cert_ = cert; ssl_config_ = ssl_config; + connections_.clear(); + InitializeSSLServerContext(); +} + +bool EmbeddedTestServer::ResetSSLConfig(ServerCertificate cert, + const SSLServerConfig& ssl_config) { + return PostTaskToIOThreadAndWait( + base::BindRepeating(&EmbeddedTestServer::ResetSSLConfigOnIOThread, + base::Unretained(this), cert, ssl_config)); } void EmbeddedTestServer::SetSSLConfig(ServerCertificate cert) { 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 4fc1bb59631..2f273ae1f28 100644 --- a/chromium/net/test/embedded_test_server/embedded_test_server.h +++ b/chromium/net/test/embedded_test_server/embedded_test_server.h @@ -193,6 +193,9 @@ class EmbeddedTestServer { void SetSSLConfig(ServerCertificate cert, const SSLServerConfig& ssl_config); void SetSSLConfig(ServerCertificate cert); + bool ResetSSLConfig(ServerCertificate cert, + const SSLServerConfig& ssl_config); + // Returns the file name of the certificate the server is using. The test // certificates can be found in net/data/ssl/certificates/. std::string GetCertificateName() const; @@ -242,6 +245,10 @@ class EmbeddedTestServer { // Shuts down the server. void ShutdownOnIOThread(); + // Resets the SSLServerConfig on the IO thread. + void ResetSSLConfigOnIOThread(ServerCertificate cert, + const SSLServerConfig& ssl_config); + // Upgrade the TCP connection to one over SSL. std::unique_ptr<StreamSocket> DoSSLUpgrade( std::unique_ptr<StreamSocket> connection); 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 2e257dee787..4d6a0769d1a 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 @@ -147,7 +147,7 @@ class EmbeddedTestServerTest void OnURLFetchComplete(const URLFetcher* source) override { ++num_responses_received_; if (num_responses_received_ == num_responses_expected_) - base::RunLoop::QuitCurrentWhenIdleDeprecated(); + std::move(quit_run_loop_).Run(); } // Waits until the specified number of responses are received. @@ -155,7 +155,9 @@ class EmbeddedTestServerTest num_responses_received_ = 0; num_responses_expected_ = num_responses; // Will be terminated in OnURLFetchComplete(). - base::RunLoop().Run(); + base::RunLoop run_loop; + quit_run_loop_ = run_loop.QuitClosure(); + run_loop.Run(); } // Handles |request| sent to |path| and returns the response per |content|, @@ -188,6 +190,7 @@ class EmbeddedTestServerTest scoped_refptr<TestURLRequestContextGetter> request_context_getter_; TestConnectionListener connection_listener_; std::unique_ptr<EmbeddedTestServer> server_; + base::OnceClosure quit_run_loop_; }; TEST_P(EmbeddedTestServerTest, GetBaseURL) { @@ -388,7 +391,7 @@ namespace { class CancelRequestDelegate : public TestDelegate { public: - CancelRequestDelegate() = default; + CancelRequestDelegate() { set_on_complete(base::DoNothing()); } ~CancelRequestDelegate() override = default; void OnResponseStarted(URLRequest* request, int net_error) override { @@ -543,8 +546,10 @@ class EmbeddedTestServerThreadingTestDelegate TRAFFIC_ANNOTATION_FOR_TESTS); fetcher->SetRequestContext( new TestURLRequestContextGetter(loop->task_runner())); + base::RunLoop run_loop; + quit_run_loop_ = run_loop.QuitClosure(); fetcher->Start(); - base::RunLoop().Run(); + run_loop.Run(); fetcher.reset(); // Shut down. @@ -556,7 +561,7 @@ class EmbeddedTestServerThreadingTestDelegate // URLFetcherDelegate override. void OnURLFetchComplete(const URLFetcher* source) override { - base::RunLoop::QuitCurrentWhenIdleDeprecated(); + std::move(quit_run_loop_).Run(); } private: @@ -564,6 +569,8 @@ class EmbeddedTestServerThreadingTestDelegate const bool message_loop_present_on_shutdown_; const EmbeddedTestServer::Type type_; + base::OnceClosure quit_run_loop_; + DISALLOW_COPY_AND_ASSIGN(EmbeddedTestServerThreadingTestDelegate); }; 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 f0efe4de91a..d671438c3aa 100644 --- a/chromium/net/test/embedded_test_server/request_handler_util.cc +++ b/chromium/net/test/embedded_test_server/request_handler_util.cc @@ -15,7 +15,9 @@ #include "base/format_macros.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" +#include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h" +#include "build/build_config.h" #include "net/base/escape.h" #include "net/base/url_util.h" #include "net/http/http_byte_range.h" @@ -25,7 +27,7 @@ namespace net { namespace test_server { -namespace { +const char kMockHttpHeadersExtension[] = "mock-http-headers"; std::string GetContentType(const base::FilePath& path) { if (path.MatchesExtension(FILE_PATH_LITERAL(".crx"))) @@ -65,8 +67,6 @@ std::string GetContentType(const base::FilePath& path) { return ""; } -} // namespace - bool ShouldHandle(const HttpRequest& request, const std::string& path_prefix) { GURL url = request.GetURL(); return url.path() == path_prefix || @@ -189,8 +189,15 @@ std::unique_ptr<HttpResponse> HandleFileRequest( } } - base::FilePath headers_path( - file_path.AddExtension(FILE_PATH_LITERAL("mock-http-headers"))); + base::FilePath::StringPieceType mock_headers_extension; +#if defined(OS_WIN) + base::string16 temp = base::ASCIIToUTF16(kMockHttpHeadersExtension); + mock_headers_extension = temp; +#else + mock_headers_extension = kMockHttpHeadersExtension; +#endif + + base::FilePath headers_path(file_path.AddExtension(mock_headers_extension)); if (base::PathExists(headers_path)) { std::string headers_contents; 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 fe86755c17f..9c7b6805763 100644 --- a/chromium/net/test/embedded_test_server/request_handler_util.h +++ b/chromium/net/test/embedded_test_server/request_handler_util.h @@ -24,6 +24,17 @@ namespace net { namespace test_server { struct HttpRequest; +// The extension that is used to find a file containing mock headers to use +// for a test file. For example, a test data directory can have: +// foo.html +// foo.html.mock-http-headers +// When the test server serves foo.html, if it finds foo.html.mock-http-headers +// it will use the contents of that file for the headers. +extern const char kMockHttpHeadersExtension[]; + +// Returns the Content-Type header value for a path based on its extension. +std::string GetContentType(const base::FilePath& path); + // This file is only meant for compatibility with testserver.py. No // additional handlers should be added here that don't affect multiple // distinct tests. diff --git a/chromium/net/test/quic_simple_test_server.cc b/chromium/net/test/quic_simple_test_server.cc index 13eccd0d9c4..c55f148df0c 100644 --- a/chromium/net/test/quic_simple_test_server.cc +++ b/chromium/net/test/quic_simple_test_server.cc @@ -51,7 +51,7 @@ const char kSimpleHeaderName[] = "hello_header"; const char kSimpleHeaderValue[] = "hello header value"; base::Thread* g_quic_server_thread = nullptr; -net::QuicMemoryCacheBackend* g_quic_cache_backend = nullptr; +quic::QuicMemoryCacheBackend* g_quic_cache_backend = nullptr; net::QuicSimpleServer* g_quic_server = nullptr; int g_quic_server_port = 0; @@ -137,7 +137,7 @@ void SetupQuicMemoryCacheBackend() { headers[kStatusHeader] = kHelloStatus; spdy::SpdyHeaderBlock trailers; trailers[kHelloTrailerName] = kHelloTrailerValue; - g_quic_cache_backend = new QuicMemoryCacheBackend(); + g_quic_cache_backend = new quic::QuicMemoryCacheBackend(); g_quic_cache_backend->AddResponse(base::StringPrintf("%s", kTestServerHost), kHelloPath, std::move(headers), kHelloBodyValue, std::move(trailers)); @@ -153,7 +153,7 @@ void StartQuicServerOnServerThread(const base::FilePath& test_files_root, DCHECK(g_quic_server_thread->task_runner()->BelongsToCurrentThread()); DCHECK(!g_quic_server); - QuicConfig config; + quic::QuicConfig config; // Set up server certs. base::FilePath directory; directory = test_files_root; @@ -163,9 +163,10 @@ void StartQuicServerOnServerThread(const base::FilePath& test_files_root, base::FilePath())); SetupQuicMemoryCacheBackend(); - g_quic_server = new QuicSimpleServer( - std::move(proof_source), config, QuicCryptoServerConfig::ConfigOptions(), - AllSupportedVersions(), g_quic_cache_backend); + g_quic_server = + new QuicSimpleServer(std::move(proof_source), config, + quic::QuicCryptoServerConfig::ConfigOptions(), + quic::AllSupportedVersions(), g_quic_cache_backend); // Start listening on an unbound port. int rv = g_quic_server->Listen(IPEndPoint(IPAddress::IPv4AllZeros(), 0)); diff --git a/chromium/net/test/run_all_unittests.cc b/chromium/net/test/run_all_unittests.cc index 635c4099e9b..5786dfea0aa 100644 --- a/chromium/net/test/run_all_unittests.cc +++ b/chromium/net/test/run_all_unittests.cc @@ -13,7 +13,7 @@ #include "url/url_features.h" #if !defined(OS_IOS) -#include "mojo/edk/embedder/embedder.h" // nogncheck +#include "mojo/core/embedder/embedder.h" // nogncheck #endif using net::internal::ClientSocketPoolBaseHelper; @@ -58,7 +58,7 @@ int main(int argc, char** argv) { ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); #if !defined(OS_IOS) - mojo::edk::Init(); + mojo::core::Init(); #endif return base::LaunchUnitTests( diff --git a/chromium/net/test/spawned_test_server/spawned_test_server.h b/chromium/net/test/spawned_test_server/spawned_test_server.h index 47232ba1ffc..662a9467df3 100644 --- a/chromium/net/test/spawned_test_server/spawned_test_server.h +++ b/chromium/net/test/spawned_test_server/spawned_test_server.h @@ -7,7 +7,7 @@ #include "build/build_config.h" -#if defined(OS_ANDROID) || defined(OS_FUCHSIA) +#if defined(USE_REMOTE_TEST_SERVER) #include "net/test/spawned_test_server/remote_test_server.h" #else #include "net/test/spawned_test_server/local_test_server.h" @@ -15,7 +15,7 @@ namespace net { -#if defined(OS_ANDROID) || defined(OS_FUCHSIA) +#if defined(USE_REMOTE_TEST_SERVER) typedef RemoteTestServer SpawnedTestServer; #else typedef LocalTestServer SpawnedTestServer; 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 03da26a881f..d4c0bf9293b 100644 --- a/chromium/net/test/url_request/url_request_failed_job.cc +++ b/chromium/net/test/url_request/url_request_failed_job.cc @@ -121,9 +121,10 @@ void URLRequestFailedJob::GetResponseInfo(HttpResponseInfo* info) { void URLRequestFailedJob::PopulateNetErrorDetails( NetErrorDetails* details) const { if (net_error_ == ERR_QUIC_PROTOCOL_ERROR) { - details->quic_connection_error = QUIC_INTERNAL_ERROR; + details->quic_connection_error = quic::QUIC_INTERNAL_ERROR; } else if (net_error_ == ERR_NETWORK_CHANGED) { - details->quic_connection_error = QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK; + details->quic_connection_error = + quic::QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK; } } 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 8ca5a6982f5..1ce5694f216 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 @@ -141,11 +141,14 @@ void URLRequestMockHTTPJob::GetResponseInfo(HttpResponseInfo* info) { GetResponseInfoConst(info); } -bool URLRequestMockHTTPJob::IsRedirectResponse(GURL* location, - int* http_status_code) { +bool URLRequestMockHTTPJob::IsRedirectResponse( + GURL* location, + int* http_status_code, + bool* insecure_scheme_was_upgraded) { // Override the URLRequestFileJob implementation to invoke the default // one based on HttpResponseInfo. - return URLRequestJob::IsRedirectResponse(location, http_status_code); + return URLRequestJob::IsRedirectResponse(location, http_status_code, + insecure_scheme_was_upgraded); } void URLRequestMockHTTPJob::OnReadComplete(net::IOBuffer* buffer, int result) { 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 f9dc2cf59aa..a8515f9f5f2 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 @@ -39,7 +39,9 @@ class URLRequestMockHTTPJob : public URLRequestFileJob { bool GetMimeType(std::string* mime_type) const override; bool GetCharset(std::string* charset) override; void GetResponseInfo(HttpResponseInfo* info) override; - bool IsRedirectResponse(GURL* location, int* http_status_code) override; + bool IsRedirectResponse(GURL* location, + int* http_status_code, + bool* insecure_scheme_was_upgraded) override; // URLRequestFileJob overridess. void OnReadComplete(net::IOBuffer* buffer, int result) override; |