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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java

Issue 2348583002: Split out foreground session tracking from the application code. (Closed)
Patch Set: fix test Created 4 years, 3 months 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 side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698