Commit 9fe34703 authored by mef's avatar mef Committed by Commit bot

Fix crash in Cronet CreateUrlRequestAdapter.

- Initialize URL standard schemes on load.
- Use NULL-resistant string conversions.

BUG=410374

Review URL: https://codereview.chromium.org/536023003

Cr-Commit-Position: refs/heads/master@{#293220}
parent f71b9f86
......@@ -45,10 +45,8 @@ void SetPostContentType(JNIEnv* env,
request->SetMethod(method_post);
std::string content_type_header("Content-Type");
const char* content_type_utf8 = env->GetStringUTFChars(content_type, NULL);
std::string content_type_string(content_type_utf8);
env->ReleaseStringUTFChars(content_type, content_type_utf8);
std::string content_type_string(
base::android::ConvertJavaStringToUTF8(env, content_type));
request->AddHeader(content_type_header, content_type_string);
}
......@@ -120,13 +118,9 @@ static jlong CreateRequestAdapter(JNIEnv* env,
reinterpret_cast<URLRequestContextAdapter*>(urlRequestContextAdapter);
DCHECK(context != NULL);
const char* url_utf8 = env->GetStringUTFChars(url_string, NULL);
VLOG(1) << "New chromium network request. URL:" << url_utf8;
GURL url(url_utf8);
GURL url(base::android::ConvertJavaStringToUTF8(env, url_string));
env->ReleaseStringUTFChars(url_string, url_utf8);
VLOG(1) << "New chromium network request: " << url.possibly_invalid_spec();
URLRequestAdapter* adapter =
new URLRequestAdapter(context,
......
......@@ -10,6 +10,7 @@
#include "components/cronet/android/chromium_url_request_context.h"
#include "net/android/net_jni_registrar.h"
#include "url/android/url_jni_registrar.h"
#include "url/url_util.h"
#if !defined(USE_ICU_ALTERNATIVES_ON_ANDROID)
#include "base/i18n/icu_util.h"
......@@ -49,6 +50,8 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* reserved) {
base::i18n::InitializeICU();
#endif
url::Initialize();
return JNI_VERSION_1_6;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment