| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/DeferredStartupHandler.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/DeferredStartupHandler.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/DeferredStartupHandler.java
|
| deleted file mode 100644
|
| index 948f9d7e42ab31cb40578591a780f618734a98e9..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java_staging/src/org/chromium/chrome/browser/DeferredStartupHandler.java
|
| +++ /dev/null
|
| @@ -1,176 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package org.chromium.chrome.browser;
|
| -
|
| -import android.content.Context;
|
| -import android.os.AsyncTask;
|
| -import android.text.TextUtils;
|
| -
|
| -import org.chromium.base.CommandLine;
|
| -import org.chromium.base.FieldTrialList;
|
| -import org.chromium.base.PowerMonitor;
|
| -import org.chromium.base.ThreadUtils;
|
| -import org.chromium.base.TraceEvent;
|
| -import org.chromium.base.VisibleForTesting;
|
| -import org.chromium.chrome.browser.bookmarkswidget.BookmarkThumbnailWidgetProviderBase;
|
| -import org.chromium.chrome.browser.crash.CrashFileManager;
|
| -import org.chromium.chrome.browser.crash.MinidumpUploadService;
|
| -import org.chromium.chrome.browser.download.DownloadManagerService;
|
| -import org.chromium.chrome.browser.media.MediaNotificationService;
|
| -import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
| -import org.chromium.chrome.browser.precache.PrecacheLauncher;
|
| -import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
|
| -import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager;
|
| -import org.chromium.chrome.browser.share.ShareHelper;
|
| -import org.chromium.components.variations.VariationsAssociatedData;
|
| -import org.chromium.content.browser.ChildProcessLauncher;
|
| -
|
| -/**
|
| - * Handler for application level tasks to be completed on deferred startup.
|
| - */
|
| -public class DeferredStartupHandler {
|
| - // Constants for trial of moderate binding support.
|
| - private static final String MODERATE_BINDING_TRIAL_NAME = "MobileModerateBinding";
|
| - private static final String MODERATE_BINDING_LOW_REDUCE_RATIO_PARAM = "low_reduce_ratio";
|
| - private static final String MODERATE_BINDING_HIGH_REDUCE_RATIO_PARAM = "high_reduce_ratio";
|
| - private static final String MODERATE_BINDING_ENABLED_PARAM = "enabled";
|
| - private static final String MODERATE_BINDING_SWITCH_PREFIX = "moderate-binding-";
|
| - private static final float DEFAULT_MODERATE_BINDING_REDUCE_RATIO = 0.25f;
|
| -
|
| - private static DeferredStartupHandler sDeferredStartupHandler;
|
| - private boolean mDeferredStartupComplete;
|
| -
|
| - /**
|
| - * This class is an application specific object that handles the deferred startup.
|
| - * @return The singleton instance of {@link DeferredStartupHandler}.
|
| - */
|
| - public static DeferredStartupHandler getInstance() {
|
| - if (sDeferredStartupHandler == null) {
|
| - sDeferredStartupHandler = new DeferredStartupHandler();
|
| - }
|
| - return sDeferredStartupHandler;
|
| - }
|
| -
|
| - private DeferredStartupHandler() { }
|
| -
|
| - /**
|
| - * Handle application level deferred startup tasks that can be lazily done after all
|
| - * the necessary initialization has been completed. Any calls requiring network access should
|
| - * probably go here.
|
| - * @param application The application object to use for context.
|
| - * @param crashDumpUploadingDisabled Whether crash dump uploading should be disabled.
|
| - */
|
| - public void onDeferredStartup(final ChromeMobileApplication application,
|
| - final boolean crashDumpUploadingDisabled) {
|
| - if (mDeferredStartupComplete) return;
|
| - ThreadUtils.assertOnUiThread();
|
| -
|
| - // Punt all tasks that may block the UI thread off onto a background thread.
|
| - new AsyncTask<Void, Void, Void>() {
|
| - @Override
|
| - protected Void doInBackground(Void... params) {
|
| - try {
|
| - TraceEvent.begin("ChromeBrowserInitializer.onDeferredStartup.doInBackground");
|
| - if (crashDumpUploadingDisabled) {
|
| - PrivacyPreferencesManager.getInstance(application).disableCrashUploading();
|
| - } else {
|
| - MinidumpUploadService.tryUploadAllCrashDumps(application);
|
| - }
|
| - CrashFileManager crashFileManager =
|
| - new CrashFileManager(application.getCacheDir());
|
| - crashFileManager.cleanOutAllNonFreshMinidumpFiles();
|
| -
|
| - MinidumpUploadService.storeBreakpadUploadAttemptsInUma(
|
| - ChromePreferenceManager.getInstance(application));
|
| -
|
| - // Force a widget refresh in order to wake up any possible zombie widgets.
|
| - // This is needed to ensure the right behavior when the process is suddenly
|
| - // killed.
|
| - BookmarkThumbnailWidgetProviderBase.refreshAllWidgets(application);
|
| -
|
| - // Initialize whether or not precaching is enabled.
|
| - PrecacheLauncher.updatePrecachingEnabled(
|
| - PrivacyPreferencesManager.getInstance(application), application);
|
| -
|
| - return null;
|
| - } finally {
|
| - TraceEvent.end("ChromeBrowserInitializer.onDeferredStartup.doInBackground");
|
| - }
|
| - }
|
| - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
| -
|
| - // TODO(aruslan): http://b/6397072 This will be moved elsewhere
|
| - PartnerBookmarksShim.kickOffReading(application);
|
| -
|
| - PowerMonitor.create(application);
|
| -
|
| - // Starts syncing with GSA.
|
| - application.createGsaHelper().startSync();
|
| -
|
| - DownloadManagerService.getDownloadManagerService(application)
|
| - .clearPendingDownloadNotifications();
|
| -
|
| - application.initializeSharedClasses();
|
| -
|
| - ShareHelper.clearSharedScreenshots(application);
|
| -
|
| - // Clear any media notifications that existed when Chrome was last killed.
|
| - MediaNotificationService.clearMediaNotifications(application);
|
| -
|
| - startModerateBindingManagementIfNeeded(application);
|
| -
|
| - String customTabsTrialGroupName = FieldTrialList.findFullName("CustomTabs");
|
| - if (customTabsTrialGroupName.equals("Disabled")) {
|
| - ChromePreferenceManager.getInstance(application).setCustomTabsEnabled(false);
|
| - } else if (customTabsTrialGroupName.equals("Enabled")
|
| - || customTabsTrialGroupName.equals("DisablePrerender")) {
|
| - ChromePreferenceManager.getInstance(application).setCustomTabsEnabled(true);
|
| - }
|
| -
|
| - mDeferredStartupComplete = true;
|
| - }
|
| -
|
| - private static float parseFloat(String value, float defaultValue) {
|
| - try {
|
| - return TextUtils.isEmpty(value) ? defaultValue : Float.parseFloat(value);
|
| - } catch (NumberFormatException e) {
|
| - return defaultValue;
|
| - }
|
| - }
|
| -
|
| - private static String getModerateBindingConfigValue(String param) {
|
| - String switchName = MODERATE_BINDING_SWITCH_PREFIX + param;
|
| - if (CommandLine.getInstance().hasSwitch(switchName)) {
|
| - return CommandLine.getInstance().getSwitchValue(switchName);
|
| - }
|
| - return VariationsAssociatedData.getVariationParamValue(MODERATE_BINDING_TRIAL_NAME, param);
|
| - }
|
| -
|
| - private static void startModerateBindingManagementIfNeeded(Context context) {
|
| - String enabledValue = getModerateBindingConfigValue(MODERATE_BINDING_ENABLED_PARAM);
|
| - if (!Boolean.parseBoolean(enabledValue)) return;
|
| -
|
| - String lowReduceRatioValue =
|
| - getModerateBindingConfigValue(MODERATE_BINDING_LOW_REDUCE_RATIO_PARAM);
|
| - String highReduceRatioValue =
|
| - getModerateBindingConfigValue(MODERATE_BINDING_HIGH_REDUCE_RATIO_PARAM);
|
| - float lowReduceRatio =
|
| - parseFloat(lowReduceRatioValue, DEFAULT_MODERATE_BINDING_REDUCE_RATIO);
|
| - float highReduceRatio =
|
| - parseFloat(highReduceRatioValue, DEFAULT_MODERATE_BINDING_REDUCE_RATIO * 2);
|
| - highReduceRatio = Math.max(0, Math.min(1, highReduceRatio));
|
| - lowReduceRatio = Math.max(0, Math.min(highReduceRatio, lowReduceRatio));
|
| - ChildProcessLauncher.startModerateBindingManagement(
|
| - context, lowReduceRatio, highReduceRatio);
|
| - }
|
| -
|
| - /**
|
| - * @return Whether deferred startup has been completed.
|
| - */
|
| - @VisibleForTesting
|
| - public boolean isDeferredStartupComplete() {
|
| - return mDeferredStartupComplete;
|
| - }
|
| -}
|
|
|