#include "chrome/browser/ui/webid/identity_dialog_controller.h"
#include <memory>
#include "build/build_config.h"
#if !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/ui/tabs/public/tab_features.h"
#include "chrome/browser/ui/tabs/public/tab_interface.h"
#include "chrome/browser/ui/views/webid/fedcm_account_selection_view_controller.h"
#include "chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.h"
#endif
#include "chrome/browser/ui/webid/account_selection_view.h"
#include "chrome/browser/webid/identity_provider_permission_request.h"
#include "components/permissions/permission_request_manager.h"
#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-shared.h"
IdentityDialogController::IdentityDialogController(
content::WebContents* rp_web_contents)
: … { … }
IdentityDialogController::~IdentityDialogController() { … }
int IdentityDialogController::GetBrandIconMinimumSize(
blink::mojom::RpMode rp_mode) { … }
int IdentityDialogController::GetBrandIconIdealSize(
blink::mojom::RpMode rp_mode) { … }
bool IdentityDialogController::ShowAccountsDialog(
const std::string& rp_for_display,
const std::vector<content::IdentityProviderData>& identity_provider_data,
content::IdentityRequestAccount::SignInMode sign_in_mode,
blink::mojom::RpMode rp_mode,
const std::optional<content::IdentityProviderData>& new_account_idp,
AccountSelectionCallback on_selected,
LoginToIdPCallback on_add_account,
DismissCallback dismiss_callback,
AccountsDisplayedCallback accounts_displayed_callback) { … }
bool IdentityDialogController::ShowFailureDialog(
const std::string& rp_for_display,
const std::string& idp_for_display,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
const content::IdentityProviderMetadata& idp_metadata,
DismissCallback dismiss_callback,
LoginToIdPCallback login_callback) { … }
bool IdentityDialogController::ShowErrorDialog(
const std::string& rp_for_display,
const std::string& idp_for_display,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
const content::IdentityProviderMetadata& idp_metadata,
const std::optional<TokenError>& error,
DismissCallback dismiss_callback,
MoreDetailsCallback more_details_callback) { … }
bool IdentityDialogController::ShowLoadingDialog(
const std::string& rp_for_display,
const std::string& idp_for_display,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
DismissCallback dismiss_callback) { … }
void IdentityDialogController::OnLoginToIdP(const GURL& idp_config_url,
const GURL& idp_login_url) { … }
void IdentityDialogController::OnMoreDetails() { … }
void IdentityDialogController::OnAccountsDisplayed() { … }
void IdentityDialogController::OnAccountSelected(const GURL& idp_config_url,
const Account& account) { … }
void IdentityDialogController::OnDismiss(DismissReason dismiss_reason) { … }
std::string IdentityDialogController::GetTitle() const { … }
std::optional<std::string> IdentityDialogController::GetSubtitle() const { … }
gfx::NativeView IdentityDialogController::GetNativeView() { … }
content::WebContents* IdentityDialogController::GetWebContents() { … }
void IdentityDialogController::ShowUrl(LinkType type, const GURL& url) { … }
content::WebContents* IdentityDialogController::ShowModalDialog(
const GURL& url,
blink::mojom::RpMode rp_mode,
DismissCallback dismiss_callback) { … }
void IdentityDialogController::CloseModalDialog() { … }
content::WebContents* IdentityDialogController::GetRpWebContents() { … }
void IdentityDialogController::RequestIdPRegistrationPermision(
const url::Origin& origin,
base::OnceCallback<void(bool accepted)> callback) { … }
void IdentityDialogController::SetAccountSelectionViewForTesting(
std::unique_ptr<AccountSelectionView> account_view) { … }
bool IdentityDialogController::TrySetAccountView() { … }