OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser; | 5 package org.chromium.chrome.browser; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.os.AsyncTask; | 8 import android.os.AsyncTask; |
9 import android.os.SystemClock; | 9 import android.os.SystemClock; |
10 import android.text.TextUtils; | 10 import android.text.TextUtils; |
11 | 11 |
| 12 import org.chromium.base.CommandLine; |
12 import org.chromium.base.FieldTrialList; | 13 import org.chromium.base.FieldTrialList; |
13 import org.chromium.base.PowerMonitor; | 14 import org.chromium.base.PowerMonitor; |
14 import org.chromium.base.SysUtils; | 15 import org.chromium.base.SysUtils; |
15 import org.chromium.base.ThreadUtils; | 16 import org.chromium.base.ThreadUtils; |
16 import org.chromium.base.TraceEvent; | 17 import org.chromium.base.TraceEvent; |
17 import org.chromium.base.VisibleForTesting; | 18 import org.chromium.base.VisibleForTesting; |
18 import org.chromium.base.metrics.RecordHistogram; | 19 import org.chromium.base.metrics.RecordHistogram; |
19 import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider; | 20 import org.chromium.chrome.browser.bookmarkswidget.BookmarkWidgetProvider; |
20 import org.chromium.chrome.browser.crash.CrashFileManager; | 21 import org.chromium.chrome.browser.crash.CrashFileManager; |
21 import org.chromium.chrome.browser.crash.MinidumpUploadService; | 22 import org.chromium.chrome.browser.crash.MinidumpUploadService; |
22 import org.chromium.chrome.browser.media.MediaCaptureNotificationService; | 23 import org.chromium.chrome.browser.media.MediaCaptureNotificationService; |
23 import org.chromium.chrome.browser.metrics.UmaUtils; | 24 import org.chromium.chrome.browser.metrics.UmaUtils; |
24 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; | 25 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; |
25 import org.chromium.chrome.browser.physicalweb.PhysicalWeb; | 26 import org.chromium.chrome.browser.physicalweb.PhysicalWeb; |
26 import org.chromium.chrome.browser.precache.PrecacheLauncher; | 27 import org.chromium.chrome.browser.precache.PrecacheLauncher; |
27 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; | 28 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
28 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager
; | 29 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager
; |
29 import org.chromium.chrome.browser.share.ShareHelper; | 30 import org.chromium.chrome.browser.share.ShareHelper; |
| 31 import org.chromium.chrome.browser.webapps.WebApkVersionManager; |
30 import org.chromium.content.browser.ChildProcessLauncher; | 32 import org.chromium.content.browser.ChildProcessLauncher; |
31 | 33 |
32 import java.util.concurrent.TimeUnit; | 34 import java.util.concurrent.TimeUnit; |
33 | 35 |
34 /** | 36 /** |
35 * Handler for application level tasks to be completed on deferred startup. | 37 * Handler for application level tasks to be completed on deferred startup. |
36 */ | 38 */ |
37 public class DeferredStartupHandler { | 39 public class DeferredStartupHandler { |
38 private static DeferredStartupHandler sDeferredStartupHandler; | 40 private static DeferredStartupHandler sDeferredStartupHandler; |
39 private boolean mDeferredStartupComplete; | 41 private boolean mDeferredStartupComplete; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 ChromePreferenceManager.getInstance(application)); | 92 ChromePreferenceManager.getInstance(application)); |
91 | 93 |
92 // Force a widget refresh in order to wake up any possible z
ombie widgets. | 94 // Force a widget refresh in order to wake up any possible z
ombie widgets. |
93 // This is needed to ensure the right behavior when the proc
ess is suddenly | 95 // This is needed to ensure the right behavior when the proc
ess is suddenly |
94 // killed. | 96 // killed. |
95 BookmarkWidgetProvider.refreshAllWidgets(application); | 97 BookmarkWidgetProvider.refreshAllWidgets(application); |
96 | 98 |
97 // Initialize whether or not precaching is enabled. | 99 // Initialize whether or not precaching is enabled. |
98 PrecacheLauncher.updatePrecachingEnabled(application); | 100 PrecacheLauncher.updatePrecachingEnabled(application); |
99 | 101 |
| 102 if (CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABL
E_WEBAPK)) { |
| 103 WebApkVersionManager.updateWebApksIfNeeded(application); |
| 104 } |
| 105 |
100 return null; | 106 return null; |
101 } finally { | 107 } finally { |
102 TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.d
oInBackground"); | 108 TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.d
oInBackground"); |
103 } | 109 } |
104 } | 110 } |
105 }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); | 111 }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
106 | 112 |
107 AfterStartupTaskUtils.setStartupComplete(); | 113 AfterStartupTaskUtils.setStartupComplete(); |
108 | 114 |
109 // TODO(aruslan): http://b/6397072 This will be moved elsewhere | 115 // TODO(aruslan): http://b/6397072 This will be moved elsewhere |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 } | 163 } |
158 | 164 |
159 /** | 165 /** |
160 * @return Whether deferred startup has been completed. | 166 * @return Whether deferred startup has been completed. |
161 */ | 167 */ |
162 @VisibleForTesting | 168 @VisibleForTesting |
163 public boolean isDeferredStartupComplete() { | 169 public boolean isDeferredStartupComplete() { |
164 return mDeferredStartupComplete; | 170 return mDeferredStartupComplete; |
165 } | 171 } |
166 } | 172 } |
OLD | NEW |