| Index: chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
|
| index 3653838554ba3620d69de5f5735247af2e725473..7339ca2944a9973305bbc970ec9fe820bf100ed9 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
|
| @@ -63,6 +63,11 @@ public abstract class AsyncInitializationActivity extends AppCompatActivity impl
|
| private long mLastUserInteractionTime;
|
| private boolean mIsTablet;
|
| private boolean mHadWarmStart;
|
| + private boolean mIsWarmOnResume;
|
| +
|
| + // Stores whether the activity was not resumed yet. Always false after the
|
| + // first |onResume| call.
|
| + private boolean mFirstResumePending = true;
|
|
|
| public AsyncInitializationActivity() {
|
| mHandler = new Handler();
|
| @@ -294,6 +299,8 @@ public abstract class AsyncInitializationActivity extends AppCompatActivity impl
|
| super.onResume();
|
| mNativeInitializationController.onResume();
|
| if (mLaunchBehindWorkaround != null) mLaunchBehindWorkaround.onResume();
|
| + mIsWarmOnResume = !mFirstResumePending || hadWarmStart();
|
| + mFirstResumePending = false;
|
| }
|
|
|
| @Override
|
| @@ -408,6 +415,18 @@ public abstract class AsyncInitializationActivity extends AppCompatActivity impl
|
| return mHadWarmStart;
|
| }
|
|
|
| + /**
|
| + * This returns true if the activity was started warm (native library loaded and initialized) or
|
| + * if a cold starts have been completed by the time onResume is/will be called.
|
| + * This is useful to distinguish between the case where an already running instance of Chrome is
|
| + * being brought back to the foreground from the case where Chrome is started, in order to avoid
|
| + * contention on browser startup
|
| + * @return Whether the activity is warm in onResume.
|
| + */
|
| + public boolean isWarmOnResume() {
|
| + return mIsWarmOnResume;
|
| + }
|
| +
|
| @Override
|
| public void onUserInteraction() {
|
| mLastUserInteractionTime = SystemClock.elapsedRealtime();
|
|
|