| Index: chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| index a8e29abae58639bc3763efa8bf4032e475a4c155..5f27fc5e920addfb5f683cd4f2cf91d101031bb8 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
| @@ -15,9 +15,11 @@ import org.chromium.base.CommandLine;
|
| import org.chromium.base.ContextUtils;
|
| import org.chromium.base.Log;
|
| import org.chromium.base.ThreadUtils;
|
| +import org.chromium.chrome.browser.ChromeActivitySessionTracker;
|
| import org.chromium.chrome.browser.ChromeApplication;
|
| import org.chromium.chrome.browser.DeferredStartupHandler;
|
| import org.chromium.chrome.browser.DevToolsServer;
|
| +import org.chromium.chrome.browser.banners.AppBannerManager;
|
| import org.chromium.chrome.browser.download.DownloadController;
|
| import org.chromium.chrome.browser.download.DownloadManagerService;
|
| import org.chromium.chrome.browser.firstrun.ForcedSigninProcessor;
|
| @@ -25,6 +27,8 @@ import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory
|
| import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerator;
|
| import org.chromium.chrome.browser.invalidation.UniqueIdInvalidationClientNameGenerator;
|
| import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
| +import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
| +import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
| import org.chromium.chrome.browser.rlz.RevenueStats;
|
| import org.chromium.chrome.browser.services.AccountsChangedReceiver;
|
| import org.chromium.chrome.browser.services.GoogleServicesManager;
|
| @@ -47,6 +51,7 @@ public class ProcessInitializationHandler {
|
| private static ProcessInitializationHandler sInstance;
|
|
|
| private boolean mInitializedPreNative;
|
| + private boolean mInitializedPostNative;
|
| private boolean mInitializedDeferredStartupTasks;
|
| private DevToolsServer mDevToolsServer;
|
|
|
| @@ -150,6 +155,32 @@ public class ProcessInitializationHandler {
|
| }
|
|
|
| /**
|
| + * Initializes any dependencies that must occur after the native library has been loaded.
|
| + */
|
| + public final void initializePostNative() {
|
| + ThreadUtils.assertOnUiThread();
|
| + if (mInitializedPostNative) return;
|
| + mInitializedPostNative = true;
|
| + handlePostNativeInitialization();
|
| + }
|
| +
|
| + /**
|
| + * Performs the post native initialization.
|
| + */
|
| + protected void handlePostNativeInitialization() {
|
| + final ChromeApplication application =
|
| + (ChromeApplication) ContextUtils.getApplicationContext();
|
| +
|
| + DataReductionProxySettings.reconcileDataReductionProxyEnabledState(application);
|
| + ChromeActivitySessionTracker.getInstance().initializeWithNative();
|
| + ChromeApplication.removeSessionCookies();
|
| + AppBannerManager.setAppDetailsDelegate(application.createAppDetailsDelegate());
|
| + ChromeLifetimeController.initialize();
|
| +
|
| + PrefServiceBridge.getInstance().migratePreferences(application);
|
| + }
|
| +
|
| + /**
|
| * Initializes the deferred startup tasks that should only be triggered once per browser process
|
| * lifetime.
|
| */
|
|
|