Chromium Code Reviews| 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..d486405176e189deebca1c9fe00e8ab71531ab30 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,18 @@ class CronetBidirectionalStreamAdapter |
| const base::android::JavaParamRef<jobjectArray>& jheaders, |
| jboolean jend_of_stream); |
| + // Sends request headers to server. |
| + // This method cannot be called when |send_request_headers_automatically_| is |
|
mef
2016/06/01 21:33:20
nit: maybe just describe scenario where this metho
xunjieli
2016/06/01 22:27:16
Done. I shifted things around. Hope it is clearer.
|
| + // true nor when OnStreamReady() is invoked with request_headers_sent = true, |
| + // since headers have been sent by the stream when stream is negotiated |
| + // successfully. When |send_request_headers_automatically_| is |
| + // false and OnStreamReady() is invoked with request_headers_sent = false, |
| + // headers will be combined with next WriteData/WritevData unless this |
| + // method is called first, in which case headers will be sent separately |
| + // without delay. |
| + 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 +133,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 +142,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 +158,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_; |