| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/field_trial.h" | 8 #include "base/field_trial.h" |
| 9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
| 10 #include "base/histogram.h" | 10 #include "base/histogram.h" |
| (...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 TRACE_EVENT_BEGIN("http.ssl_connect", request_, request_->url.spec()); | 547 TRACE_EVENT_BEGIN("http.ssl_connect", request_, request_->url.spec()); |
| 548 rv = DoSSLConnect(); | 548 rv = DoSSLConnect(); |
| 549 break; | 549 break; |
| 550 case STATE_SSL_CONNECT_COMPLETE: | 550 case STATE_SSL_CONNECT_COMPLETE: |
| 551 rv = DoSSLConnectComplete(rv); | 551 rv = DoSSLConnectComplete(rv); |
| 552 TRACE_EVENT_END("http.ssl_connect", request_, request_->url.spec()); | 552 TRACE_EVENT_END("http.ssl_connect", request_, request_->url.spec()); |
| 553 break; | 553 break; |
| 554 case STATE_SEND_REQUEST: | 554 case STATE_SEND_REQUEST: |
| 555 DCHECK_EQ(OK, rv); | 555 DCHECK_EQ(OK, rv); |
| 556 TRACE_EVENT_BEGIN("http.send_request", request_, request_->url.spec()); | 556 TRACE_EVENT_BEGIN("http.send_request", request_, request_->url.spec()); |
| 557 net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST); | 557 net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST, NULL); |
| 558 rv = DoSendRequest(); | 558 rv = DoSendRequest(); |
| 559 break; | 559 break; |
| 560 case STATE_SEND_REQUEST_COMPLETE: | 560 case STATE_SEND_REQUEST_COMPLETE: |
| 561 rv = DoSendRequestComplete(rv); | 561 rv = DoSendRequestComplete(rv); |
| 562 TRACE_EVENT_END("http.send_request", request_, request_->url.spec()); | 562 TRACE_EVENT_END("http.send_request", request_, request_->url.spec()); |
| 563 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST); | 563 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_SEND_REQUEST, NULL); |
| 564 break; | 564 break; |
| 565 case STATE_READ_HEADERS: | 565 case STATE_READ_HEADERS: |
| 566 DCHECK_EQ(OK, rv); | 566 DCHECK_EQ(OK, rv); |
| 567 TRACE_EVENT_BEGIN("http.read_headers", request_, request_->url.spec()); | 567 TRACE_EVENT_BEGIN("http.read_headers", request_, request_->url.spec()); |
| 568 net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_HEADERS); | 568 net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_HEADERS, NULL); |
| 569 rv = DoReadHeaders(); | 569 rv = DoReadHeaders(); |
| 570 break; | 570 break; |
| 571 case STATE_READ_HEADERS_COMPLETE: | 571 case STATE_READ_HEADERS_COMPLETE: |
| 572 rv = DoReadHeadersComplete(rv); | 572 rv = DoReadHeadersComplete(rv); |
| 573 TRACE_EVENT_END("http.read_headers", request_, request_->url.spec()); | 573 TRACE_EVENT_END("http.read_headers", request_, request_->url.spec()); |
| 574 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_HEADERS); | 574 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_HEADERS, NULL); |
| 575 break; | 575 break; |
| 576 case STATE_RESOLVE_CANONICAL_NAME: | 576 case STATE_RESOLVE_CANONICAL_NAME: |
| 577 DCHECK_EQ(OK, rv); | 577 DCHECK_EQ(OK, rv); |
| 578 net_log_.BeginEvent( | 578 net_log_.BeginEvent( |
| 579 NetLog::TYPE_HTTP_TRANSACTION_RESOLVE_CANONICAL_NAME); | 579 NetLog::TYPE_HTTP_TRANSACTION_RESOLVE_CANONICAL_NAME, NULL); |
| 580 rv = DoResolveCanonicalName(); | 580 rv = DoResolveCanonicalName(); |
| 581 break; | 581 break; |
| 582 case STATE_RESOLVE_CANONICAL_NAME_COMPLETE: | 582 case STATE_RESOLVE_CANONICAL_NAME_COMPLETE: |
| 583 rv = DoResolveCanonicalNameComplete(rv); | 583 rv = DoResolveCanonicalNameComplete(rv); |
| 584 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_RESOLVE_CANONICAL_NAME); | 584 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_RESOLVE_CANONICAL_NAME, |
| 585 NULL); |
| 585 break; | 586 break; |
| 586 case STATE_READ_BODY: | 587 case STATE_READ_BODY: |
| 587 DCHECK_EQ(OK, rv); | 588 DCHECK_EQ(OK, rv); |
| 588 TRACE_EVENT_BEGIN("http.read_body", request_, request_->url.spec()); | 589 TRACE_EVENT_BEGIN("http.read_body", request_, request_->url.spec()); |
| 589 net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_BODY); | 590 net_log_.BeginEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_BODY, NULL); |
| 590 rv = DoReadBody(); | 591 rv = DoReadBody(); |
| 591 break; | 592 break; |
| 592 case STATE_READ_BODY_COMPLETE: | 593 case STATE_READ_BODY_COMPLETE: |
| 593 rv = DoReadBodyComplete(rv); | 594 rv = DoReadBodyComplete(rv); |
| 594 TRACE_EVENT_END("http.read_body", request_, request_->url.spec()); | 595 TRACE_EVENT_END("http.read_body", request_, request_->url.spec()); |
| 595 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_BODY); | 596 net_log_.EndEvent(NetLog::TYPE_HTTP_TRANSACTION_READ_BODY, NULL); |
| 596 break; | 597 break; |
| 597 case STATE_DRAIN_BODY_FOR_AUTH_RESTART: | 598 case STATE_DRAIN_BODY_FOR_AUTH_RESTART: |
| 598 DCHECK_EQ(OK, rv); | 599 DCHECK_EQ(OK, rv); |
| 599 TRACE_EVENT_BEGIN("http.drain_body_for_auth_restart", | 600 TRACE_EVENT_BEGIN("http.drain_body_for_auth_restart", |
| 600 request_, request_->url.spec()); | 601 request_, request_->url.spec()); |
| 601 net_log_.BeginEvent( | 602 net_log_.BeginEvent( |
| 602 NetLog::TYPE_HTTP_TRANSACTION_DRAIN_BODY_FOR_AUTH_RESTART); | 603 NetLog::TYPE_HTTP_TRANSACTION_DRAIN_BODY_FOR_AUTH_RESTART, NULL); |
| 603 rv = DoDrainBodyForAuthRestart(); | 604 rv = DoDrainBodyForAuthRestart(); |
| 604 break; | 605 break; |
| 605 case STATE_DRAIN_BODY_FOR_AUTH_RESTART_COMPLETE: | 606 case STATE_DRAIN_BODY_FOR_AUTH_RESTART_COMPLETE: |
| 606 rv = DoDrainBodyForAuthRestartComplete(rv); | 607 rv = DoDrainBodyForAuthRestartComplete(rv); |
| 607 TRACE_EVENT_END("http.drain_body_for_auth_restart", | 608 TRACE_EVENT_END("http.drain_body_for_auth_restart", |
| 608 request_, request_->url.spec()); | 609 request_, request_->url.spec()); |
| 609 net_log_.EndEvent( | 610 net_log_.EndEvent( |
| 610 NetLog::TYPE_HTTP_TRANSACTION_DRAIN_BODY_FOR_AUTH_RESTART); | 611 NetLog::TYPE_HTTP_TRANSACTION_DRAIN_BODY_FOR_AUTH_RESTART, NULL); |
| 611 break; | 612 break; |
| 612 case STATE_SPDY_SEND_REQUEST: | 613 case STATE_SPDY_SEND_REQUEST: |
| 613 DCHECK_EQ(OK, rv); | 614 DCHECK_EQ(OK, rv); |
| 614 TRACE_EVENT_BEGIN("http.send_request", request_, request_->url.spec()); | 615 TRACE_EVENT_BEGIN("http.send_request", request_, request_->url.spec()); |
| 615 net_log_.BeginEvent(NetLog::TYPE_SPDY_TRANSACTION_SEND_REQUEST); | 616 net_log_.BeginEvent(NetLog::TYPE_SPDY_TRANSACTION_SEND_REQUEST, NULL); |
| 616 rv = DoSpdySendRequest(); | 617 rv = DoSpdySendRequest(); |
| 617 break; | 618 break; |
| 618 case STATE_SPDY_SEND_REQUEST_COMPLETE: | 619 case STATE_SPDY_SEND_REQUEST_COMPLETE: |
| 619 rv = DoSpdySendRequestComplete(rv); | 620 rv = DoSpdySendRequestComplete(rv); |
| 620 TRACE_EVENT_END("http.send_request", request_, request_->url.spec()); | 621 TRACE_EVENT_END("http.send_request", request_, request_->url.spec()); |
| 621 net_log_.EndEvent(NetLog::TYPE_SPDY_TRANSACTION_SEND_REQUEST); | 622 net_log_.EndEvent(NetLog::TYPE_SPDY_TRANSACTION_SEND_REQUEST, NULL); |
| 622 break; | 623 break; |
| 623 case STATE_SPDY_READ_HEADERS: | 624 case STATE_SPDY_READ_HEADERS: |
| 624 DCHECK_EQ(OK, rv); | 625 DCHECK_EQ(OK, rv); |
| 625 TRACE_EVENT_BEGIN("http.read_headers", request_, request_->url.spec()); | 626 TRACE_EVENT_BEGIN("http.read_headers", request_, request_->url.spec()); |
| 626 net_log_.BeginEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_HEADERS); | 627 net_log_.BeginEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_HEADERS, NULL); |
| 627 rv = DoSpdyReadHeaders(); | 628 rv = DoSpdyReadHeaders(); |
| 628 break; | 629 break; |
| 629 case STATE_SPDY_READ_HEADERS_COMPLETE: | 630 case STATE_SPDY_READ_HEADERS_COMPLETE: |
| 630 rv = DoSpdyReadHeadersComplete(rv); | 631 rv = DoSpdyReadHeadersComplete(rv); |
| 631 TRACE_EVENT_END("http.read_headers", request_, request_->url.spec()); | 632 TRACE_EVENT_END("http.read_headers", request_, request_->url.spec()); |
| 632 net_log_.EndEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_HEADERS); | 633 net_log_.EndEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_HEADERS, NULL); |
| 633 break; | 634 break; |
| 634 case STATE_SPDY_READ_BODY: | 635 case STATE_SPDY_READ_BODY: |
| 635 DCHECK_EQ(OK, rv); | 636 DCHECK_EQ(OK, rv); |
| 636 TRACE_EVENT_BEGIN("http.read_body", request_, request_->url.spec()); | 637 TRACE_EVENT_BEGIN("http.read_body", request_, request_->url.spec()); |
| 637 net_log_.BeginEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_BODY); | 638 net_log_.BeginEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_BODY, NULL); |
| 638 rv = DoSpdyReadBody(); | 639 rv = DoSpdyReadBody(); |
| 639 break; | 640 break; |
| 640 case STATE_SPDY_READ_BODY_COMPLETE: | 641 case STATE_SPDY_READ_BODY_COMPLETE: |
| 641 rv = DoSpdyReadBodyComplete(rv); | 642 rv = DoSpdyReadBodyComplete(rv); |
| 642 TRACE_EVENT_END("http.read_body", request_, request_->url.spec()); | 643 TRACE_EVENT_END("http.read_body", request_, request_->url.spec()); |
| 643 net_log_.EndEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_BODY); | 644 net_log_.EndEvent(NetLog::TYPE_SPDY_TRANSACTION_READ_BODY, NULL); |
| 644 break; | 645 break; |
| 645 default: | 646 default: |
| 646 NOTREACHED() << "bad state"; | 647 NOTREACHED() << "bad state"; |
| 647 rv = ERR_FAILED; | 648 rv = ERR_FAILED; |
| 648 break; | 649 break; |
| 649 } | 650 } |
| 650 } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE); | 651 } while (rv != ERR_IO_PENDING && next_state_ != STATE_NONE); |
| 651 | 652 |
| 652 return rv; | 653 return rv; |
| 653 } | 654 } |
| (...skipping 1325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1979 http_host_port_pair); | 1980 http_host_port_pair); |
| 1980 | 1981 |
| 1981 alternate_protocol_mode_ = kDoNotUseAlternateProtocol; | 1982 alternate_protocol_mode_ = kDoNotUseAlternateProtocol; |
| 1982 if (connection_->socket()) | 1983 if (connection_->socket()) |
| 1983 connection_->socket()->Disconnect(); | 1984 connection_->socket()->Disconnect(); |
| 1984 connection_->Reset(); | 1985 connection_->Reset(); |
| 1985 next_state_ = STATE_INIT_CONNECTION; | 1986 next_state_ = STATE_INIT_CONNECTION; |
| 1986 } | 1987 } |
| 1987 | 1988 |
| 1988 } // namespace net | 1989 } // namespace net |
| OLD | NEW |