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;
+    }
 }