Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "net/test/embedded_test_server/android/embedded_test_server_android.h" | 5 #include "net/test/embedded_test_server/android/embedded_test_server_android.h" |
| 6 | 6 |
| 7 #include "android_webview/embeddedtestserver/custom_handlers.h" | |
|
shenghuazhang
2017/03/04 00:22:21
Shows presubmit error:
Illegal include: "android_w
sgurun-gerrit only
2017/03/06 18:35:17
Not acceptable. Android webview is a layer on top
jbudorick
2017/03/06 18:36:45
yeah, we discussed this & alternative mechanisms f
| |
| 8 #include "base/android/jni_array.h" | |
| 7 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
| 8 #include "base/android/scoped_java_ref.h" | 10 #include "base/android/scoped_java_ref.h" |
| 9 #include "base/bind.h" | 11 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
| 11 #include "base/test/test_support_android.h" | 13 #include "base/test/test_support_android.h" |
| 12 #include "base/trace_event/trace_event.h" | 14 #include "base/trace_event/trace_event.h" |
| 13 #include "net/test/jni/EmbeddedTestServerImpl_jni.h" | 15 #include "net/test/jni/EmbeddedTestServerImpl_jni.h" |
| 14 | 16 |
| 15 using base::android::JavaParamRef; | 17 using base::android::JavaParamRef; |
| 16 using base::android::JavaRef; | 18 using base::android::JavaRef; |
| 19 using base::android::ScopedJavaLocalRef; | |
| 17 | 20 |
| 18 namespace net { | 21 namespace net { |
| 19 namespace test_server { | 22 namespace test_server { |
| 20 | 23 |
| 21 EmbeddedTestServerAndroid::EmbeddedTestServerAndroid( | 24 EmbeddedTestServerAndroid::EmbeddedTestServerAndroid( |
| 22 JNIEnv* env, | 25 JNIEnv* env, |
| 23 const JavaRef<jobject>& jobj) | 26 const JavaRef<jobject>& jobj) |
| 24 : weak_java_server_(env, jobj), test_server_() { | 27 : weak_java_server_(env, jobj), test_server_() { |
| 25 Java_EmbeddedTestServerImpl_setNativePtr(env, jobj, | 28 Java_EmbeddedTestServerImpl_setNativePtr(env, jobj, |
| 26 reinterpret_cast<intptr_t>(this)); | 29 reinterpret_cast<intptr_t>(this)); |
| 27 } | 30 } |
| 28 | 31 |
| 29 EmbeddedTestServerAndroid::~EmbeddedTestServerAndroid() { | 32 EmbeddedTestServerAndroid::~EmbeddedTestServerAndroid() { |
| 30 JNIEnv* env = base::android::AttachCurrentThread(); | 33 JNIEnv* env = base::android::AttachCurrentThread(); |
| 31 Java_EmbeddedTestServerImpl_clearNativePtr(env, weak_java_server_.get(env)); | 34 Java_EmbeddedTestServerImpl_clearNativePtr(env, weak_java_server_.get(env)); |
| 32 } | 35 } |
| 33 | 36 |
| 34 jboolean EmbeddedTestServerAndroid::Start(JNIEnv* env, | 37 jboolean EmbeddedTestServerAndroid::Start(JNIEnv* env, |
| 35 const JavaParamRef<jobject>& jobj) { | 38 const JavaParamRef<jobject>& jobj) { |
| 36 return test_server_.Start(); | 39 return test_server_.Start(); |
| 37 } | 40 } |
| 38 | 41 |
| 39 jboolean EmbeddedTestServerAndroid::ShutdownAndWaitUntilComplete( | 42 jboolean EmbeddedTestServerAndroid::ShutdownAndWaitUntilComplete( |
| 40 JNIEnv* env, | 43 JNIEnv* env, |
| 41 const JavaParamRef<jobject>& jobj) { | 44 const JavaParamRef<jobject>& jobj) { |
| 42 return test_server_.ShutdownAndWaitUntilComplete(); | 45 return test_server_.ShutdownAndWaitUntilComplete(); |
| 43 } | 46 } |
| 44 | 47 |
| 45 base::android::ScopedJavaLocalRef<jstring> EmbeddedTestServerAndroid::GetURL( | 48 ScopedJavaLocalRef<jstring> EmbeddedTestServerAndroid::GetURL( |
| 46 JNIEnv* env, | 49 JNIEnv* env, |
| 47 const JavaParamRef<jobject>& jobj, | 50 const JavaParamRef<jobject>& jobj, |
| 48 const JavaParamRef<jstring>& jrelative_url) const { | 51 const JavaParamRef<jstring>& jrelative_url) const { |
| 49 const GURL gurl(test_server_.GetURL( | 52 const GURL gurl(test_server_.GetURL( |
| 50 base::android::ConvertJavaStringToUTF8(env, jrelative_url))); | 53 base::android::ConvertJavaStringToUTF8(env, jrelative_url))); |
| 51 return base::android::ConvertUTF8ToJavaString(env, gurl.spec()); | 54 return base::android::ConvertUTF8ToJavaString(env, gurl.spec()); |
| 52 } | 55 } |
| 53 | 56 |
| 54 void EmbeddedTestServerAndroid::AddDefaultHandlers( | 57 void EmbeddedTestServerAndroid::AddDefaultHandlers( |
| 55 JNIEnv* env, | 58 JNIEnv* env, |
| 56 const JavaParamRef<jobject>& jobj, | 59 const JavaParamRef<jobject>& jobj, |
| 57 const JavaParamRef<jstring>& jdirectory_path) { | 60 const JavaParamRef<jstring>& jdirectory_path) { |
| 58 const base::FilePath directory( | 61 const base::FilePath directory( |
| 59 base::android::ConvertJavaStringToUTF8(env, jdirectory_path)); | 62 base::android::ConvertJavaStringToUTF8(env, jdirectory_path)); |
| 60 test_server_.AddDefaultHandlers(directory); | 63 test_server_.AddDefaultHandlers(directory); |
| 61 } | 64 } |
| 62 | 65 |
| 66 ScopedJavaLocalRef<jlongArray> EmbeddedTestServerAndroid::GetCustomHandlers( | |
| 67 JNIEnv* env, | |
| 68 const JavaParamRef<jobject>& jobj) { | |
| 69 return base::android::ToJavaLongArray(env, getHandlers()); | |
| 70 } | |
| 71 | |
| 72 typedef std::unique_ptr<HttpResponse> (*HandlerUniquePtr)( | |
| 73 const HttpRequest& request); | |
| 74 | |
| 75 void EmbeddedTestServerAndroid::RegisterRequestHandler( | |
| 76 JNIEnv* env, | |
| 77 const JavaParamRef<jobject>& jobj, | |
| 78 jlong handler) { | |
| 79 HandlerUniquePtr& handler_ptr = reinterpret_cast<HandlerUniquePtr&>(handler); | |
| 80 test_server_.RegisterRequestHandler( | |
| 81 base::Bind(handler_ptr)); | |
| 82 } | |
| 83 | |
| 63 void EmbeddedTestServerAndroid::ServeFilesFromDirectory( | 84 void EmbeddedTestServerAndroid::ServeFilesFromDirectory( |
| 64 JNIEnv* env, | 85 JNIEnv* env, |
| 65 const JavaParamRef<jobject>& jobj, | 86 const JavaParamRef<jobject>& jobj, |
| 66 const JavaParamRef<jstring>& jdirectory_path) { | 87 const JavaParamRef<jstring>& jdirectory_path) { |
| 67 const base::FilePath directory( | 88 const base::FilePath directory( |
| 68 base::android::ConvertJavaStringToUTF8(env, jdirectory_path)); | 89 base::android::ConvertJavaStringToUTF8(env, jdirectory_path)); |
| 69 test_server_.ServeFilesFromDirectory(directory); | 90 test_server_.ServeFilesFromDirectory(directory); |
| 70 } | 91 } |
| 71 | 92 |
| 72 void EmbeddedTestServerAndroid::Destroy(JNIEnv* env, | 93 void EmbeddedTestServerAndroid::Destroy(JNIEnv* env, |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 84 new EmbeddedTestServerAndroid(env, jobj); | 105 new EmbeddedTestServerAndroid(env, jobj); |
| 85 } | 106 } |
| 86 | 107 |
| 87 // static | 108 // static |
| 88 bool EmbeddedTestServerAndroid::RegisterEmbeddedTestServerAndroid(JNIEnv* env) { | 109 bool EmbeddedTestServerAndroid::RegisterEmbeddedTestServerAndroid(JNIEnv* env) { |
| 89 return RegisterNativesImpl(env); | 110 return RegisterNativesImpl(env); |
| 90 } | 111 } |
| 91 | 112 |
| 92 } // namespace test_server | 113 } // namespace test_server |
| 93 } // namespace net | 114 } // namespace net |
| OLD | NEW |