| Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java
|
| index bae9db2299e9416626a42fa0fd809acc157e61ef..3f8033ca9c38888a12291a2913989144d5051a90 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java
|
| @@ -10,6 +10,7 @@ import android.content.Intent;
|
| import android.content.SharedPreferences;
|
| import android.os.AsyncTask;
|
| import android.os.StrictMode;
|
| +import android.os.SystemClock;
|
| import android.text.TextUtils;
|
| import android.util.Log;
|
| import android.util.Pair;
|
| @@ -21,6 +22,7 @@ import org.chromium.base.ApplicationStatus;
|
| import org.chromium.base.ObserverList;
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.VisibleForTesting;
|
| +import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.chrome.browser.TabState;
|
| import org.chromium.chrome.browser.document.DocumentActivity;
|
| import org.chromium.chrome.browser.document.DocumentMetricIds;
|
| @@ -43,6 +45,7 @@ import java.util.ArrayList;
|
| import java.util.HashSet;
|
| import java.util.List;
|
| import java.util.Set;
|
| +import java.util.concurrent.TimeUnit;
|
|
|
| /**
|
| * Maintains a list of Tabs displayed when Chrome is running in document-mode.
|
| @@ -136,6 +139,9 @@ public class DocumentTabModelImpl extends TabModelJniBridge implements DocumentT
|
| /** ID of the last tab that was shown to the user. */
|
| private int mLastShownTabId = Tab.INVALID_TAB_ID;
|
|
|
| + /** Initial load time for shared preferences */
|
| + private long mSharedPrefsLoadTime;
|
| +
|
| /**
|
| * Pre-load shared prefs to avoid being blocked on the
|
| * disk access async task in the future.
|
| @@ -170,10 +176,12 @@ public class DocumentTabModelImpl extends TabModelJniBridge implements DocumentT
|
| mInitializationObservers = new ObserverList<InitializationObserver>();
|
| mObservers = new ObserverList<TabModelObserver>();
|
|
|
| + long time = SystemClock.elapsedRealtime();
|
| SharedPreferences prefs = mContext.getSharedPreferences(PREF_PACKAGE, Context.MODE_PRIVATE);
|
| mLastShownTabId = prefs.getInt(
|
| isIncognito() ? PREF_LAST_SHOWN_TAB_ID_INCOGNITO : PREF_LAST_SHOWN_TAB_ID_REGULAR,
|
| Tab.INVALID_TAB_ID);
|
| + mSharedPrefsLoadTime = SystemClock.elapsedRealtime() - time;
|
|
|
| // Restore the tab list.
|
| setCurrentState(STATE_READ_RECENT_TASKS_START);
|
| @@ -186,6 +194,11 @@ public class DocumentTabModelImpl extends TabModelJniBridge implements DocumentT
|
| public void initializeNative() {
|
| if (!isNativeInitialized()) super.initializeNative();
|
| deserializeTabStatesAsync();
|
| +
|
| + if (isNativeInitialized()) {
|
| + RecordHistogram.recordTimesHistogram("Android.StrictMode.DocumentModeSharedPrefs",
|
| + mSharedPrefsLoadTime, TimeUnit.MILLISECONDS);
|
| + }
|
| }
|
|
|
| public StorageDelegate getStorageDelegate() {
|
|
|