Commit f1639d13 authored by Ted Choc's avatar Ted Choc Committed by Commit Bot

Do not enqueue tasks in ChromeBrowserInitializer that are no-ops.

BUG=

Change-Id: Iea874dae231c2c81b753f605af831f0564ae1ac9
Reviewed-on: https://chromium-review.googlesource.com/1188441Reviewed-by: default avatarPaul Jensen <pauljensen@chromium.org>
Reviewed-by: default avatarBenoit L <lizeb@chromium.org>
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586432}
parent 24bf833a
...@@ -423,8 +423,7 @@ public class CustomTabsConnection { ...@@ -423,8 +423,7 @@ public class CustomTabsConnection {
tasks.add(() -> { tasks.add(() -> {
try (TraceEvent e = TraceEvent.scoped("CustomTabsConnection.initializeBrowser()")) { try (TraceEvent e = TraceEvent.scoped("CustomTabsConnection.initializeBrowser()")) {
initializeBrowser(ContextUtils.getApplicationContext()); initializeBrowser(ContextUtils.getApplicationContext());
ChromeBrowserInitializer.initNetworkChangeNotifier( ChromeBrowserInitializer.getInstance().initNetworkChangeNotifier();
ContextUtils.getApplicationContext());
mWarmupHasBeenFinished.set(true); mWarmupHasBeenFinished.set(true);
} }
}); });
......
...@@ -7,8 +7,6 @@ package org.chromium.chrome.browser.init; ...@@ -7,8 +7,6 @@ package org.chromium.chrome.browser.init;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Process; import android.os.Process;
import android.os.StrictMode; import android.os.StrictMode;
...@@ -62,13 +60,13 @@ public class ChromeBrowserInitializer { ...@@ -62,13 +60,13 @@ public class ChromeBrowserInitializer {
private static final String TAG = "BrowserInitializer"; private static final String TAG = "BrowserInitializer";
private static ChromeBrowserInitializer sChromeBrowserInitializer; private static ChromeBrowserInitializer sChromeBrowserInitializer;
private static BrowserStartupController sBrowserStartupController; private static BrowserStartupController sBrowserStartupController;
private final Handler mHandler;
private final ChromeApplication mApplication; private final ChromeApplication mApplication;
private final Locale mInitialLocale = Locale.getDefault(); private final Locale mInitialLocale = Locale.getDefault();
private boolean mPreInflationStartupComplete; private boolean mPreInflationStartupComplete;
private boolean mPostInflationStartupComplete; private boolean mPostInflationStartupComplete;
private boolean mNativeInitializationComplete; private boolean mNativeInitializationComplete;
private boolean mNetworkChangeNotifierInitializationComplete;
// Public to allow use in ChromeBackupAgent // Public to allow use in ChromeBackupAgent
public static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chrome"; public static final String PRIVATE_DATA_DIRECTORY_SUFFIX = "chrome";
...@@ -107,7 +105,6 @@ public class ChromeBrowserInitializer { ...@@ -107,7 +105,6 @@ public class ChromeBrowserInitializer {
private ChromeBrowserInitializer() { private ChromeBrowserInitializer() {
mApplication = (ChromeApplication) ContextUtils.getApplicationContext(); mApplication = (ChromeApplication) ContextUtils.getApplicationContext();
mHandler = new Handler(Looper.getMainLooper());
initLeakCanary(); initLeakCanary();
} }
...@@ -274,7 +271,8 @@ public class ChromeBrowserInitializer { ...@@ -274,7 +271,8 @@ public class ChromeBrowserInitializer {
final ChainedTasks tasks = new ChainedTasks(); final ChainedTasks tasks = new ChainedTasks();
// If full browser process is not going to be launched, it is up to individual service to // If full browser process is not going to be launched, it is up to individual service to
// launch its required components. // launch its required components.
if (!delegate.startServiceManagerOnly()) { if (!delegate.startServiceManagerOnly()
&& !ProcessInitializationHandler.getInstance().postNativeInitializationComplete()) {
tasks.add(new Runnable() { tasks.add(new Runnable() {
@Override @Override
public void run() { public void run() {
...@@ -283,12 +281,14 @@ public class ChromeBrowserInitializer { ...@@ -283,12 +281,14 @@ public class ChromeBrowserInitializer {
}); });
} }
if (!mNetworkChangeNotifierInitializationComplete) {
tasks.add(new Runnable() { tasks.add(new Runnable() {
@Override @Override
public void run() { public void run() {
initNetworkChangeNotifier(mApplication.getApplicationContext()); initNetworkChangeNotifier();
} }
}); });
}
tasks.add(new Runnable() { tasks.add(new Runnable() {
@Override @Override
...@@ -322,12 +322,14 @@ public class ChromeBrowserInitializer { ...@@ -322,12 +322,14 @@ public class ChromeBrowserInitializer {
} }
}); });
if (!mNativeInitializationComplete) {
tasks.add(new Runnable() { tasks.add(new Runnable() {
@Override @Override
public void run() { public void run() {
onFinishNativeInitialization(); onFinishNativeInitialization();
} }
}); });
}
tasks.add(new Runnable() { tasks.add(new Runnable() {
@Override @Override
...@@ -395,7 +397,10 @@ public class ChromeBrowserInitializer { ...@@ -395,7 +397,10 @@ public class ChromeBrowserInitializer {
return sBrowserStartupController; return sBrowserStartupController;
} }
public static void initNetworkChangeNotifier(Context context) { public void initNetworkChangeNotifier() {
if (mNetworkChangeNotifierInitializationComplete) return;
mNetworkChangeNotifierInitializationComplete = true;
ThreadUtils.assertOnUiThread(); ThreadUtils.assertOnUiThread();
TraceEvent.begin("NetworkChangeNotifier.init"); TraceEvent.begin("NetworkChangeNotifier.init");
// Enable auto-detection of network connectivity state changes. // Enable auto-detection of network connectivity state changes.
......
...@@ -197,6 +197,13 @@ public class ProcessInitializationHandler { ...@@ -197,6 +197,13 @@ public class ProcessInitializationHandler {
mInitializedPostNative = true; mInitializedPostNative = true;
} }
/**
* @return Whether post native initialization has been completed.
*/
public final boolean postNativeInitializationComplete() {
return mInitializedPostNative;
}
/** /**
* Performs the post native initialization. * Performs the post native initialization.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment