| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/cronet/android/chromium_url_request.h" | 5 #include "components/cronet/android/chromium_url_request.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "components/cronet/android/url_request_adapter.h" | 10 #include "components/cronet/android/url_request_adapter.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 JNIEnv* env = base::android::AttachCurrentThread(); | 63 JNIEnv* env = base::android::AttachCurrentThread(); |
| 64 cronet::Java_ChromiumUrlRequest_onResponseStarted(env, owner_); | 64 cronet::Java_ChromiumUrlRequest_onResponseStarted(env, owner_); |
| 65 } | 65 } |
| 66 | 66 |
| 67 void OnBytesRead(URLRequestAdapter* request_adapter, | 67 void OnBytesRead(URLRequestAdapter* request_adapter, |
| 68 int bytes_read) override { | 68 int bytes_read) override { |
| 69 if (bytes_read != 0) { | 69 if (bytes_read != 0) { |
| 70 JNIEnv* env = base::android::AttachCurrentThread(); | 70 JNIEnv* env = base::android::AttachCurrentThread(); |
| 71 base::android::ScopedJavaLocalRef<jobject> java_buffer( | 71 base::android::ScopedJavaLocalRef<jobject> java_buffer( |
| 72 env, env->NewDirectByteBuffer(request_adapter->Data(), bytes_read)); | 72 env, env->NewDirectByteBuffer(request_adapter->Data(), bytes_read)); |
| 73 cronet::Java_ChromiumUrlRequest_onBytesRead( | 73 cronet::Java_ChromiumUrlRequest_onBytesRead(env, owner_, java_buffer); |
| 74 env, owner_, java_buffer.obj()); | |
| 75 } | 74 } |
| 76 } | 75 } |
| 77 | 76 |
| 78 void OnRequestFinished(URLRequestAdapter* request_adapter) override { | 77 void OnRequestFinished(URLRequestAdapter* request_adapter) override { |
| 79 JNIEnv* env = base::android::AttachCurrentThread(); | 78 JNIEnv* env = base::android::AttachCurrentThread(); |
| 80 cronet::Java_ChromiumUrlRequest_finish(env, owner_); | 79 cronet::Java_ChromiumUrlRequest_finish(env, owner_); |
| 81 } | 80 } |
| 82 | 81 |
| 83 int ReadFromUploadChannel(net::IOBuffer* buf, int buf_length) override { | 82 int ReadFromUploadChannel(net::IOBuffer* buf, int buf_length) override { |
| 84 JNIEnv* env = base::android::AttachCurrentThread(); | 83 JNIEnv* env = base::android::AttachCurrentThread(); |
| 85 base::android::ScopedJavaLocalRef<jobject> java_buffer( | 84 base::android::ScopedJavaLocalRef<jobject> java_buffer( |
| 86 env, env->NewDirectByteBuffer(buf->data(), buf_length)); | 85 env, env->NewDirectByteBuffer(buf->data(), buf_length)); |
| 87 jint bytes_read = cronet::Java_ChromiumUrlRequest_readFromUploadChannel( | 86 jint bytes_read = cronet::Java_ChromiumUrlRequest_readFromUploadChannel( |
| 88 env, owner_, java_buffer.obj()); | 87 env, owner_, java_buffer); |
| 89 return bytes_read; | 88 return bytes_read; |
| 90 } | 89 } |
| 91 | 90 |
| 92 protected: | 91 protected: |
| 93 ~JniURLRequestAdapterDelegate() override { | 92 ~JniURLRequestAdapterDelegate() override { |
| 94 JNIEnv* env = base::android::AttachCurrentThread(); | 93 JNIEnv* env = base::android::AttachCurrentThread(); |
| 95 env->DeleteGlobalRef(owner_); | 94 env->DeleteGlobalRef(owner_); |
| 96 } | 95 } |
| 97 | 96 |
| 98 private: | 97 private: |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 | 379 |
| 381 size_t iter = 0; | 380 size_t iter = 0; |
| 382 std::string header_name; | 381 std::string header_name; |
| 383 std::string header_value; | 382 std::string header_value; |
| 384 while (headers->EnumerateHeaderLines(&iter, &header_name, &header_value)) { | 383 while (headers->EnumerateHeaderLines(&iter, &header_name, &header_value)) { |
| 385 ScopedJavaLocalRef<jstring> name = | 384 ScopedJavaLocalRef<jstring> name = |
| 386 ConvertUTF8ToJavaString(env, header_name); | 385 ConvertUTF8ToJavaString(env, header_name); |
| 387 ScopedJavaLocalRef<jstring> value = | 386 ScopedJavaLocalRef<jstring> value = |
| 388 ConvertUTF8ToJavaString(env, header_value); | 387 ConvertUTF8ToJavaString(env, header_value); |
| 389 Java_ChromiumUrlRequest_onAppendResponseHeader(env, jcaller, jheaders_map, | 388 Java_ChromiumUrlRequest_onAppendResponseHeader(env, jcaller, jheaders_map, |
| 390 name.obj(), value.obj()); | 389 name, value); |
| 391 } | 390 } |
| 392 | 391 |
| 393 // Some implementations (notably HttpURLConnection) include a mapping for the | 392 // Some implementations (notably HttpURLConnection) include a mapping for the |
| 394 // null key; in HTTP's case, this maps to the HTTP status line. | 393 // null key; in HTTP's case, this maps to the HTTP status line. |
| 395 ScopedJavaLocalRef<jstring> status_line = | 394 ScopedJavaLocalRef<jstring> status_line = |
| 396 ConvertUTF8ToJavaString(env, headers->GetStatusLine()); | 395 ConvertUTF8ToJavaString(env, headers->GetStatusLine()); |
| 397 Java_ChromiumUrlRequest_onAppendResponseHeader(env, jcaller, jheaders_map, | 396 Java_ChromiumUrlRequest_onAppendResponseHeader(env, jcaller, jheaders_map, |
| 398 nullptr, status_line.obj()); | 397 nullptr, status_line); |
| 399 } | 398 } |
| 400 | 399 |
| 401 static ScopedJavaLocalRef<jstring> GetNegotiatedProtocol( | 400 static ScopedJavaLocalRef<jstring> GetNegotiatedProtocol( |
| 402 JNIEnv* env, | 401 JNIEnv* env, |
| 403 const JavaParamRef<jobject>& jcaller, | 402 const JavaParamRef<jobject>& jcaller, |
| 404 jlong jurl_request_adapter) { | 403 jlong jurl_request_adapter) { |
| 405 URLRequestAdapter* request_adapter = | 404 URLRequestAdapter* request_adapter = |
| 406 reinterpret_cast<URLRequestAdapter*>(jurl_request_adapter); | 405 reinterpret_cast<URLRequestAdapter*>(jurl_request_adapter); |
| 407 DCHECK(request_adapter); | 406 DCHECK(request_adapter); |
| 408 | 407 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 424 static void DisableRedirects(JNIEnv* env, | 423 static void DisableRedirects(JNIEnv* env, |
| 425 const JavaParamRef<jobject>& jcaller, | 424 const JavaParamRef<jobject>& jcaller, |
| 426 jlong jrequest_adapter) { | 425 jlong jrequest_adapter) { |
| 427 URLRequestAdapter* request_adapter = | 426 URLRequestAdapter* request_adapter = |
| 428 reinterpret_cast<URLRequestAdapter*>(jrequest_adapter); | 427 reinterpret_cast<URLRequestAdapter*>(jrequest_adapter); |
| 429 DCHECK(request_adapter); | 428 DCHECK(request_adapter); |
| 430 request_adapter->DisableRedirects(); | 429 request_adapter->DisableRedirects(); |
| 431 } | 430 } |
| 432 | 431 |
| 433 } // namespace cronet | 432 } // namespace cronet |
| OLD | NEW |