OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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/quic/core/quic_client_promised_info.h" | 5 #include "net/quic/core/quic_client_promised_info.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "net/quic/core/spdy_utils.h" | 8 #include "net/quic/core/spdy_utils.h" |
9 | 9 |
10 using net::SpdyHeaderBlock; | 10 using net::SpdyHeaderBlock; |
11 using net::kPushPromiseTimeoutSecs; | 11 using net::kPushPromiseTimeoutSecs; |
12 using std::string; | 12 using std::string; |
13 | 13 |
14 namespace net { | 14 namespace net { |
15 | 15 |
16 QuicClientPromisedInfo::QuicClientPromisedInfo(QuicClientSessionBase* session, | 16 QuicClientPromisedInfo::QuicClientPromisedInfo(QuicClientSessionBase* session, |
17 QuicStreamId id, | 17 QuicStreamId id, |
18 string url) | 18 string url) |
19 : session_(session), | 19 : session_(session), |
20 id_(id), | 20 id_(id), |
21 url_(std::move(url)), | 21 url_(std::move(url)), |
22 client_request_delegate_(nullptr) {} | 22 client_request_delegate_(nullptr) {} |
23 | 23 |
24 QuicClientPromisedInfo::~QuicClientPromisedInfo() {} | 24 QuicClientPromisedInfo::~QuicClientPromisedInfo() {} |
25 | 25 |
26 void QuicClientPromisedInfo::CleanupAlarm::OnAlarm() { | 26 void QuicClientPromisedInfo::CleanupAlarm::OnAlarm() { |
27 DVLOG(1) << "self GC alarm for stream " << promised_->id_; | 27 DVLOG(1) << "self GC alarm for stream " << promised_->id_; |
28 promised_->Reset(QUIC_STREAM_CANCELLED); | 28 if (FLAGS_quic_send_push_stream_timed_out_error) { |
| 29 promised_->Reset(QUIC_PUSH_STREAM_TIMED_OUT); |
| 30 } else { |
| 31 promised_->Reset(QUIC_STREAM_CANCELLED); |
| 32 } |
29 } | 33 } |
30 | 34 |
31 void QuicClientPromisedInfo::Init() { | 35 void QuicClientPromisedInfo::Init() { |
32 cleanup_alarm_.reset(session_->connection()->alarm_factory()->CreateAlarm( | 36 cleanup_alarm_.reset(session_->connection()->alarm_factory()->CreateAlarm( |
33 new QuicClientPromisedInfo::CleanupAlarm(this))); | 37 new QuicClientPromisedInfo::CleanupAlarm(this))); |
34 cleanup_alarm_->Set( | 38 cleanup_alarm_->Set( |
35 session_->connection()->helper()->GetClock()->ApproximateNow() + | 39 session_->connection()->helper()->GetClock()->ApproximateNow() + |
36 QuicTime::Delta::FromSeconds(kPushPromiseTimeoutSecs)); | 40 QuicTime::Delta::FromSeconds(kPushPromiseTimeoutSecs)); |
37 } | 41 } |
38 | 42 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 return FinalValidation(); | 118 return FinalValidation(); |
115 } | 119 } |
116 | 120 |
117 void QuicClientPromisedInfo::Cancel() { | 121 void QuicClientPromisedInfo::Cancel() { |
118 // Don't fire OnRendezvousResult() for client initiated cancel. | 122 // Don't fire OnRendezvousResult() for client initiated cancel. |
119 client_request_delegate_ = nullptr; | 123 client_request_delegate_ = nullptr; |
120 Reset(QUIC_STREAM_CANCELLED); | 124 Reset(QUIC_STREAM_CANCELLED); |
121 } | 125 } |
122 | 126 |
123 } // namespace net | 127 } // namespace net |
OLD | NEW |