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

Unified Diff: components/cronet/android/cronet_bidirectional_stream_adapter.h

Issue 1992953004: [Cronet] Make delaying sending request headers explicit in bidirectional stream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile error Created 4 years, 7 months 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 side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/cronet_bidirectional_stream_adapter.h
diff --git a/components/cronet/android/cronet_bidirectional_stream_adapter.h b/components/cronet/android/cronet_bidirectional_stream_adapter.h
index 2bb80517d1e184e67fc14e3f51c20574757da0c1..2f71065969c742b78a032caeedf4c471f9c3e974 100644
--- a/components/cronet/android/cronet_bidirectional_stream_adapter.h
+++ b/components/cronet/android/cronet_bidirectional_stream_adapter.h
@@ -71,7 +71,7 @@ class CronetBidirectionalStreamAdapter
CronetURLRequestContextAdapter* context,
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jbidi_stream,
- bool jdisable_auto_flush);
+ bool jsend_request_headers_automatically);
~CronetBidirectionalStreamAdapter() override;
// Validates method and headers, initializes and starts the request. If
@@ -89,6 +89,13 @@ class CronetBidirectionalStreamAdapter
const base::android::JavaParamRef<jobjectArray>& jheaders,
jboolean jend_of_stream);
+ // Sends request headers to server. This is only required when
+ // |send_request_headers_automatically| is false.
+ // If |delay_headers_until_next_data| is true, headers will be sent
+ // automatically by the stream when stream is negotiated successfully.
+ void SendRequestHeaders(JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jcaller);
+
// Reads more data into |jbyte_buffer| starting at |jposition| and not
// exceeding |jlimit|. Arguments are preserved to ensure that |jbyte_buffer|
// is not modified by the application during read.
@@ -121,7 +128,7 @@ class CronetBidirectionalStreamAdapter
private:
// net::BidirectionalStream::Delegate implementations:
- void OnStreamReady() override;
+ void OnStreamReady(bool request_headers_sent) override;
void OnHeadersReceived(const net::SpdyHeaderBlock& response_headers) override;
void OnDataRead(int bytes_read) override;
void OnDataSent() override;
@@ -130,6 +137,7 @@ class CronetBidirectionalStreamAdapter
void StartOnNetworkThread(
std::unique_ptr<net::BidirectionalStreamRequestInfo> request_info);
+ void SendRequestHeadersOnNetworkThread();
void ReadDataOnNetworkThread(
scoped_refptr<IOBufferWithByteBuffer> read_buffer,
int buffer_size);
@@ -145,7 +153,7 @@ class CronetBidirectionalStreamAdapter
// Java object that owns this CronetBidirectionalStreamAdapter.
base::android::ScopedJavaGlobalRef<jobject> owner_;
- const bool disable_auto_flush_;
+ const bool send_request_headers_automatically_;
scoped_refptr<IOBufferWithByteBuffer> read_buffer_;
std::unique_ptr<PendingWriteData> pending_write_data_;

Powered by Google App Engine
This is Rietveld 408576698