Index: components/cronet/android/chromium_url_request.cc |
diff --git a/components/cronet/android/chromium_url_request.cc b/components/cronet/android/chromium_url_request.cc |
index 60b422f3781591f5cbff76849595904f458782c2..6d1c613fe9cdc35514889962bc1d90179947503d 100644 |
--- a/components/cronet/android/chromium_url_request.cc |
+++ b/components/cronet/android/chromium_url_request.cc |
@@ -61,6 +61,11 @@ class JniURLRequestAdapterDelegate |
owner_ = env->NewGlobalRef(owner); |
} |
+ virtual void OnAppendChunkCompleted(URLRequestAdapter* request) OVERRIDE { |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ cronet::Java_ChromiumUrlRequest_onAppendChunkCompleted(env, owner_); |
+ } |
+ |
virtual void OnResponseStarted(URLRequestAdapter* request) OVERRIDE { |
JNIEnv* env = base::android::AttachCurrentThread(); |
cronet::Java_ChromiumUrlRequest_onResponseStarted(env, owner_); |
@@ -199,6 +204,31 @@ static void SetUploadChannel(JNIEnv* env, |
request->SetUploadChannel(env, content_length); |
} |
+static void EnableChunkedUpload(JNIEnv* env, |
+ jobject jcaller, |
+ jlong urlRequestAdapter, |
+ jstring content_type) { |
+ URLRequestAdapter* request = |
+ reinterpret_cast<URLRequestAdapter*>(urlRequestAdapter); |
+ SetPostContentType(env, request, content_type); |
+ request->EnableChunkedUpload(); |
+} |
+ |
+static void AppendChunkToUpload(JNIEnv* env, |
+ jobject jcaller, |
+ jlong urlRequestAdapter, |
+ jobject chunk_byte_buffer, |
+ jint chunk_size, |
+ jboolean is_last_chunk) { |
+ URLRequestAdapter* request = |
+ reinterpret_cast<URLRequestAdapter*>(urlRequestAdapter); |
+ if (request != NULL && chunk_byte_buffer != NULL) { |
+ void* chunk = env->GetDirectBufferAddress(chunk_byte_buffer); |
+ request->AppendChunkToUpload( |
+ reinterpret_cast<const char*>(chunk), chunk_size, is_last_chunk); |
+ } |
+} |
+ |
/* synchronized */ |
static void Start(JNIEnv* env, jobject object, jlong urlRequestAdapter) { |
URLRequestAdapter* request = |