| Index: chrome/app/android/chrome_main_delegate_android.cc
|
| diff --git a/chrome/app/android/chrome_main_delegate_android.cc b/chrome/app/android/chrome_main_delegate_android.cc
|
| index 81f402936423b81d476b4374b57b0c7181c80c94..a1022e4b3709474d889e7776e9da445cde600ee6 100644
|
| --- a/chrome/app/android/chrome_main_delegate_android.cc
|
| +++ b/chrome/app/android/chrome_main_delegate_android.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/android/jni_android.h"
|
| #include "base/debug/trace_event.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "chrome/browser/android/chrome_jni_registrar.h"
|
| #include "chrome/browser/android/chrome_startup_flags.h"
|
| #include "content/public/browser/browser_main_runner.h"
|
| @@ -13,8 +14,8 @@
|
| // ChromeMainDelegateAndroid is created when the library is loaded. It is always
|
| // done in the process's main Java thread. But for non browser process, e.g.
|
| // renderer process, it is not the native Chrome's main thread.
|
| -ChromeMainDelegateAndroid::ChromeMainDelegateAndroid() {
|
| -}
|
| +ChromeMainDelegateAndroid::ChromeMainDelegateAndroid()
|
| + : incremental_startup_enabled_(false) {}
|
|
|
| ChromeMainDelegateAndroid::~ChromeMainDelegateAndroid() {
|
| }
|
| @@ -33,7 +34,17 @@ int ChromeMainDelegateAndroid::RunProcess(
|
| RegisterApplicationNativeMethods(env);
|
|
|
| browser_runner_.reset(content::BrowserMainRunner::Create());
|
| - return browser_runner_->Initialize(main_function_params);
|
| +
|
| + // For Chrome on android we want to run the startup tasks incrementally, so
|
| + // that UI tasks can get in in-between.
|
| + content::StartupTaskRunner::StartupMode mode =
|
| + incremental_startup_enabled_ ? content::StartupTaskRunner::INCREMENTAL
|
| + : content::StartupTaskRunner::IMMEDIATE;
|
| + scoped_refptr<content::StartupTaskRunner> startup_task_runner(
|
| + new content::StartupTaskRunner(mode, GetStartupObserver()));
|
| +
|
| + return browser_runner_->Initialize(main_function_params,
|
| + startup_task_runner);
|
| }
|
|
|
| return ChromeMainDelegate::RunProcess(process_type, main_function_params);
|
| @@ -47,3 +58,7 @@ bool ChromeMainDelegateAndroid::BasicStartupComplete(int* exit_code) {
|
| bool ChromeMainDelegateAndroid::RegisterApplicationNativeMethods(JNIEnv* env) {
|
| return chrome::android::RegisterJni(env);
|
| }
|
| +
|
| +void ChromeMainDelegateAndroid::EnableIncrementalStartup(bool enable) {
|
| + incremental_startup_enabled_ = enable;
|
| +}
|
|
|