Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(542)

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/DeferredStartupHandler.java

Issue 1206673003: Merge java_staging/src into java/src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698