226 lines
9.6 KiB
Diff
226 lines
9.6 KiB
Diff
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|
Date: Sun, 15 Dec 2019 19:40:37 +0100
|
|
Subject: Use dummy DFM installer
|
|
|
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
|
---
|
|
components/module_installer/android/BUILD.gn | 1 -
|
|
.../engine/SplitCompatEngine.java | 66 +------------------
|
|
.../engine/SplitCompatEngineFacade.java | 25 -------
|
|
.../module_installer/util/ModuleUtil.java | 1 -
|
|
.../util/SplitCompatInitializer.java | 6 --
|
|
5 files changed, 1 insertion(+), 98 deletions(-)
|
|
|
|
diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn
|
|
--- a/components/module_installer/android/BUILD.gn
|
|
+++ b/components/module_installer/android/BUILD.gn
|
|
@@ -21,7 +21,6 @@ android_library("module_installer_java") {
|
|
"java/src/org/chromium/components/module_installer/observer/ActivityObserverFacade.java",
|
|
"java/src/org/chromium/components/module_installer/observer/InstallerObserver.java",
|
|
"java/src/org/chromium/components/module_installer/util/ActivityObserverUtil.java",
|
|
- "java/src/org/chromium/components/module_installer/util/CrashKeyRecorder.java",
|
|
"java/src/org/chromium/components/module_installer/util/ModuleUtil.java",
|
|
"java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java",
|
|
]
|
|
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java
|
|
--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java
|
|
+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java
|
|
@@ -10,10 +10,6 @@ import android.app.Activity;
|
|
|
|
import androidx.annotation.VisibleForTesting;
|
|
|
|
-import com.google.android.play.core.splitinstall.SplitInstallRequest;
|
|
-import com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener;
|
|
-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus;
|
|
-
|
|
import org.chromium.base.ThreadUtils;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
|
|
@@ -28,7 +24,6 @@ import java.util.Set;
|
|
@NullMarked
|
|
class SplitCompatEngine implements InstallEngine {
|
|
private final SplitCompatEngineFacade mFacade;
|
|
- private final SplitInstallStateUpdatedListener mUpdateListener = getStatusUpdateListener();
|
|
private static final Map<String, List<InstallListener>> sSessions = new HashMap<>();
|
|
|
|
public SplitCompatEngine() {
|
|
@@ -46,72 +41,19 @@ class SplitCompatEngine implements InstallEngine {
|
|
|
|
@Override
|
|
public boolean isInstalled(String moduleName) {
|
|
- Set<String> installedModules = mFacade.getSplitManager().getInstalledModules();
|
|
- return installedModules.contains(moduleName);
|
|
+ return false;
|
|
}
|
|
|
|
@Override
|
|
public void installDeferred(String moduleName) {
|
|
- mFacade.getSplitManager().deferredInstall(Collections.singletonList(moduleName));
|
|
}
|
|
|
|
@Override
|
|
public void install(String moduleName, InstallListener listener) {
|
|
ThreadUtils.assertOnUiThread();
|
|
-
|
|
- List<InstallListener> listeners = sSessions.get(moduleName);
|
|
- if (listeners != null) {
|
|
- listeners.add(listener);
|
|
- return;
|
|
- }
|
|
-
|
|
- registerUpdateListener();
|
|
-
|
|
- listeners = new ArrayList<>();
|
|
- listeners.add(listener);
|
|
- sSessions.put(moduleName, listeners);
|
|
-
|
|
- SplitInstallRequest request = mFacade.createSplitInstallRequest(moduleName);
|
|
-
|
|
- mFacade.getSplitManager()
|
|
- .startInstall(request)
|
|
- .addOnFailureListener(
|
|
- ex -> {
|
|
- notifyListeners(moduleName, false);
|
|
- });
|
|
- }
|
|
-
|
|
- private SplitInstallStateUpdatedListener getStatusUpdateListener() {
|
|
- return state -> {
|
|
- assert !state.moduleNames().isEmpty();
|
|
-
|
|
- int status = state.status();
|
|
- List<String> modules = state.moduleNames();
|
|
-
|
|
- if (status == SplitInstallSessionStatus.INSTALLED) {
|
|
- mFacade.updateCrashKeys();
|
|
- }
|
|
-
|
|
- for (String moduleName : modules) {
|
|
- switch (status) {
|
|
- case SplitInstallSessionStatus.INSTALLED:
|
|
- notifyListeners(moduleName, true);
|
|
- break;
|
|
- case SplitInstallSessionStatus.FAILED:
|
|
- notifyListeners(moduleName, false);
|
|
- break;
|
|
- }
|
|
- }
|
|
- };
|
|
}
|
|
|
|
private void notifyListeners(String moduleName, boolean success) {
|
|
- List<InstallListener> listeners = sSessions.remove(moduleName);
|
|
- assumeNonNull(listeners);
|
|
- for (InstallListener listener : listeners) {
|
|
- notifyListener(listener, success);
|
|
- }
|
|
-
|
|
unregisterUpdateListener();
|
|
}
|
|
|
|
@@ -124,15 +66,9 @@ class SplitCompatEngine implements InstallEngine {
|
|
}
|
|
|
|
private void registerUpdateListener() {
|
|
- if (sSessions.size() == 0) {
|
|
- mFacade.getSplitManager().registerListener(mUpdateListener);
|
|
- }
|
|
}
|
|
|
|
private void unregisterUpdateListener() {
|
|
- if (sSessions.size() == 0) {
|
|
- mFacade.getSplitManager().unregisterListener(mUpdateListener);
|
|
- }
|
|
}
|
|
|
|
@VisibleForTesting
|
|
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java
|
|
--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java
|
|
+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java
|
|
@@ -6,14 +6,8 @@ package org.chromium.components.module_installer.engine;
|
|
|
|
import android.app.Activity;
|
|
|
|
-import com.google.android.play.core.splitcompat.SplitCompat;
|
|
-import com.google.android.play.core.splitinstall.SplitInstallManager;
|
|
-import com.google.android.play.core.splitinstall.SplitInstallManagerFactory;
|
|
-import com.google.android.play.core.splitinstall.SplitInstallRequest;
|
|
-
|
|
import org.chromium.base.ContextUtils;
|
|
import org.chromium.build.annotations.NullMarked;
|
|
-import org.chromium.components.module_installer.util.ModuleUtil;
|
|
|
|
/**
|
|
* PlayCore SplitCompatEngine Context. Class used to segregate external dependencies that cannot be
|
|
@@ -21,35 +15,16 @@ import org.chromium.components.module_installer.util.ModuleUtil;
|
|
*/
|
|
@NullMarked
|
|
class SplitCompatEngineFacade {
|
|
- private final SplitInstallManager mSplitManager;
|
|
-
|
|
public SplitCompatEngineFacade() {
|
|
- this(SplitInstallManagerFactory.create(ContextUtils.getApplicationContext()));
|
|
}
|
|
|
|
- public SplitCompatEngineFacade(SplitInstallManager manager) {
|
|
- mSplitManager = manager;
|
|
- }
|
|
-
|
|
- public SplitInstallManager getSplitManager() {
|
|
- return mSplitManager;
|
|
- }
|
|
|
|
public void installActivity(Activity activity) {
|
|
- // Note that SplitCompat (install) needs to be called on the Application Context prior
|
|
- // to calling this method - this is guaranteed by the behavior of SplitCompatEngine.
|
|
- SplitCompat.installActivity(activity);
|
|
}
|
|
|
|
public void notifyObservers() {
|
|
- ModuleUtil.notifyModuleInstalled();
|
|
- }
|
|
-
|
|
- public SplitInstallRequest createSplitInstallRequest(String moduleName) {
|
|
- return SplitInstallRequest.newBuilder().addModule(moduleName).build();
|
|
}
|
|
|
|
public void updateCrashKeys() {
|
|
- ModuleUtil.updateCrashKeys();
|
|
}
|
|
}
|
|
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java
|
|
--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java
|
|
+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java
|
|
@@ -11,7 +11,6 @@ import org.chromium.build.annotations.NullMarked;
|
|
public class ModuleUtil {
|
|
/** Updates the CrashKey report containing modules currently present. */
|
|
public static void updateCrashKeys() {
|
|
- CrashKeyRecorder.updateCrashKeys();
|
|
}
|
|
|
|
/** Initializes the PlayCore SplitCompat framework. */
|
|
diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java
|
|
--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java
|
|
+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java
|
|
@@ -4,8 +4,6 @@
|
|
|
|
package org.chromium.components.module_installer.util;
|
|
|
|
-import com.google.android.play.core.splitcompat.SplitCompat;
|
|
-
|
|
import org.chromium.base.ContextUtils;
|
|
import org.chromium.base.StrictModeContext;
|
|
import org.chromium.base.ThreadUtils;
|
|
@@ -23,10 +21,6 @@ class SplitCompatInitializer {
|
|
return;
|
|
}
|
|
|
|
- // SplitCompat.install may copy modules into Chrome's internal folder or clean them up.
|
|
- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
|
|
- SplitCompat.install(ContextUtils.getApplicationContext());
|
|
- }
|
|
sIsInitialized = true;
|
|
}
|
|
|
|
--
|