blob: 07984caeb416727b9477cec24b00f56c4b6f9158 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chooser_controller/title_util.h"
#include <string>
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/url_identity.h"
#include "content/public/browser/render_frame_host.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"
namespace {
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();
const GURL& url = render_frame_host->GetLastCommittedOrigin().GetURL();
Profile* profile =
Profile::FromBrowserContext(render_frame_host->GetBrowserContext());
UrlIdentity identity = UrlIdentity::CreateFromUrl(
profile, url, kUrlIdentityAllowedTypes, kUrlIdentityOptions);
return l10n_util::GetStringFUTF16(title_string_id, identity.name);
}