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

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

Issue 367763004: WIP: Some cronet modifications for the AndroidGSA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Second attempt on UploadChannel Created 6 years, 5 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 2183589bf35fa6bf76977516ab26c61c6bb4dbb9..404de74cb8d725eff5cd1dedde40213a11f510af 100644
--- a/components/cronet/android/org_chromium_net_UrlRequest.cc
+++ b/components/cronet/android/org_chromium_net_UrlRequest.cc
@@ -14,6 +14,7 @@
#include "net/base/request_priority.h"
using base::android::ConvertUTF8ToJavaString;
+using base::android::CheckException;
namespace cronet {
namespace {
@@ -317,4 +318,39 @@ static jstring GetHeader(
}
}
+static jobjectArray GetAllHeaders(JNIEnv* env,
+ jobject object,
+ jlong urlRequestPeer) {
+ URLRequestPeer* request = reinterpret_cast<URLRequestPeer*>(urlRequestPeer);
+ net::HttpRequestHeaders headers;
+ if (request == NULL || !request->GetFullRequestHeaders(&headers)) {
+ return NULL;
+ }
+
+ // TODO(miloslav): Better to just expose the size instead.
+ net::HttpRequestHeaders::Iterator counter(headers);
+ int count = 0;
+ while (counter.GetNext()) {
+ ++count;
+ }
+
+ jclass string_class = env->FindClass("java/lang/String");
+ jobjectArray result = env->NewObjectArray(2 * count, string_class, NULL);
+ CheckException(env);
+
+ net::HttpRequestHeaders::Iterator iterator(headers);
+ int index = 0;
+ while (iterator.GetNext()) {
+ DCHECK(index <= 2 * count - 2);
+ ScopedJavaLocalRef<jstring> name =
+ ConvertUTF8ToJavaString(env, iterator.name());
+ env->SetObjectArrayElement(result, index++, name.obj());
+
+ ScopedJavaLocalRef<jstring> value =
+ ConvertUTF8ToJavaString(env, iterator.value());
+ env->SetObjectArrayElement(result, index++, value.obj());
+ }
+ DCHECK(index == 2 * count);
+ return result;
+}
} // namespace cronet

Powered by Google App Engine
This is Rietveld 408576698