#include "chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h"
#include "base/debug/dump_without_crashing.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/accessibility/accessibility_state_utils.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/lens/lens_overlay_controller.h"
#include "chrome/browser/ui/tabs/tab_strip_model_delegate.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/webid/account_selection_modal_view.h"
#include "chrome/browser/ui/views/webid/account_selection_view_base.h"
#include "chrome/browser/ui/views/webid/fedcm_modal_dialog_view.h"
#include "chrome/browser/ui/webid/account_selection_view.h"
#include "chrome/grit/generated_resources.h"
#include "components/constrained_window/constrained_window_views.h"
#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-shared.h"
#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/views/bubble/bubble_dialog_delegate_view.h"
#include "ui/views/widget/widget.h"
DismissReason;
int AccountSelectionView::GetBrandIconMinimumSize(
blink::mojom::RpMode rp_mode) { … }
int AccountSelectionView::GetBrandIconIdealSize(blink::mojom::RpMode rp_mode) { … }
FedCmAccountSelectionView::FedCmAccountSelectionView(
AccountSelectionView::Delegate* delegate)
: … { … }
FedCmAccountSelectionView::~FedCmAccountSelectionView() { … }
void FedCmAccountSelectionView::ShowDialogWidget() { … }
bool FedCmAccountSelectionView::Show(
const std::string& rp_for_display,
const std::vector<content::IdentityProviderData>& idp_data_list,
Account::SignInMode sign_in_mode,
blink::mojom::RpMode rp_mode,
const std::optional<content::IdentityProviderData>& new_accounts_idp) { … }
void FedCmAccountSelectionView::OnAccountsDisplayed() { … }
bool FedCmAccountSelectionView::ShowFailureDialog(
const std::string& rp_for_display,
const std::string& idp_etld_plus_one,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
const content::IdentityProviderMetadata& idp_metadata) { … }
bool FedCmAccountSelectionView::ShowErrorDialog(
const std::string& rp_for_display,
const std::string& idp_etld_plus_one,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
const content::IdentityProviderMetadata& idp_metadata,
const std::optional<TokenError>& error) { … }
bool FedCmAccountSelectionView::ShowLoadingDialog(
const std::string& rp_for_display,
const std::string& idp_etld_plus_one,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode) { … }
void FedCmAccountSelectionView::ShowUrl(LinkType link_type, const GURL& url) { … }
std::string FedCmAccountSelectionView::GetTitle() const { … }
std::optional<std::string> FedCmAccountSelectionView::GetSubtitle() const { … }
void FedCmAccountSelectionView::OnTabForegrounded() { … }
void FedCmAccountSelectionView::OnTabBackgrounded() { … }
void FedCmAccountSelectionView::PrimaryPageChanged(content::Page& page) { … }
void FedCmAccountSelectionView::SetInputEventActivationProtectorForTesting(
std::unique_ptr<views::InputEventActivationProtector> input_protector) { … }
void FedCmAccountSelectionView::SetIdpSigninPopupWindowForTesting(
std::unique_ptr<FedCmModalDialogView> idp_signin_popup_window) { … }
AccountSelectionViewBase* FedCmAccountSelectionView::CreateAccountSelectionView(
const std::u16string& rp_for_display,
const std::optional<std::u16string>& idp_title,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
bool has_modal_support) { … }
void FedCmAccountSelectionView::OnWidgetDestroying(views::Widget* widget) { … }
void FedCmAccountSelectionView::OnAccountSelected(
const Account& account,
const content::IdentityProviderData& idp_display_data,
const ui::Event& event) { … }
void FedCmAccountSelectionView::OnLinkClicked(LinkType link_type,
const GURL& url,
const ui::Event& event) { … }
void FedCmAccountSelectionView::OnBackButtonClicked() { … }
void FedCmAccountSelectionView::OnCloseButtonClicked(const ui::Event& event) { … }
void FedCmAccountSelectionView::OnLoginToIdP(const GURL& idp_config_url,
const GURL& idp_login_url,
const ui::Event& event) { … }
void FedCmAccountSelectionView::OnGotIt(const ui::Event& event) { … }
void FedCmAccountSelectionView::OnMoreDetails(const ui::Event& event) { … }
content::WebContents* FedCmAccountSelectionView::ShowModalDialog(
const GURL& url,
blink::mojom::RpMode rp_mode) { … }
void FedCmAccountSelectionView::CloseModalDialog() { … }
content::WebContents* FedCmAccountSelectionView::GetRpWebContents() { … }
void FedCmAccountSelectionView::OnChooseAnAccountClicked() { … }
void FedCmAccountSelectionView::OnPopupWindowDestroyed() { … }
bool FedCmAccountSelectionView::ShowVerifyingSheet(
const Account& account,
const content::IdentityProviderData& idp_display_data) { … }
FedCmAccountSelectionView::SheetType FedCmAccountSelectionView::GetSheetType() { … }
void FedCmAccountSelectionView::Close() { … }
void FedCmAccountSelectionView::OnDismiss(DismissReason dismiss_reason) { … }
base::WeakPtr<views::Widget> FedCmAccountSelectionView::GetDialogWidget() { … }
FedCmAccountSelectionView::DialogType
FedCmAccountSelectionView::GetDialogType() { … }
void FedCmAccountSelectionView::MaybeResetAccountSelectionView() { … }
bool FedCmAccountSelectionView::IsIdpSigninPopupOpen() { … }
void FedCmAccountSelectionView::PrimaryMainFrameWasResized(bool width_changed) { … }
bool FedCmAccountSelectionView::IsDialogWidgetReady() { … }
bool FedCmAccountSelectionView::ShouldShowDialogWidget() { … }
void FedCmAccountSelectionView::UpdateAndShowDialogWidget() { … }
void FedCmAccountSelectionView::HideDialogWidget() { … }
void FedCmAccountSelectionView::OnLensOverlayDidShow() { … }
void FedCmAccountSelectionView::OnLensOverlayDidClose() { … }
void FedCmAccountSelectionView::OnLensOverlayControllerDestroyed() { … }
void FedCmAccountSelectionView::SetIsLensOverlayShowingForTesting(bool value) { … }
base::WeakPtr<FedCmAccountSelectionView>
FedCmAccountSelectionView::GetWeakPtr() { … }
void FedCmAccountSelectionView::ShowMultiAccountPicker(
const std::vector<content::IdentityProviderData>& idp_data_list,
bool show_back_button,
bool is_choose_an_account) { … }