Index: chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
index f1609df31ec8653afeb50f57a6384c72d498c323..8dc2a08d323d2e817ec04ef56b377a40b7566d23 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
@@ -48,6 +48,7 @@ import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager |
import org.chromium.chrome.browser.share.ShareHelper; |
import org.chromium.chrome.browser.webapps.ChromeWebApkHost; |
import org.chromium.chrome.browser.webapps.WebApkVersionManager; |
+import org.chromium.chrome.browser.webapps.WebappRegistry; |
import org.chromium.content.browser.ChildProcessLauncher; |
import java.util.ArrayList; |
@@ -173,6 +174,10 @@ public class DeferredStartupHandler { |
mDeferredTasks.add(new Runnable() { |
@Override |
public void run() { |
+ // Initialize the WebappRegistry if it's not already initialized. Must be done on |
+ // the main thread. |
+ WebappRegistry.getInstance(); |
+ |
// Punt all tasks that may block on disk off onto a background thread. |
initAsyncDiskTask(); |
@@ -276,11 +281,21 @@ public class DeferredStartupHandler { |
SystemClock.uptimeMillis() - asyncTaskStartTime, |
TimeUnit.MILLISECONDS); |
+ // Warm up all web app shared prefs. This must be run after the WebappRegistry |
+ // instance is initialized. |
+ WebappRegistry.warmUpSharedPrefs(); |
+ |
return null; |
} finally { |
TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.doInBackground"); |
} |
} |
+ |
+ @Override |
+ protected void onPostExecute(Void params) { |
+ // Must be run on the UI thread after the WebappRegistry has been completely warmed. |
+ WebappRegistry.getInstance().unregisterOldWebapps(System.currentTimeMillis()); |
+ } |
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
} |