[dPWA] Universal install can occur in scope of DIY apps.

This change:
- Consolidates two method calls to determine if an existing install
  should prevent the app banner into just one.
- Implements the DIY app detection in that respective method, allowing
  installs to occur nested inside of a DIY app installation.
- Adds the "correct"-style AppBannerManager tests that don't fake it at
  all, and instead just use the installable result observer.

Bug: 329093244, 326611791, 329145718
Change-Id: Iae95533a084bdba7c408f3660c61e5ecbbaa2fd4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5362600
Reviewed-by: Dibyajyoti Pal <[email protected]>
Auto-Submit: Daniel Murphy <[email protected]>
Commit-Queue: Dibyajyoti Pal <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1271762}
diff --git a/chrome/browser/webapps/webapps_client_android.h b/chrome/browser/webapps/webapps_client_android.h
index 1a43935..a2430e0 100644
--- a/chrome/browser/webapps/webapps_client_android.h
+++ b/chrome/browser/webapps/webapps_client_android.h
@@ -31,7 +31,7 @@
       content::WebContents* web_contents) override;
 
   // Non-locally installed apps do not exist on Android.
-  bool IsWebAppConsideredFullyInstalled(
+  bool DoesNewWebAppConflictWithExistingInstallation(
       content::BrowserContext* browsing_context,
       const GURL& start_url,
       const ManifestId& manifest_id) const override;