diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-07-14 17:41:05 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-08-04 12:37:36 +0000 |
commit | 399c965b6064c440ddcf4015f5f8e9d131c7a0a6 (patch) | |
tree | 6b06b60ff365abef0e13b3503d593a0df48d20e8 /chromium/net/test/embedded_test_server/embedded_test_server.cc | |
parent | 7366110654eec46f21b6824f302356426f48cd74 (diff) | |
download | qtwebengine-chromium-399c965b6064c440ddcf4015f5f8e9d131c7a0a6.tar.gz |
BASELINE: Update Chromium to 52.0.2743.76 and Ninja to 1.7.1
Change-Id: I382f51b959689505a60f8b707255ecb344f7d8b4
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/net/test/embedded_test_server/embedded_test_server.cc')
-rw-r--r-- | chromium/net/test/embedded_test_server/embedded_test_server.cc | 52 |
1 files changed, 38 insertions, 14 deletions
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()); |