OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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/spdy/spdy_stream.h" | 5 #include "net/spdy/spdy_stream.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/compiler_specific.h" |
8 #include "base/logging.h" | 9 #include "base/logging.h" |
9 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
10 #include "base/stringprintf.h" | 11 #include "base/stringprintf.h" |
11 #include "base/values.h" | 12 #include "base/values.h" |
12 #include "net/spdy/spdy_http_utils.h" | 13 #include "net/spdy/spdy_http_utils.h" |
13 #include "net/spdy/spdy_session.h" | 14 #include "net/spdy/spdy_session.h" |
14 | 15 |
15 namespace net { | 16 namespace net { |
16 | 17 |
17 namespace { | 18 namespace { |
(...skipping 25 matching lines...) Expand all Loading... |
43 if (*i >= 'A' && *i <= 'Z') { | 44 if (*i >= 'A' && *i <= 'Z') { |
44 return true; | 45 return true; |
45 } | 46 } |
46 } | 47 } |
47 return false; | 48 return false; |
48 } | 49 } |
49 | 50 |
50 } // namespace | 51 } // namespace |
51 | 52 |
52 SpdyStream::SpdyStream(SpdySession* session, | 53 SpdyStream::SpdyStream(SpdySession* session, |
| 54 const std::string& path, |
| 55 RequestPriority priority, |
| 56 int32 initial_send_window_size, |
| 57 int32 initial_recv_window_size, |
53 bool pushed, | 58 bool pushed, |
54 const BoundNetLog& net_log) | 59 const BoundNetLog& net_log) |
55 : continue_buffering_data_(true), | 60 : weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
| 61 continue_buffering_data_(true), |
56 stream_id_(0), | 62 stream_id_(0), |
57 priority_(HIGHEST), | 63 path_(path), |
| 64 priority_(priority), |
58 slot_(0), | 65 slot_(0), |
59 send_stalled_by_flow_control_(false), | 66 send_stalled_by_flow_control_(false), |
60 send_window_size_(kSpdyStreamInitialWindowSize), | 67 send_window_size_(initial_send_window_size), |
61 recv_window_size_(kSpdyStreamInitialWindowSize), | 68 recv_window_size_(initial_recv_window_size), |
62 unacked_recv_window_bytes_(0), | 69 unacked_recv_window_bytes_(0), |
63 pushed_(pushed), | 70 pushed_(pushed), |
64 response_received_(false), | 71 response_received_(false), |
65 session_(session), | 72 session_(session), |
66 delegate_(NULL), | 73 delegate_(NULL), |
67 request_time_(base::Time::Now()), | 74 request_time_(base::Time::Now()), |
68 response_(new SpdyHeaderBlock), | 75 response_(new SpdyHeaderBlock), |
69 io_state_(STATE_NONE), | 76 io_state_(STATE_NONE), |
70 response_status_(OK), | 77 response_status_(OK), |
71 cancelled_(false), | 78 cancelled_(false), |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
732 | 739 |
733 io_state_ = STATE_GET_DOMAIN_BOUND_CERT_COMPLETE; | 740 io_state_ = STATE_GET_DOMAIN_BOUND_CERT_COMPLETE; |
734 ServerBoundCertService* sbc_service = session_->GetServerBoundCertService(); | 741 ServerBoundCertService* sbc_service = session_->GetServerBoundCertService(); |
735 DCHECK(sbc_service != NULL); | 742 DCHECK(sbc_service != NULL); |
736 std::vector<uint8> requested_cert_types; | 743 std::vector<uint8> requested_cert_types; |
737 requested_cert_types.push_back(CLIENT_CERT_ECDSA_SIGN); | 744 requested_cert_types.push_back(CLIENT_CERT_ECDSA_SIGN); |
738 int rv = sbc_service->GetDomainBoundCert( | 745 int rv = sbc_service->GetDomainBoundCert( |
739 GetUrl().GetOrigin().spec(), requested_cert_types, | 746 GetUrl().GetOrigin().spec(), requested_cert_types, |
740 &domain_bound_cert_type_, &domain_bound_private_key_, &domain_bound_cert_, | 747 &domain_bound_cert_type_, &domain_bound_private_key_, &domain_bound_cert_, |
741 base::Bind(&SpdyStream::OnGetDomainBoundCertComplete, | 748 base::Bind(&SpdyStream::OnGetDomainBoundCertComplete, |
742 base::Unretained(this)), | 749 weak_ptr_factory_.GetWeakPtr()), |
743 &domain_bound_cert_request_handle_); | 750 &domain_bound_cert_request_handle_); |
744 return rv; | 751 return rv; |
745 } | 752 } |
746 | 753 |
747 int SpdyStream::DoGetDomainBoundCertComplete(int result) { | 754 int SpdyStream::DoGetDomainBoundCertComplete(int result) { |
748 if (result != OK) | 755 if (result != OK) |
749 return result; | 756 return result; |
750 | 757 |
751 io_state_ = STATE_SEND_DOMAIN_BOUND_CERT; | 758 io_state_ = STATE_SEND_DOMAIN_BOUND_CERT; |
752 slot_ = session_->credential_state()->SetHasCredential(GetUrl()); | 759 slot_ = session_->credential_state()->SetHasCredential(GetUrl()); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
876 } | 883 } |
877 | 884 |
878 recv_window_size_ -= delta_window_size; | 885 recv_window_size_ -= delta_window_size; |
879 net_log_.AddEvent( | 886 net_log_.AddEvent( |
880 NetLog::TYPE_SPDY_STREAM_UPDATE_RECV_WINDOW, | 887 NetLog::TYPE_SPDY_STREAM_UPDATE_RECV_WINDOW, |
881 base::Bind(&NetLogSpdyStreamWindowUpdateCallback, | 888 base::Bind(&NetLogSpdyStreamWindowUpdateCallback, |
882 stream_id_, -delta_window_size, recv_window_size_)); | 889 stream_id_, -delta_window_size, recv_window_size_)); |
883 } | 890 } |
884 | 891 |
885 } // namespace net | 892 } // namespace net |
OLD | NEW |