Telemetry: All devtools http requests should have a finite timeout.
[chromium-blink-merge.git] / net / test / embedded_test_server / http_connection.cc
blobb7eab2ebd3b8c5fdffa20ee77564b95a52e740b8
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "net/test/embedded_test_server/http_connection.h"
7 #include "net/socket/stream_listen_socket.h"
8 #include "net/test/embedded_test_server/http_response.h"
10 namespace net {
11 namespace test_server {
13 HttpConnection::HttpConnection(scoped_ptr<StreamListenSocket> socket,
14 const HandleRequestCallback& callback)
15 : socket_(socket.Pass()),
16 callback_(callback) {
19 HttpConnection::~HttpConnection() {
22 void HttpConnection::SendResponse(scoped_ptr<HttpResponse> response) const {
23 const std::string response_string = response->ToResponseString();
24 socket_->Send(response_string.c_str(), response_string.length());
27 void HttpConnection::ReceiveData(const base::StringPiece& data) {
28 request_parser_.ProcessChunk(data);
29 if (request_parser_.ParseRequest() == HttpRequestParser::ACCEPTED) {
30 callback_.Run(this, request_parser_.GetRequest());
34 } // namespace test_server
35 } // namespace net