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

Side by Side Diff: components/cronet/android/test/native_test_server.cc

Issue 1536433002: [Cronet] Get Cronet performance test running again (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address Helen's comments Created 5 years 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 unified diff | Download patch
OLDNEW
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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 new net::test_server::BasicHttpResponse()); 161 new net::test_server::BasicHttpResponse());
162 response->set_content_type("text/plain"); 162 response->set_content_type("text/plain");
163 response->set_content("Sdch is not used.\n"); 163 response->set_content("Sdch is not used.\n");
164 return response.Pass(); 164 return response.Pass();
165 } 165 }
166 166
167 // Unhandled requests result in the Embedded test server sending a 404. 167 // Unhandled requests result in the Embedded test server sending a 404.
168 return scoped_ptr<net::test_server::BasicHttpResponse>(); 168 return scoped_ptr<net::test_server::BasicHttpResponse>();
169 } 169 }
170 170
171 void RegisterHostResolverProcHelper( 171 // Install host resolver rules to map fake domains to |destination|, usually an
172 net::URLRequestContext* url_request_context) { 172 // IP address.
173 void RegisterHostResolverProcHelper(net::URLRequestContext* url_request_context,
174 const std::string& destination) {
173 net::HostResolverImpl* resolver = 175 net::HostResolverImpl* resolver =
174 static_cast<net::HostResolverImpl*>(url_request_context->host_resolver()); 176 static_cast<net::HostResolverImpl*>(url_request_context->host_resolver());
175 scoped_refptr<net::RuleBasedHostResolverProc> proc = 177 scoped_refptr<net::RuleBasedHostResolverProc> proc =
176 new net::RuleBasedHostResolverProc(NULL); 178 new net::RuleBasedHostResolverProc(NULL);
177 proc->AddRule(kFakeSdchDomain, "127.0.0.1"); 179 proc->AddRule(kFakeSdchDomain, destination);
178 proc->AddRule(kFakeQuicDomain, "127.0.0.1"); 180 proc->AddRule(kFakeQuicDomain, destination);
179 resolver->set_proc_params_for_test( 181 resolver->set_proc_params_for_test(
180 net::HostResolverImpl::ProcTaskParams(proc.get(), 1u)); 182 net::HostResolverImpl::ProcTaskParams(proc.get(), 1u));
181 JNIEnv* env = base::android::AttachCurrentThread(); 183 JNIEnv* env = base::android::AttachCurrentThread();
182 Java_NativeTestServer_onHostResolverProcRegistered(env); 184 Java_NativeTestServer_onHostResolverProcRegistered(env);
183 } 185 }
184 186
185 void RegisterHostResolverProcOnNetworkThread( 187 void RegisterHostResolverProcOnNetworkThread(
186 CronetURLRequestContextAdapter* context_adapter) { 188 CronetURLRequestContextAdapter* context_adapter,
187 RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext()); 189 const std::string& destination) {
190 RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext(),
191 destination);
188 } 192 }
189 193
190 // TODO(xunjieli): Delete this once legacy API is removed. 194 // TODO(xunjieli): Delete this once legacy API is removed.
191 void RegisterHostResolverProcOnNetworkThreadLegacyAPI( 195 void RegisterHostResolverProcOnNetworkThreadLegacyAPI(
192 URLRequestContextAdapter* context_adapter) { 196 URLRequestContextAdapter* context_adapter,
193 RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext()); 197 const std::string& destination) {
198 RegisterHostResolverProcHelper(context_adapter->GetURLRequestContext(),
199 destination);
194 } 200 }
195 201
196 } // namespace 202 } // namespace
197 203
198 jboolean StartNativeTestServer(JNIEnv* env, 204 jboolean StartNativeTestServer(JNIEnv* env,
199 const JavaParamRef<jclass>& jcaller, 205 const JavaParamRef<jclass>& jcaller,
200 const JavaParamRef<jstring>& jtest_files_root) { 206 const JavaParamRef<jstring>& jtest_files_root) {
201 // Shouldn't happen. 207 // Shouldn't happen.
202 if (g_test_server) 208 if (g_test_server)
203 return false; 209 return false;
204 g_test_server = new net::EmbeddedTestServer(); 210 g_test_server = new net::EmbeddedTestServer();
205 g_test_server->RegisterRequestHandler( 211 g_test_server->RegisterRequestHandler(
206 base::Bind(&NativeTestServerRequestHandler)); 212 base::Bind(&NativeTestServerRequestHandler));
207 g_test_server->RegisterRequestHandler(base::Bind(&SdchRequestHandler)); 213 g_test_server->RegisterRequestHandler(base::Bind(&SdchRequestHandler));
208 base::FilePath test_files_root( 214 base::FilePath test_files_root(
209 base::android::ConvertJavaStringToUTF8(env, jtest_files_root)); 215 base::android::ConvertJavaStringToUTF8(env, jtest_files_root));
210 216
211 // Add a third handler for paths that NativeTestServerRequestHandler does not 217 // Add a third handler for paths that NativeTestServerRequestHandler does not
212 // handle. 218 // handle.
213 g_test_server->ServeFilesFromDirectory(test_files_root); 219 g_test_server->ServeFilesFromDirectory(test_files_root);
214 return g_test_server->Start(); 220 return g_test_server->Start();
215 } 221 }
216 222
217 void RegisterHostResolverProc(JNIEnv* env, 223 void RegisterHostResolverProc(JNIEnv* env,
218 const JavaParamRef<jclass>& jcaller, 224 const JavaParamRef<jclass>& jcaller,
219 jlong jadapter, 225 jlong jadapter,
220 jboolean jlegacy_api) { 226 jboolean jlegacy_api,
227 const JavaParamRef<jstring>& jdestination) {
228 std::string destination(
229 base::android::ConvertJavaStringToUTF8(env, jdestination));
221 if (jlegacy_api == JNI_TRUE) { 230 if (jlegacy_api == JNI_TRUE) {
222 URLRequestContextAdapter* context_adapter = 231 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
223 reinterpret_cast<URLRequestContextAdapter*>(jadapter); 232 reinterpret_cast<URLRequestContextAdapter*>(jadapter);
224 context_adapter->PostTaskToNetworkThread( 233 context_adapter->PostTaskToNetworkThread(
225 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThreadLegacyAPI, 234 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThreadLegacyAPI,
226 base::Unretained(context_adapter))); 235 base::Unretained(context_adapter), destination));
227 } else { 236 } else {
228 CronetURLRequestContextAdapter* context_adapter = 237 CronetURLRequestContextAdapter* context_adapter =
229 reinterpret_cast<CronetURLRequestContextAdapter*>(jadapter); 238 reinterpret_cast<CronetURLRequestContextAdapter*>(jadapter);
230 context_adapter->PostTaskToNetworkThread( 239 context_adapter->PostTaskToNetworkThread(
231 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThread, 240 FROM_HERE, base::Bind(&RegisterHostResolverProcOnNetworkThread,
232 base::Unretained(context_adapter))); 241 base::Unretained(context_adapter), destination));
233 } 242 }
234 } 243 }
235 244
236 void ShutdownNativeTestServer(JNIEnv* env, 245 void ShutdownNativeTestServer(JNIEnv* env,
237 const JavaParamRef<jclass>& jcaller) { 246 const JavaParamRef<jclass>& jcaller) {
238 if (!g_test_server) 247 if (!g_test_server)
239 return; 248 return;
240 delete g_test_server; 249 delete g_test_server;
241 g_test_server = NULL; 250 g_test_server = NULL;
242 } 251 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 #else 328 #else
320 return JNI_FALSE; 329 return JNI_FALSE;
321 #endif 330 #endif
322 } 331 }
323 332
324 bool RegisterNativeTestServer(JNIEnv* env) { 333 bool RegisterNativeTestServer(JNIEnv* env) {
325 return RegisterNativesImpl(env); 334 return RegisterNativesImpl(env);
326 } 335 }
327 336
328 } // namespace cronet 337 } // namespace cronet
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698