Null check before getInstallerPackageName
The crash report shows the IllegalArgumentException is because of
package name is null.
Add a null check before getting the installer package name.
(cherry picked from commit edce258f08cadaffa74cc97dc1334e77f3d06e86)
Bug: 1136018
Change-Id: I90f38bfcf67cf5de41996b3bf463633e2db2bca1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2457369
Commit-Queue: Ella Ge <[email protected]>
Reviewed-by: Peter Conn <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#815659}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2470468
Reviewed-by: Ella Ge <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#373}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/QualityEnforcer.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/QualityEnforcer.java
index 22d6ea4..dc5e762 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/QualityEnforcer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/QualityEnforcer.java
@@ -157,10 +157,7 @@
// Do not crash on assetlink failures if the client app does not have installer package
// name.
- if (type == ViolationType.DIGITAL_ASSETLINKS
- && ContextUtils.getApplicationContext().getPackageManager().getInstallerPackageName(
- mClientPackageNameProvider.get())
- == null) {
+ if (type == ViolationType.DIGITAL_ASSETLINKS && !isDebugInstall()) {
return;
}
@@ -177,7 +174,7 @@
PackageManager pm = context.getPackageManager();
// Only shows the toast when the TWA client app does not have installer info, i.e. install
// via adb instead of a store.
- if (pm.getInstallerPackageName(mClientPackageNameProvider.get()) == null) {
+ if (!isDebugInstall()) {
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
}
@@ -229,4 +226,13 @@
return "";
}
}
+
+ private boolean isDebugInstall() {
+ // TODO(crbug.com/1136153) Need to figure out why the client package name can be null.
+ if (mClientPackageNameProvider.get() == null) return false;
+
+ return ContextUtils.getApplicationContext().getPackageManager().getInstallerPackageName(
+ mClientPackageNameProvider.get())
+ != null;
+ }
}