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

Unified Diff: components/cronet/android/org_chromium_net_UrlRequest.cc

Issue 470443005: Cronet modifications to support AGSA. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Small changes. Created 6 years, 4 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/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..6d96870761a3bc48df8768abb89ca7742bdafba9 100644
--- a/components/cronet/android/org_chromium_net_UrlRequest.cc
+++ b/components/cronet/android/org_chromium_net_UrlRequest.cc
@@ -11,14 +11,15 @@
#include "components/cronet/android/url_request_context_adapter.h"
#include "jni/UrlRequest_jni.h"
#include "net/base/net_errors.h"
#include "net/base/request_priority.h"
#include "net/http/http_response_headers.h"
using base::android::ConvertUTF8ToJavaString;
+using base::android::CheckException;
namespace cronet {
namespace {
net::RequestPriority ConvertRequestPriority(jint request_priority) {
switch (request_priority) {
case REQUEST_PRIORITY_IDLE:
@@ -57,14 +58,19 @@ void SetPostContentType(JNIEnv* env,
class JniURLRequestAdapterDelegate
: public URLRequestAdapter::URLRequestAdapterDelegate {
public:
JniURLRequestAdapterDelegate(JNIEnv* env, jobject owner) {
owner_ = env->NewGlobalRef(owner);
}
+ virtual void OnAppendChunkCompleted(URLRequestAdapter* request) OVERRIDE {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ cronet::Java_UrlRequest_onAppendChunkCompleted(env, owner_);
+ }
+
virtual void OnResponseStarted(URLRequestAdapter* request) OVERRIDE {
JNIEnv* env = base::android::AttachCurrentThread();
cronet::Java_UrlRequest_onResponseStarted(env, owner_);
}
virtual void OnBytesRead(URLRequestAdapter* request) OVERRIDE {
int bytes_read = request->bytes_read();
@@ -192,14 +198,40 @@ 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);
+ CHECK(request != NULL);
+ CHECK(chunk_byte_buffer != NULL);
mmenke 2014/08/15 16:09:24 Again, I don't think we need all these CHECKs. Th
mdumitrescu 2014/08/15 18:20:15 Done.
+
+ 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();
« no previous file with comments | « components/cronet/android/java/src/org/chromium/net/UrlRequest.java ('k') | components/cronet/android/url_request_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698