Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(426)

Side by Side Diff: net/spdy/spdy_session.h

Issue 2456713002: Server push cancellation: add methods in session layer to cancel push given the pushed url. Not in … (Closed)
Patch Set: address rch's comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/chromium/quic_chromium_client_session_test.cc ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef NET_SPDY_SPDY_SESSION_H_ 5 #ifndef NET_SPDY_SPDY_SESSION_H_
6 #define NET_SPDY_SPDY_SESSION_H_ 6 #define NET_SPDY_SPDY_SESSION_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 friend class SpdyProxyClientSocketTest; 566 friend class SpdyProxyClientSocketTest;
567 friend class SpdySessionTest; 567 friend class SpdySessionTest;
568 friend class SpdyStreamRequest; 568 friend class SpdyStreamRequest;
569 569
570 // Allow tests to access our innards for testing purposes. 570 // Allow tests to access our innards for testing purposes.
571 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, ClientPing); 571 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, ClientPing);
572 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, FailedPing); 572 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, FailedPing);
573 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, GetActivePushStream); 573 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, GetActivePushStream);
574 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, DeleteExpiredPushStreams); 574 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, DeleteExpiredPushStreams);
575 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, MetricsCollectionOnPushStreams); 575 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, MetricsCollectionOnPushStreams);
576 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, CancelPushBeforeClaimed);
577 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, CancelPushAfterExpired);
576 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, ProtocolNegotiation); 578 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, ProtocolNegotiation);
577 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, ClearSettings); 579 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, ClearSettings);
578 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, AdjustRecvWindowSize); 580 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, AdjustRecvWindowSize);
579 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, AdjustSendWindowSize); 581 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, AdjustSendWindowSize);
580 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, SessionFlowControlInactiveStream); 582 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, SessionFlowControlInactiveStream);
581 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, SessionFlowControlPadding); 583 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, SessionFlowControlPadding);
582 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, 584 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest,
583 SessionFlowControlTooMuchDataTwoDataFrames); 585 SessionFlowControlTooMuchDataTwoDataFrames);
584 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest, 586 FRIEND_TEST_ALL_PREFIXES(SpdySessionTest,
585 StreamFlowControlTooMuchDataTwoDataFrames); 587 StreamFlowControlTooMuchDataTwoDataFrames);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 // Called when there is room to create more streams (e.g., a stream 670 // Called when there is room to create more streams (e.g., a stream
669 // was closed). Processes as many pending stream requests as 671 // was closed). Processes as many pending stream requests as
670 // possible. 672 // possible.
671 void ProcessPendingStreamRequests(); 673 void ProcessPendingStreamRequests();
672 674
673 bool TryCreatePushStream(SpdyStreamId stream_id, 675 bool TryCreatePushStream(SpdyStreamId stream_id,
674 SpdyStreamId associated_stream_id, 676 SpdyStreamId associated_stream_id,
675 SpdyPriority priority, 677 SpdyPriority priority,
676 SpdyHeaderBlock headers); 678 SpdyHeaderBlock headers);
677 679
680 // Called when the pushed stream should be cancelled. If the pushed stream is
681 // not claimed and active, sends RST to the server to cancel the stream.
682 void CancelPush(const GURL& url);
683
678 // Close the stream pointed to by the given iterator. Note that that 684 // Close the stream pointed to by the given iterator. Note that that
679 // stream may hold the last reference to the session. 685 // stream may hold the last reference to the session.
680 void CloseActiveStreamIterator(ActiveStreamMap::iterator it, int status); 686 void CloseActiveStreamIterator(ActiveStreamMap::iterator it, int status);
681 687
682 // Close the stream pointed to by the given iterator. Note that that 688 // Close the stream pointed to by the given iterator. Note that that
683 // stream may hold the last reference to the session. 689 // stream may hold the last reference to the session.
684 void CloseCreatedStreamIterator(CreatedStreamSet::iterator it, int status); 690 void CloseCreatedStreamIterator(CreatedStreamSet::iterator it, int status);
685 691
686 // Calls EnqueueResetStreamFrame() and then 692 // Calls EnqueueResetStreamFrame() and then
687 // CloseActiveStreamIterator(). 693 // CloseActiveStreamIterator().
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 // Used for posting asynchronous IO tasks. We use this even though 1213 // Used for posting asynchronous IO tasks. We use this even though
1208 // SpdySession is refcounted because we don't need to keep the SpdySession 1214 // SpdySession is refcounted because we don't need to keep the SpdySession
1209 // alive if the last reference is within a RunnableMethod. Just revoke the 1215 // alive if the last reference is within a RunnableMethod. Just revoke the
1210 // method. 1216 // method.
1211 base::WeakPtrFactory<SpdySession> weak_factory_; 1217 base::WeakPtrFactory<SpdySession> weak_factory_;
1212 }; 1218 };
1213 1219
1214 } // namespace net 1220 } // namespace net
1215 1221
1216 #endif // NET_SPDY_SPDY_SESSION_H_ 1222 #endif // NET_SPDY_SPDY_SESSION_H_
OLDNEW
« no previous file with comments | « net/quic/chromium/quic_chromium_client_session_test.cc ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698