iwa: Refactor Chooser Controller Title Util with UrlIdentity API

Removed components/permissions/chooser_title_util* files.
Removed permissions::CreateChooserTitle().

Renaming CreateExtensionAwareChooserTitle() to CreateChooserTitle().

CreateChooserTitle() now only accepts 1 string_id. Extensions and
IWAs will use the same IDS* string

Updated CreateChooserTitle() logic to use UrlIdentity API.

Updated CreateChooserTitleTest with normal URLs and Isolated Web App
URLS test cases.

Updated all the call-sites to use new API.

Removed IDS_*_CHOOSER_PROMPT_EXTENSION_NAME.
- IDS_HID_CHOOSER_PROMPT_EXTENSION_NAME
- IDS_SERIAL_PORT_CHOOSER_PROMPT_EXTENSION_NAME
- IDS_USB_DEVICE_CHOOSER_PROMPT_EXTENSION_NAME
- IDS_BLUETOOTH_DEVICE_CHOOSER_PROMPT_EXTENSION_NAME

Renamed IDS_*_CHOOSER_PROMPT_ORIGIN to IDS_*_CHOOSER_PROMPT.
- IDS_BLUETOOTH_SCANNING_PROMPT_ORIGIN
- IDS_BLUETOOTH_DEVICE_CHOOSER_PROMPT_ORIGIN
- IDS_HID_CHOOSER_PROMPT_ORIGIN
- IDS_SERIAL_PORT_CHOOSER_PROMPT_ORIGIN
- IDS_USB_DEVICE_CHOOSER_PROMPT_ORIGIN

Change-Id: Ifbdacbd30085af9c51c7400fa0c60a938da39ac5
Bug: 1311065
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4346716
Reviewed-by: Florian Jacky <[email protected]>
Reviewed-by: Reilly Grant <[email protected]>
Commit-Queue: Zelin Liu <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1122715}
diff --git a/chrome/browser/chooser_controller/title_util.cc b/chrome/browser/chooser_controller/title_util.cc
index 4c0a7bc..974b6db0 100644
--- a/chrome/browser/chooser_controller/title_util.cc
+++ b/chrome/browser/chooser_controller/title_util.cc
@@ -4,58 +4,40 @@
 
 #include "chrome/browser/chooser_controller/title_util.h"
 
+#include <string>
+
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/profiles/profile.h"
-#include "components/permissions/chooser_title_util.h"
+#include "chrome/browser/ui/url_identity.h"
 #include "content/public/browser/render_frame_host.h"
-#include "extensions/buildflags/buildflags.h"
 #include "ui/base/l10n/l10n_util.h"
-#include "url/origin.h"
+#include "url/gurl.h"
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/web_applications/app_browser_controller.h"
-#include "extensions/browser/extension_registry.h"
-#include "extensions/common/constants.h"
-#endif
+namespace {
 
-std::u16string CreateExtensionAwareChooserTitle(
-    content::RenderFrameHost* render_frame_host,
-    int title_string_id_origin,
-    int title_string_id_extension) {
-  if (!render_frame_host)
+constexpr UrlIdentity::TypeSet kUrlIdentityAllowedTypes = {
+    UrlIdentity::Type::kDefault, UrlIdentity::Type::kFile,
+    UrlIdentity::Type::kIsolatedWebApp, UrlIdentity::Type::kChromeExtension};
+constexpr UrlIdentity::FormatOptions kUrlIdentityOptions{
+    .default_options = {
+        UrlIdentity::DefaultFormatOptions::kOmitCryptographicScheme}};
+
+}  // namespace
+
+std::u16string CreateChooserTitle(content::RenderFrameHost* render_frame_host,
+                                  int title_string_id) {
+  if (!render_frame_host) {
     return u"";
+  }
   // Ensure the permission request is attributed to the main frame.
   render_frame_host = render_frame_host->GetMainFrame();
 
-#if BUILDFLAG(ENABLE_EXTENSIONS)
-  url::Origin origin = render_frame_host->GetLastCommittedOrigin();
+  const GURL& url = render_frame_host->GetLastCommittedURL();
   Profile* profile =
       Profile::FromBrowserContext(render_frame_host->GetBrowserContext());
 
-  if (origin.scheme() == extensions::kExtensionScheme) {
-    if (auto* extension_registry =
-            extensions::ExtensionRegistry::Get(profile)) {
-      if (const extensions::Extension* extension =
-              extension_registry->enabled_extensions().GetByID(origin.host())) {
-        return l10n_util::GetStringFUTF16(title_string_id_extension,
-                                          base::UTF8ToUTF16(extension->name()));
-      }
-    }
-  }
+  UrlIdentity identity = UrlIdentity::CreateFromUrl(
+      profile, url, kUrlIdentityAllowedTypes, kUrlIdentityOptions);
 
-  // Isolated Web Apps should show the app's name instead of the origin.
-  Browser* browser = chrome::FindBrowserWithWebContents(
-      content::WebContents::FromRenderFrameHost(render_frame_host));
-  if (browser && browser->app_controller() &&
-      browser->app_controller()->IsIsolatedWebApp()) {
-    return l10n_util::GetStringFUTF16(
-        title_string_id_extension,
-        browser->app_controller()->GetAppShortName());
-  }
-#endif
-
-  return permissions::CreateChooserTitle(render_frame_host,
-                                         title_string_id_origin);
+  return l10n_util::GetStringFUTF16(title_string_id, identity.name);
 }