| Index: chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
| similarity index 80%
|
| rename from chrome/android/java/src/org/chromium/chrome/browser/ChromeLifetimeController.java
|
| rename to chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
| index 3e013c9fd61324da61fa1f05ca99d1d10a15a485..de31bc2f69a1b103491c5aa9568357e0f1401f71 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeLifetimeController.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -package org.chromium.chrome.browser;
|
| +package org.chromium.chrome.browser.init;
|
|
|
| import android.app.Activity;
|
| import android.content.Context;
|
| @@ -12,6 +12,10 @@ import android.os.Process;
|
| import org.chromium.base.ActivityState;
|
| import org.chromium.base.ApplicationStatus;
|
| import org.chromium.base.ContextUtils;
|
| +import org.chromium.base.ThreadUtils;
|
| +import org.chromium.base.annotations.SuppressFBWarnings;
|
| +import org.chromium.chrome.browser.ApplicationLifetime;
|
| +import org.chromium.chrome.browser.BrowserRestartActivity;
|
|
|
| import java.lang.ref.WeakReference;
|
|
|
| @@ -28,13 +32,24 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
|
| ApplicationStatus.ActivityStateListener {
|
| private static final String TAG = "LifetimeController";
|
|
|
| + private static ChromeLifetimeController sInstance;
|
| +
|
| private boolean mRestartChromeOnDestroy;
|
| private int mRemainingActivitiesCount = 0;
|
|
|
| - public ChromeLifetimeController() {
|
| - ApplicationLifetime.addObserver(this);
|
| + /**
|
| + * Initialize the ChromeLifetimeController;
|
| + */
|
| + @SuppressFBWarnings("LI_LAZY_INIT_UPDATE_STATIC")
|
| + public static void initialize() {
|
| + ThreadUtils.assertOnUiThread();
|
| + if (sInstance != null) return;
|
| + sInstance = new ChromeLifetimeController();
|
| + ApplicationLifetime.addObserver(sInstance);
|
| }
|
|
|
| + private ChromeLifetimeController() {}
|
| +
|
| @Override
|
| public void onTerminate(boolean restart) {
|
| mRestartChromeOnDestroy = restart;
|
|
|