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

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

Issue 2044403002: 🌽 Split up deferred startup tasks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix findbugs. Created 4 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index aa4ed4d5627730b5ea879a3e6683882f36156014..b689b6b532ac29f28d424925ffb577b4213548fc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -11,8 +11,6 @@ import android.app.SearchManager;
import android.app.assist.AssistContent;
import android.content.Context;
import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Color;
@@ -20,7 +18,6 @@ import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
@@ -39,16 +36,12 @@ import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-import android.view.inputmethod.InputMethodInfo;
-import android.view.inputmethod.InputMethodManager;
-import android.view.inputmethod.InputMethodSubtype;
import org.chromium.base.ActivityState;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.BaseSwitches;
import org.chromium.base.CommandLine;
-import org.chromium.base.ContextUtils;
import org.chromium.base.SysUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
@@ -141,7 +134,6 @@ import org.chromium.ui.base.WindowAndroid;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
import java.util.concurrent.TimeUnit;
/**
@@ -167,11 +159,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
*/
static final int NO_CONTROL_CONTAINER = -1;
- /** Prevents race conditions when deleting snapshot database. */
- private static final Object SNAPSHOT_DATABASE_LOCK = new Object();
- private static final String SNAPSHOT_DATABASE_REMOVED = "snapshot_database_removed";
- private static final String SNAPSHOT_DATABASE_NAME = "snapshots.db";
-
/** Delay in ms after first page load finishes before we initiate deferred startup actions. */
private static final int DEFERRED_STARTUP_DELAY_MS = 1000;
@@ -706,11 +693,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@Override
protected void onDeferredStartup() {
super.onDeferredStartup();
- boolean crashDumpUploadingDisabled =
- CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_CRASH_DUMP_UPLOAD);
- DeferredStartupHandler.getInstance()
- .onDeferredStartup(getChromeApplication(), crashDumpUploadingDisabled);
+ DeferredStartupHandler.getInstance().onDeferredStartupForApp();
+ onDeferredStartupForActivity();
+ }
+ /**
+ * All deferred startup tasks that require the activity rather than the app should go here.
+ */
+ private void onDeferredStartupForActivity() {
BeamController.registerForBeam(this, new BeamProvider() {
@Override
public String getTabUrlForBeam() {
@@ -722,40 +712,16 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
UpdateMenuItemHelper.getInstance().checkForUpdateOnBackgroundThread(this);
- removeSnapshotDatabase();
if (mToolbarManager != null) {
String simpleName = getClass().getSimpleName();
RecordHistogram.recordTimesHistogram("MobileStartup.ToolbarInflationTime." + simpleName,
mInflateInitialLayoutDurationMs, TimeUnit.MILLISECONDS);
mToolbarManager.onDeferredStartup(getOnCreateTimestampMs(), simpleName);
}
- recordKeyboardLocaleUma();
if (MultiWindowUtils.getInstance().isInMultiWindowMode(this)) {
onDeferredStartupForMultiWindowMode();
}
-
- cacheIsChromeDefaultBrowser();
- }
-
- /**
- * Caches whether Chrome is set as a default browser on the device.
- */
- private void cacheIsChromeDefaultBrowser() {
- // Retrieve whether Chrome is default in background to avoid strict mode checks.
- new AsyncTask<Void, Void, Void>() {
- @Override
- protected Void doInBackground(Void... params) {
- Intent intent = new Intent(Intent.ACTION_VIEW,
- Uri.parse("http://www.madeupdomainforcheck123.com/"));
- ResolveInfo info = getPackageManager().resolveActivity(intent, 0);
- boolean isDefault = info != null && info.match != 0 && getPackageName().equals(
- info.activityInfo.packageName);
- ChromePreferenceManager.getInstance(ChromeActivity.this)
- .setCachedChromeDefaultBrowser(isDefault);
- return null;
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
/**
@@ -1699,55 +1665,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
return false;
}
- /**
- * Deletes the snapshot database which is no longer used because the feature has been removed
- * in Chrome M41.
- */
- private void removeSnapshotDatabase() {
- new AsyncTask<Void, Void, Void>() {
- @Override
- protected Void doInBackground(Void... voids) {
- synchronized (SNAPSHOT_DATABASE_LOCK) {
- SharedPreferences prefs =
- ContextUtils.getAppSharedPreferences();
- if (!prefs.getBoolean(SNAPSHOT_DATABASE_REMOVED, false)) {
- deleteDatabase(SNAPSHOT_DATABASE_NAME);
- prefs.edit().putBoolean(SNAPSHOT_DATABASE_REMOVED, true).apply();
- }
- }
- return null;
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- private void recordKeyboardLocaleUma() {
- InputMethodManager imm =
- (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- List<InputMethodInfo> ims = imm.getEnabledInputMethodList();
- ArrayList<String> uniqueLanguages = new ArrayList<String>();
- for (InputMethodInfo method : ims) {
- List<InputMethodSubtype> submethods =
- imm.getEnabledInputMethodSubtypeList(method, true);
- for (InputMethodSubtype submethod : submethods) {
- if (submethod.getMode().equals("keyboard")) {
- String language = submethod.getLocale().split("_")[0];
- if (!uniqueLanguages.contains(language)) {
- uniqueLanguages.add(language);
- }
- }
- }
- }
- RecordHistogram.recordCountHistogram("InputMethod.ActiveCount", uniqueLanguages.size());
-
- InputMethodSubtype currentSubtype = imm.getCurrentInputMethodSubtype();
- Locale systemLocale = Locale.getDefault();
- if (currentSubtype != null && currentSubtype.getLocale() != null && systemLocale != null) {
- String keyboardLanguage = currentSubtype.getLocale().split("_")[0];
- boolean match = systemLocale.getLanguage().equalsIgnoreCase(keyboardLanguage);
- RecordHistogram.recordBooleanHistogram("InputMethod.MatchesSystemLanguage", match);
- }
- }
-
@Override
public void terminateIncognitoSession() {}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698