#include "chrome/browser/ui/views/external_protocol_dialog.h"
#include <utility>
#include "base/strings/string_util.h"
#include "base/types/optional_util.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/external_protocol/external_protocol_handler.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/shell_integration.h"
#include "chrome/browser/tab_contents/tab_util.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/chrome_typography.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/constrained_window/constrained_window_views.h"
#include "components/prefs/pref_service.h"
#include "components/url_formatter/elide_url.h"
#include "content/public/browser/weak_document_ptr.h"
#include "content/public/browser/web_contents.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/mojom/dialog_button.mojom.h"
#include "ui/base/mojom/ui_base_types.mojom-shared.h"
#include "ui/gfx/text_elider.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/message_box_view.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/widget/widget.h"
WebContents;
namespace {
std::u16string GetMessageTextForOrigin(
const std::optional<url::Origin>& origin) { … }
}
#if !BUILDFLAG(IS_CHROMEOS)
void ExternalProtocolHandler::RunExternalProtocolDialog(
const GURL& url,
WebContents* web_contents,
ui::PageTransition ignored_page_transition,
bool ignored_has_user_gesture,
bool ignored_is_in_fenced_frame_tree,
const std::optional<url::Origin>& initiating_origin,
content::WeakDocumentPtr initiator_document,
const std::u16string& program_name) { … }
#endif
ExternalProtocolDialog::ExternalProtocolDialog(
WebContents* web_contents,
const GURL& url,
const std::u16string& program_name,
const std::optional<url::Origin>& initiating_origin,
content::WeakDocumentPtr initiator_document)
: … { … }
ExternalProtocolDialog::~ExternalProtocolDialog() = default;
bool ExternalProtocolDialog::ShouldShowCloseButton() const { … }
std::u16string ExternalProtocolDialog::GetWindowTitle() const { … }
void ExternalProtocolDialog::OnDialogAccepted() { … }
void ExternalProtocolDialog::SetRememberSelectionCheckboxCheckedForTesting(
bool checked) { … }
BEGIN_METADATA(…)