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.content.Intent; | 8 import android.content.Intent; |
9 import android.content.SharedPreferences; | 9 import android.content.SharedPreferences; |
10 import android.content.pm.ResolveInfo; | 10 import android.content.pm.ResolveInfo; |
(...skipping 30 matching lines...) Expand all Loading... |
41 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; | 41 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; |
42 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; | 42 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
43 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
tions; | 43 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
tions; |
44 import org.chromium.chrome.browser.physicalweb.PhysicalWeb; | 44 import org.chromium.chrome.browser.physicalweb.PhysicalWeb; |
45 import org.chromium.chrome.browser.precache.PrecacheLauncher; | 45 import org.chromium.chrome.browser.precache.PrecacheLauncher; |
46 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; | 46 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
47 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager
; | 47 import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager
; |
48 import org.chromium.chrome.browser.share.ShareHelper; | 48 import org.chromium.chrome.browser.share.ShareHelper; |
49 import org.chromium.chrome.browser.webapps.ChromeWebApkHost; | 49 import org.chromium.chrome.browser.webapps.ChromeWebApkHost; |
50 import org.chromium.chrome.browser.webapps.WebApkVersionManager; | 50 import org.chromium.chrome.browser.webapps.WebApkVersionManager; |
51 import org.chromium.chrome.browser.webapps.WebappRegistry; | |
52 import org.chromium.content.browser.ChildProcessLauncher; | 51 import org.chromium.content.browser.ChildProcessLauncher; |
53 | 52 |
54 import java.util.ArrayList; | 53 import java.util.ArrayList; |
55 import java.util.LinkedList; | 54 import java.util.LinkedList; |
56 import java.util.List; | 55 import java.util.List; |
57 import java.util.Locale; | 56 import java.util.Locale; |
58 import java.util.Queue; | 57 import java.util.Queue; |
59 import java.util.concurrent.TimeUnit; | 58 import java.util.concurrent.TimeUnit; |
60 | 59 |
61 /** | 60 /** |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 ThreadUtils.assertOnUiThread(); | 166 ThreadUtils.assertOnUiThread(); |
168 | 167 |
169 RecordHistogram.recordLongTimesHistogram( | 168 RecordHistogram.recordLongTimesHistogram( |
170 "UMA.Debug.EnableCrashUpload.DeferredStartUptime2", | 169 "UMA.Debug.EnableCrashUpload.DeferredStartUptime2", |
171 SystemClock.uptimeMillis() - UmaUtils.getForegroundStartTime(), | 170 SystemClock.uptimeMillis() - UmaUtils.getForegroundStartTime(), |
172 TimeUnit.MILLISECONDS); | 171 TimeUnit.MILLISECONDS); |
173 | 172 |
174 mDeferredTasks.add(new Runnable() { | 173 mDeferredTasks.add(new Runnable() { |
175 @Override | 174 @Override |
176 public void run() { | 175 public void run() { |
177 // Initialize the WebappRegistry if it's not already initialized
. Must be done on | |
178 // the main thread. | |
179 WebappRegistry.getInstance(); | |
180 | |
181 // Punt all tasks that may block on disk off onto a background t
hread. | 176 // Punt all tasks that may block on disk off onto a background t
hread. |
182 initAsyncDiskTask(); | 177 initAsyncDiskTask(); |
183 | 178 |
184 AfterStartupTaskUtils.setStartupComplete(); | 179 AfterStartupTaskUtils.setStartupComplete(); |
185 | 180 |
186 PartnerBrowserCustomizations.setOnInitializeAsyncFinished(new Ru
nnable() { | 181 PartnerBrowserCustomizations.setOnInitializeAsyncFinished(new Ru
nnable() { |
187 @Override | 182 @Override |
188 public void run() { | 183 public void run() { |
189 String homepageUrl = HomepageManager.getHomepageUri(mApp
Context); | 184 String homepageUrl = HomepageManager.getHomepageUri(mApp
Context); |
190 LaunchMetrics.recordHomePageLaunchMetrics( | 185 LaunchMetrics.recordHomePageLaunchMetrics( |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 | 269 |
275 removeSnapshotDatabase(); | 270 removeSnapshotDatabase(); |
276 | 271 |
277 cacheIsChromeDefaultBrowser(); | 272 cacheIsChromeDefaultBrowser(); |
278 | 273 |
279 RecordHistogram.recordLongTimesHistogram( | 274 RecordHistogram.recordLongTimesHistogram( |
280 "UMA.Debug.EnableCrashUpload.DeferredStartUpDuration
Async", | 275 "UMA.Debug.EnableCrashUpload.DeferredStartUpDuration
Async", |
281 SystemClock.uptimeMillis() - asyncTaskStartTime, | 276 SystemClock.uptimeMillis() - asyncTaskStartTime, |
282 TimeUnit.MILLISECONDS); | 277 TimeUnit.MILLISECONDS); |
283 | 278 |
284 // Warm up all web app shared prefs. This must be run after
the WebappRegistry | |
285 // instance is initialized. | |
286 WebappRegistry.warmUpSharedPrefs(); | |
287 | |
288 return null; | 279 return null; |
289 } finally { | 280 } finally { |
290 TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.d
oInBackground"); | 281 TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.d
oInBackground"); |
291 } | 282 } |
292 } | 283 } |
293 | |
294 @Override | |
295 protected void onPostExecute(Void params) { | |
296 // Must be run on the UI thread after the WebappRegistry has bee
n completely warmed. | |
297 WebappRegistry.getInstance().unregisterOldWebapps(System.current
TimeMillis()); | |
298 } | |
299 }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); | 284 }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
300 } | 285 } |
301 | 286 |
302 private void startModerateBindingManagementIfNeeded() { | 287 private void startModerateBindingManagementIfNeeded() { |
303 // Moderate binding doesn't apply to low end devices. | 288 // Moderate binding doesn't apply to low end devices. |
304 if (SysUtils.isLowEndDevice()) return; | 289 if (SysUtils.isLowEndDevice()) return; |
305 | 290 |
306 boolean moderateBindingTillBackgrounded = | 291 boolean moderateBindingTillBackgrounded = |
307 FieldTrialList.findFullName("ModerateBindingOnBackgroundTabCreat
ion") | 292 FieldTrialList.findFullName("ModerateBindingOnBackgroundTabCreat
ion") |
308 .equals("Enabled"); | 293 .equals("Enabled"); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 } | 354 } |
370 | 355 |
371 /** | 356 /** |
372 * @return Whether deferred startup has been completed. | 357 * @return Whether deferred startup has been completed. |
373 */ | 358 */ |
374 @VisibleForTesting | 359 @VisibleForTesting |
375 public boolean isDeferredStartupCompleteForApp() { | 360 public boolean isDeferredStartupCompleteForApp() { |
376 return mDeferredStartupCompletedForApp; | 361 return mDeferredStartupCompletedForApp; |
377 } | 362 } |
378 } | 363 } |
OLD | NEW |