Commit 23fefa55 authored by Clark DuVall's avatar Clark DuVall Committed by Chromium LUCI CQ

Move ModuleUtil init to after the chrome ClassLoader is available

ModuleUtil.initApplication() ends up calling SplitCompat.install() with
the application context. We need to make sure the application context
ClassLoader has been replaced by the chrome ClassLoader at this point,
otherwise SplitCompat may not be able to load fake installed splits.

This is a bit unfortunate since ModuleUtil.initApplication() is pretty
expensive, and the chrome module will no longer be able to preload in
parallel, but not sure if there's much that can be done about that.

Bug: 1158024
Change-Id: Ie81f7b85100707ed1e8273f57553812918c08a23
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2593518Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Commit-Queue: Clark DuVall <cduvall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#837607}
parent 59937ee8
...@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor; ...@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor;
import org.chromium.chrome.browser.vr.OnExitVrRequestListener; import org.chromium.chrome.browser.vr.OnExitVrRequestListener;
import org.chromium.chrome.browser.vr.VrModuleProvider; import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.components.browser_ui.util.GlobalDiscardableReferencePool; import org.chromium.components.browser_ui.util.GlobalDiscardableReferencePool;
import org.chromium.components.module_installer.util.ModuleUtil;
import org.chromium.components.version_info.Channel; import org.chromium.components.version_info.Channel;
import org.chromium.components.version_info.VersionConstants; import org.chromium.components.version_info.VersionConstants;
import org.chromium.url.GURL; import org.chromium.url.GURL;
...@@ -58,6 +59,9 @@ public class ChromeApplication extends SplitCompatApplication { ...@@ -58,6 +59,9 @@ public class ChromeApplication extends SplitCompatApplication {
.start(); .start();
} }
// Initializes the support for dynamic feature modules (browser only).
ModuleUtil.initApplication();
if (VersionConstants.CHANNEL == Channel.CANARY) { if (VersionConstants.CHANNEL == Channel.CANARY) {
GURL.setReportDebugThrowableCallback( GURL.setReportDebugThrowableCallback(
PureJavaExceptionReporter::reportJavaException); PureJavaExceptionReporter::reportJavaException);
......
...@@ -174,9 +174,6 @@ public class SplitCompatApplication extends Application { ...@@ -174,9 +174,6 @@ public class SplitCompatApplication extends Application {
// Disable MemoryPressureMonitor polling when Chrome goes to the background. // Disable MemoryPressureMonitor polling when Chrome goes to the background.
ApplicationStatus.registerApplicationStateListener( ApplicationStatus.registerApplicationStateListener(
SplitCompatApplication::updateMemoryPressurePolling); SplitCompatApplication::updateMemoryPressurePolling);
// Initializes the support for dynamic feature modules (browser only).
ModuleUtil.initApplication();
} }
BuildInfo.setFirebaseAppId(FirebaseConfig.getFirebaseAppId()); BuildInfo.setFirebaseAppId(FirebaseConfig.getFirebaseAppId());
......
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