Chromium Code Reviews| Index: components/cronet/android/test/native_test_server.cc |
| diff --git a/components/cronet/android/test/native_test_server.cc b/components/cronet/android/test/native_test_server.cc |
| index aab2d32599cf9510126cb7fab08b790680bf35b4..2855cdbdb15639309cdc574bb16b334c1c7ba2d3 100644 |
| --- a/components/cronet/android/test/native_test_server.cc |
| +++ b/components/cronet/android/test/native_test_server.cc |
| @@ -168,14 +168,16 @@ scoped_ptr<net::test_server::HttpResponse> SdchRequestHandler( |
| return scoped_ptr<net::test_server::BasicHttpResponse>(); |
| } |
| -void RegisterHostResolverProcHelper( |
| - net::URLRequestContext* url_request_context) { |
| +// Install host resolver rules to map fake domains to |destination|, usually an |
| +// IP address. |
| +void RegisterHostResolverProcHelper(net::URLRequestContext* url_request_context, |
| + const std::string& destination) { |
| net::HostResolverImpl* resolver = |
| static_cast<net::HostResolverImpl*>(url_request_context->host_resolver()); |
| scoped_refptr<net::RuleBasedHostResolverProc> proc = |
| new net::RuleBasedHostResolverProc(NULL); |
| - proc->AddRule(kFakeSdchDomain, "127.0.0.1"); |
| - proc->AddRule(kFakeQuicDomain, "127.0.0.1"); |
| + proc->AddRule(kFakeSdchDomain, destination); |
| + proc->AddRule(kFakeQuicDomain, destination); |
| resolver->set_proc_params_for_test( |
| net::HostResolverImpl::ProcTaskParams(proc.get(), 1u)); |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| @@ -183,14 +185,18 @@ void RegisterHostResolverProcHelper( |
| } |
| void RegisterHostResolverProcOnNetworkThread( |
| - CronetURLRequestContextAdapter* context_adapter) { |
| - RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext()); |
| + CronetURLRequestContextAdapter* context_adapter, |
| + const std::string& destination) { |
| + RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext(), |
| + destination); |
| } |
| // TODO(xunjieli): Delete this once legacy API is removed. |
| void RegisterHostResolverProcOnNetworkThreadLegacyAPI( |
| - URLRequestContextAdapter* context_adapter) { |
| - RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext()); |
| + URLRequestContextAdapter* context_adapter, |
| + const std::string& destination) { |
| + RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext(), |
| + destination); |
| } |
| } // namespace |
| @@ -217,19 +223,22 @@ jboolean StartNativeTestServer(JNIEnv* env, |
| void RegisterHostResolverProc(JNIEnv* env, |
| const JavaParamRef<jclass>& jcaller, |
| jlong jadapter, |
| - jboolean jlegacy_api) { |
| + jboolean jlegacy_api, |
| + const JavaParamRef<jstring>& jdestination) { |
| + std::string destination( |
| + base::android::ConvertJavaStringToUTF8(env, jdestination)); |
| if (jlegacy_api == JNI_TRUE) { |
| URLRequestContextAdapter* context_adapter = |
|
mef
2015/12/29 17:27:45
Does it make sense to call context_adapter->GetURL
pauljensen
2016/01/21 03:51:50
GetURLRequestContext() can only be called from net
|
| reinterpret_cast<URLRequestContextAdapter*>(jadapter); |
| context_adapter->PostTaskToNetworkThread( |
| FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThreadLegacyAPI, |
| - base::Unretained(context_adapter))); |
| + base::Unretained(context_adapter), destination)); |
| } else { |
| CronetURLRequestContextAdapter* context_adapter = |
| reinterpret_cast<CronetURLRequestContextAdapter*>(jadapter); |
| context_adapter->PostTaskToNetworkThread( |
| FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThread, |
| - base::Unretained(context_adapter))); |
| + base::Unretained(context_adapter), destination)); |
| } |
| } |