Index: components/cronet/android/org_chromium_net_UrlRequest.cc |
diff --git a/components/cronet/android/org_chromium_net_UrlRequest.cc b/components/cronet/android/org_chromium_net_UrlRequest.cc |
index e38f93fcd35cabe0f45fba5e52b30ac4b031a3d4..11a395fac1c19532b9851837f202b59b5ca38bb6 100644 |
--- a/components/cronet/android/org_chromium_net_UrlRequest.cc |
+++ b/components/cronet/android/org_chromium_net_UrlRequest.cc |
@@ -192,14 +192,39 @@ static void SetUploadChannel(JNIEnv* env, |
URLRequestAdapter* request = |
reinterpret_cast<URLRequestAdapter*>(urlRequestAdapter); |
SetPostContentType(env, request, content_type); |
request->SetUploadChannel(env, content_length); |
} |
+static void EnableChunkedUpload(JNIEnv* env, |
+ jobject object, |
+ jlong urlRequestAdapter, |
+ jstring content_type) { |
+ URLRequestAdapter* request = |
+ reinterpret_cast<URLRequestAdapter*>(urlRequestAdapter); |
+ SetPostContentType(env, request, content_type); |
+ |
+ request->EnableChunkedUpload(); |
+} |
+ |
+static void AppendChunk(JNIEnv* env, |
+ jobject object, |
+ jlong urlRequestAdapter, |
+ jobject chunk_byte_buffer, |
+ jint chunk_size, |
+ jboolean is_last_chunk) { |
+ URLRequestAdapter* request = |
+ reinterpret_cast<URLRequestAdapter*>(urlRequestAdapter); |
+ DCHECK(chunk_byte_buffer != NULL); |
+ |
+ void* chunk = env->GetDirectBufferAddress(chunk_byte_buffer); |
+ request->AppendChunk( |
+ reinterpret_cast<const char*>(chunk), chunk_size, is_last_chunk); |
+} |
/* synchronized */ |
static void Start(JNIEnv* env, jobject object, jlong urlRequestAdapter) { |
URLRequestAdapter* request = |
reinterpret_cast<URLRequestAdapter*>(urlRequestAdapter); |
if (request != NULL) { |
request->Start(); |