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 |