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