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 "native_test_server.h" | 5 #include "native_test_server.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 | 203 |
204 // TODO(xunjieli): Delete this once legacy API is removed. | 204 // TODO(xunjieli): Delete this once legacy API is removed. |
205 void RegisterHostResolverProcOnNetworkThreadLegacyAPI( | 205 void RegisterHostResolverProcOnNetworkThreadLegacyAPI( |
206 URLRequestContextAdapter* context_adapter) { | 206 URLRequestContextAdapter* context_adapter) { |
207 RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext()); | 207 RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext()); |
208 } | 208 } |
209 | 209 |
210 } // namespace | 210 } // namespace |
211 | 211 |
212 jboolean StartNativeTestServer(JNIEnv* env, | 212 jboolean StartNativeTestServer(JNIEnv* env, |
213 jclass jcaller, | 213 const JavaParamRef<jclass>& jcaller, |
214 jstring jtest_files_root) { | 214 const JavaParamRef<jstring>& jtest_files_root) { |
215 // Shouldn't happen. | 215 // Shouldn't happen. |
216 if (g_test_server) | 216 if (g_test_server) |
217 return false; | 217 return false; |
218 g_test_server = new net::test_server::EmbeddedTestServer(); | 218 g_test_server = new net::test_server::EmbeddedTestServer(); |
219 g_test_server->RegisterRequestHandler( | 219 g_test_server->RegisterRequestHandler( |
220 base::Bind(&NativeTestServerRequestHandler)); | 220 base::Bind(&NativeTestServerRequestHandler)); |
221 g_test_server->RegisterRequestHandler(base::Bind(&SdchRequestHandler)); | 221 g_test_server->RegisterRequestHandler(base::Bind(&SdchRequestHandler)); |
222 base::FilePath test_files_root( | 222 base::FilePath test_files_root( |
223 base::android::ConvertJavaStringToUTF8(env, jtest_files_root)); | 223 base::android::ConvertJavaStringToUTF8(env, jtest_files_root)); |
224 | 224 |
225 // Add a third handler for paths that NativeTestServerRequestHandler does not | 225 // Add a third handler for paths that NativeTestServerRequestHandler does not |
226 // handle. | 226 // handle. |
227 g_test_server->ServeFilesFromDirectory(test_files_root); | 227 g_test_server->ServeFilesFromDirectory(test_files_root); |
228 return g_test_server->InitializeAndWaitUntilReady(); | 228 return g_test_server->InitializeAndWaitUntilReady(); |
229 } | 229 } |
230 | 230 |
231 void RegisterHostResolverProc(JNIEnv* env, | 231 void RegisterHostResolverProc(JNIEnv* env, |
232 jclass jcaller, | 232 const JavaParamRef<jclass>& jcaller, |
233 jlong jadapter, | 233 jlong jadapter, |
234 jboolean jlegacy_api) { | 234 jboolean jlegacy_api) { |
235 if (jlegacy_api == JNI_TRUE) { | 235 if (jlegacy_api == JNI_TRUE) { |
236 URLRequestContextAdapter* context_adapter = | 236 URLRequestContextAdapter* context_adapter = |
237 reinterpret_cast<URLRequestContextAdapter*>(jadapter); | 237 reinterpret_cast<URLRequestContextAdapter*>(jadapter); |
238 context_adapter->PostTaskToNetworkThread( | 238 context_adapter->PostTaskToNetworkThread( |
239 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThreadLegacyAPI, | 239 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThreadLegacyAPI, |
240 base::Unretained(context_adapter))); | 240 base::Unretained(context_adapter))); |
241 } else { | 241 } else { |
242 CronetURLRequestContextAdapter* context_adapter = | 242 CronetURLRequestContextAdapter* context_adapter = |
243 reinterpret_cast<CronetURLRequestContextAdapter*>(jadapter); | 243 reinterpret_cast<CronetURLRequestContextAdapter*>(jadapter); |
244 context_adapter->PostTaskToNetworkThread( | 244 context_adapter->PostTaskToNetworkThread( |
245 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThread, | 245 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThread, |
246 base::Unretained(context_adapter))); | 246 base::Unretained(context_adapter))); |
247 } | 247 } |
248 } | 248 } |
249 | 249 |
250 void ShutdownNativeTestServer(JNIEnv* env, jclass jcaller) { | 250 void ShutdownNativeTestServer(JNIEnv* env, |
| 251 const JavaParamRef<jclass>& jcaller) { |
251 if (!g_test_server) | 252 if (!g_test_server) |
252 return; | 253 return; |
253 delete g_test_server; | 254 delete g_test_server; |
254 g_test_server = NULL; | 255 g_test_server = NULL; |
255 } | 256 } |
256 | 257 |
257 ScopedJavaLocalRef<jstring> GetEchoBodyURL(JNIEnv* env, jclass jcaller) { | 258 ScopedJavaLocalRef<jstring> GetEchoBodyURL( |
| 259 JNIEnv* env, |
| 260 const JavaParamRef<jclass>& jcaller) { |
258 DCHECK(g_test_server); | 261 DCHECK(g_test_server); |
259 GURL url = g_test_server->GetURL(kEchoBodyPath); | 262 GURL url = g_test_server->GetURL(kEchoBodyPath); |
260 return base::android::ConvertUTF8ToJavaString(env, url.spec()); | 263 return base::android::ConvertUTF8ToJavaString(env, url.spec()); |
261 } | 264 } |
262 | 265 |
263 ScopedJavaLocalRef<jstring> GetEchoHeaderURL(JNIEnv* env, | 266 ScopedJavaLocalRef<jstring> GetEchoHeaderURL( |
264 jclass jcaller, | 267 JNIEnv* env, |
265 jstring jheader) { | 268 const JavaParamRef<jclass>& jcaller, |
| 269 const JavaParamRef<jstring>& jheader) { |
266 DCHECK(g_test_server); | 270 DCHECK(g_test_server); |
267 GURL url = g_test_server->GetURL(kEchoHeaderPath); | 271 GURL url = g_test_server->GetURL(kEchoHeaderPath); |
268 GURL::Replacements replacements; | 272 GURL::Replacements replacements; |
269 std::string header = base::android::ConvertJavaStringToUTF8(env, jheader); | 273 std::string header = base::android::ConvertJavaStringToUTF8(env, jheader); |
270 replacements.SetQueryStr(header.c_str()); | 274 replacements.SetQueryStr(header.c_str()); |
271 url = url.ReplaceComponents(replacements); | 275 url = url.ReplaceComponents(replacements); |
272 return base::android::ConvertUTF8ToJavaString(env, url.spec()); | 276 return base::android::ConvertUTF8ToJavaString(env, url.spec()); |
273 } | 277 } |
274 | 278 |
275 ScopedJavaLocalRef<jstring> GetEchoAllHeadersURL(JNIEnv* env, jclass jcaller) { | 279 ScopedJavaLocalRef<jstring> GetEchoAllHeadersURL( |
| 280 JNIEnv* env, |
| 281 const JavaParamRef<jclass>& jcaller) { |
276 DCHECK(g_test_server); | 282 DCHECK(g_test_server); |
277 GURL url = g_test_server->GetURL(kEchoAllHeadersPath); | 283 GURL url = g_test_server->GetURL(kEchoAllHeadersPath); |
278 return base::android::ConvertUTF8ToJavaString(env, url.spec()); | 284 return base::android::ConvertUTF8ToJavaString(env, url.spec()); |
279 } | 285 } |
280 | 286 |
281 ScopedJavaLocalRef<jstring> GetEchoMethodURL(JNIEnv* env, jclass jcaller) { | 287 ScopedJavaLocalRef<jstring> GetEchoMethodURL( |
| 288 JNIEnv* env, |
| 289 const JavaParamRef<jclass>& jcaller) { |
282 DCHECK(g_test_server); | 290 DCHECK(g_test_server); |
283 GURL url = g_test_server->GetURL(kEchoMethodPath); | 291 GURL url = g_test_server->GetURL(kEchoMethodPath); |
284 return base::android::ConvertUTF8ToJavaString(env, url.spec()); | 292 return base::android::ConvertUTF8ToJavaString(env, url.spec()); |
285 } | 293 } |
286 | 294 |
287 ScopedJavaLocalRef<jstring> GetRedirectToEchoBody(JNIEnv* env, jclass jcaller) { | 295 ScopedJavaLocalRef<jstring> GetRedirectToEchoBody( |
| 296 JNIEnv* env, |
| 297 const JavaParamRef<jclass>& jcaller) { |
288 DCHECK(g_test_server); | 298 DCHECK(g_test_server); |
289 GURL url = g_test_server->GetURL(kRedirectToEchoBodyPath); | 299 GURL url = g_test_server->GetURL(kRedirectToEchoBodyPath); |
290 return base::android::ConvertUTF8ToJavaString(env, url.spec()); | 300 return base::android::ConvertUTF8ToJavaString(env, url.spec()); |
291 } | 301 } |
292 | 302 |
293 ScopedJavaLocalRef<jstring> GetFileURL(JNIEnv* env, | 303 ScopedJavaLocalRef<jstring> GetFileURL( |
294 jclass jcaller, | 304 JNIEnv* env, |
295 jstring jfile_path) { | 305 const JavaParamRef<jclass>& jcaller, |
| 306 const JavaParamRef<jstring>& jfile_path) { |
296 DCHECK(g_test_server); | 307 DCHECK(g_test_server); |
297 std::string file = base::android::ConvertJavaStringToUTF8(env, jfile_path); | 308 std::string file = base::android::ConvertJavaStringToUTF8(env, jfile_path); |
298 GURL url = g_test_server->GetURL(file); | 309 GURL url = g_test_server->GetURL(file); |
299 return base::android::ConvertUTF8ToJavaString(env, url.spec()); | 310 return base::android::ConvertUTF8ToJavaString(env, url.spec()); |
300 } | 311 } |
301 | 312 |
302 ScopedJavaLocalRef<jstring> GetSdchURL(JNIEnv* env, jclass jcaller) { | 313 ScopedJavaLocalRef<jstring> GetSdchURL(JNIEnv* env, |
| 314 const JavaParamRef<jclass>& jcaller) { |
303 DCHECK(g_test_server); | 315 DCHECK(g_test_server); |
304 std::string url(base::StringPrintf("http://%s:%d", kFakeSdchDomain, | 316 std::string url(base::StringPrintf("http://%s:%d", kFakeSdchDomain, |
305 g_test_server->port())); | 317 g_test_server->port())); |
306 return base::android::ConvertUTF8ToJavaString(env, url); | 318 return base::android::ConvertUTF8ToJavaString(env, url); |
307 } | 319 } |
308 | 320 |
309 ScopedJavaLocalRef<jstring> GetHostPort(JNIEnv* env, jclass jcaller) { | 321 ScopedJavaLocalRef<jstring> GetHostPort(JNIEnv* env, |
| 322 const JavaParamRef<jclass>& jcaller) { |
310 DCHECK(g_test_server); | 323 DCHECK(g_test_server); |
311 std::string host_port = | 324 std::string host_port = |
312 net::HostPortPair::FromURL(g_test_server->base_url()).ToString(); | 325 net::HostPortPair::FromURL(g_test_server->base_url()).ToString(); |
313 return base::android::ConvertUTF8ToJavaString(env, host_port); | 326 return base::android::ConvertUTF8ToJavaString(env, host_port); |
314 } | 327 } |
315 | 328 |
316 jboolean IsDataReductionProxySupported(JNIEnv* env, jclass jcaller) { | 329 jboolean IsDataReductionProxySupported(JNIEnv* env, |
| 330 const JavaParamRef<jclass>& jcaller) { |
317 #if defined(DATA_REDUCTION_PROXY_SUPPORT) | 331 #if defined(DATA_REDUCTION_PROXY_SUPPORT) |
318 return JNI_TRUE; | 332 return JNI_TRUE; |
319 #else | 333 #else |
320 return JNI_FALSE; | 334 return JNI_FALSE; |
321 #endif | 335 #endif |
322 } | 336 } |
323 | 337 |
324 bool RegisterNativeTestServer(JNIEnv* env) { | 338 bool RegisterNativeTestServer(JNIEnv* env) { |
325 return RegisterNativesImpl(env); | 339 return RegisterNativesImpl(env); |
326 } | 340 } |
327 | 341 |
328 } // namespace cronet | 342 } // namespace cronet |
OLD | NEW |