OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "shell/android/main.h" | 5 #include "shell/android/main.h" |
6 | 6 |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #include "base/android/fifo_utils.h" | 9 #include "base/android/fifo_utils.h" |
10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 mojo::NetworkServicePtr network_service; | 231 mojo::NetworkServicePtr network_service; |
232 context->application_manager()->ConnectToService(GURL("mojo:network_service"), | 232 context->application_manager()->ConnectToService(GURL("mojo:network_service"), |
233 &network_service); | 233 &network_service); |
234 breakpad::UploadCrashes(dumps_path, context->task_runners()->blocking_pool(), | 234 breakpad::UploadCrashes(dumps_path, context->task_runners()->blocking_pool(), |
235 network_service.Pass()); | 235 network_service.Pass()); |
236 } | 236 } |
237 | 237 |
238 } // namespace | 238 } // namespace |
239 | 239 |
240 static void Start(JNIEnv* env, | 240 static void Start(JNIEnv* env, |
241 jclass clazz, | 241 const JavaParamRef<jclass>& clazz, |
242 jobject application_context, | 242 const JavaParamRef<jobject>& application_context, |
243 jobject j_asset_manager, | 243 const JavaParamRef<jobject>& j_asset_manager, |
244 jstring mojo_shell_child_path, | 244 const JavaParamRef<jstring>& mojo_shell_child_path, |
245 jobjectArray jparameters, | 245 const JavaParamRef<jobjectArray>& jparameters, |
246 jstring j_local_apps_directory, | 246 const JavaParamRef<jstring>& j_local_apps_directory, |
247 jstring j_tmp_dir, | 247 const JavaParamRef<jstring>& j_tmp_dir, |
248 jstring j_home_dir) { | 248 const JavaParamRef<jstring>& j_home_dir) { |
249 // Initially, the shell runner is not ready. | 249 // Initially, the shell runner is not ready. |
250 g_internal_data.Get().shell_runner_ready.reset( | 250 g_internal_data.Get().shell_runner_ready.reset( |
251 new base::WaitableEvent(true, false)); | 251 new base::WaitableEvent(true, false)); |
252 | 252 |
253 std::string tmp_dir = base::android::ConvertJavaStringToUTF8(env, j_tmp_dir); | 253 std::string tmp_dir = base::android::ConvertJavaStringToUTF8(env, j_tmp_dir); |
254 // Setting the TMPDIR and HOME environment variables so that applications can | 254 // Setting the TMPDIR and HOME environment variables so that applications can |
255 // use it. | 255 // use it. |
256 // TODO(qsr) We will need our subprocesses to inherit this. | 256 // TODO(qsr) We will need our subprocesses to inherit this. |
257 int return_value = setenv("TMPDIR", tmp_dir.c_str(), 1); | 257 int return_value = setenv("TMPDIR", tmp_dir.c_str(), 1); |
258 DCHECK_EQ(return_value, 0); | 258 DCHECK_EQ(return_value, 0); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 g_internal_data.Get().shell_runner_ready->Wait(); | 325 g_internal_data.Get().shell_runner_ready->Wait(); |
326 | 326 |
327 // Upload crashes after one minute. | 327 // Upload crashes after one minute. |
328 g_internal_data.Get().shell_task_runner->PostDelayedTask( | 328 g_internal_data.Get().shell_task_runner->PostDelayedTask( |
329 FROM_HERE, base::Bind(&UploadCrashes, dumps_path), | 329 FROM_HERE, base::Bind(&UploadCrashes, dumps_path), |
330 base::TimeDelta::FromSeconds(kDelayBeforeCrashUploadInSeconds)); | 330 base::TimeDelta::FromSeconds(kDelayBeforeCrashUploadInSeconds)); |
331 | 331 |
332 gpu::ApplyGpuDriverBugWorkarounds(command_line); | 332 gpu::ApplyGpuDriverBugWorkarounds(command_line); |
333 } | 333 } |
334 | 334 |
335 static void AddApplicationURL(JNIEnv* env, jclass clazz, jstring jurl) { | 335 static void AddApplicationURL(JNIEnv* env, |
| 336 const JavaParamRef<jclass>& clazz, |
| 337 const JavaParamRef<jstring>& jurl) { |
336 base::CommandLine::ForCurrentProcess()->AppendArg( | 338 base::CommandLine::ForCurrentProcess()->AppendArg( |
337 base::android::ConvertJavaStringToUTF8(env, jurl)); | 339 base::android::ConvertJavaStringToUTF8(env, jurl)); |
338 } | 340 } |
339 | 341 |
340 static void StartApplicationURL(JNIEnv* env, jclass clazz, jstring jurl) { | 342 static void StartApplicationURL(JNIEnv* env, |
| 343 const JavaParamRef<jclass>& clazz, |
| 344 const JavaParamRef<jstring>& jurl) { |
341 std::string url = base::android::ConvertJavaStringToUTF8(env, jurl); | 345 std::string url = base::android::ConvertJavaStringToUTF8(env, jurl); |
342 g_internal_data.Get().shell_task_runner->PostTask( | 346 g_internal_data.Get().shell_task_runner->PostTask( |
343 FROM_HERE, base::Bind(&EmbedApplicationByURL, url)); | 347 FROM_HERE, base::Bind(&EmbedApplicationByURL, url)); |
344 } | 348 } |
345 | 349 |
346 static void BindShell(JNIEnv* env, jclass clazz, jint shell_handle) { | 350 static void BindShell(JNIEnv* env, |
| 351 const JavaParamRef<jclass>& clazz, |
| 352 jint shell_handle) { |
347 g_internal_data.Get().shell_task_runner->PostTask( | 353 g_internal_data.Get().shell_task_runner->PostTask( |
348 FROM_HERE, | 354 FROM_HERE, |
349 base::Bind(&BindShellImpl, base::Passed(mojo::ScopedMessagePipeHandle( | 355 base::Bind(&BindShellImpl, base::Passed(mojo::ScopedMessagePipeHandle( |
350 mojo::MessagePipeHandle(shell_handle))))); | 356 mojo::MessagePipeHandle(shell_handle))))); |
351 } | 357 } |
352 | 358 |
353 static void QuitShell(JNIEnv* env, jclass jcaller) { | 359 static void QuitShell(JNIEnv* env, const JavaParamRef<jclass>& clazz) { |
354 g_internal_data.Get().shell_task_runner->PostTask( | 360 g_internal_data.Get().shell_task_runner->PostTask( |
355 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); | 361 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); |
356 } | 362 } |
357 | 363 |
358 bool RegisterShellService(JNIEnv* env) { | 364 bool RegisterShellService(JNIEnv* env) { |
359 return RegisterNativesImpl(env); | 365 return RegisterNativesImpl(env); |
360 } | 366 } |
361 | 367 |
362 } // namespace shell | 368 } // namespace shell |
OLD | NEW |