1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
content / public / browser / identity_request_dialog_controller.cc [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 "content/public/browser/identity_request_dialog_controller.h"
#include <memory>
#include <optional>
#include "content/public/browser/web_contents.h"
namespace content {
ClientMetadata::ClientMetadata(const GURL& terms_of_service_url,
const GURL& privacy_policy_url,
const GURL& brand_icon_url)
: terms_of_service_url{terms_of_service_url},
privacy_policy_url(privacy_policy_url),
brand_icon_url(brand_icon_url) {}
ClientMetadata::ClientMetadata(const ClientMetadata& other) = default;
ClientMetadata::~ClientMetadata() = default;
IdentityProviderMetadata::IdentityProviderMetadata() = default;
IdentityProviderMetadata::~IdentityProviderMetadata() = default;
IdentityProviderMetadata::IdentityProviderMetadata(
const IdentityProviderMetadata& other) = default;
IdentityProviderData::IdentityProviderData(
const std::string& idp_for_display,
const IdentityProviderMetadata& idp_metadata,
const ClientMetadata& client_metadata,
blink::mojom::RpContext rp_context,
const std::vector<IdentityRequestDialogDisclosureField>& disclosure_fields,
bool has_login_status_mismatch)
: idp_for_display{idp_for_display},
idp_metadata{idp_metadata},
client_metadata{client_metadata},
rp_context(rp_context),
disclosure_fields(disclosure_fields),
has_login_status_mismatch(has_login_status_mismatch) {}
IdentityProviderData::~IdentityProviderData() = default;
int IdentityRequestDialogController::GetBrandIconIdealSize(
blink::mojom::RpMode rp_mode) {
return 0;
}
int IdentityRequestDialogController::GetBrandIconMinimumSize(
blink::mojom::RpMode rp_mode) {
return 0;
}
void IdentityRequestDialogController::SetIsInterceptionEnabled(bool enabled) {
is_interception_enabled_ = enabled;
}
bool IdentityRequestDialogController::ShowAccountsDialog(
const std::string& rp_for_display,
const std::vector<scoped_refptr<content::IdentityProviderData>>& idp_list,
const std::vector<scoped_refptr<content::IdentityRequestAccount>>& accounts,
content::IdentityRequestAccount::SignInMode sign_in_mode,
blink::mojom::RpMode rp_mode,
const std::vector<scoped_refptr<content::IdentityRequestAccount>>&
new_accounts,
AccountSelectionCallback on_selected,
LoginToIdPCallback on_add_account,
DismissCallback dismiss_callback,
AccountsDisplayedCallback accounts_displayed_callback) {
if (!is_interception_enabled_) {
std::move(dismiss_callback).Run(DismissReason::kOther);
return false;
}
return true;
}
bool IdentityRequestDialogController::ShowFailureDialog(
const std::string& rp_for_display,
const std::string& idp_for_display,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
const IdentityProviderMetadata& idp_metadata,
DismissCallback dismiss_callback,
LoginToIdPCallback login_callback) {
if (!is_interception_enabled_) {
std::move(dismiss_callback).Run(DismissReason::kOther);
return false;
}
return true;
}
bool IdentityRequestDialogController::ShowErrorDialog(
const std::string& rp_for_display,
const std::string& idp_for_display,
blink::mojom::RpContext rp_context,
blink::mojom::RpMode rp_mode,
const IdentityProviderMetadata& idp_metadata,
const std::optional<IdentityCredentialTokenError>& error,
DismissCallback dismiss_callback,
MoreDetailsCallback more_details_callback) {
if (!is_interception_enabled_) {
std::move(dismiss_callback).Run(DismissReason::kOther);
return false;
}
return true;
}
bool IdentityRequestDialogController::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) {
if (!is_interception_enabled_) {
std::move(dismiss_callback).Run(DismissReason::kOther);
return false;
}
return true;
}
std::string IdentityRequestDialogController::GetTitle() const {
return std::string();
}
std::optional<std::string> IdentityRequestDialogController::GetSubtitle()
const {
return std::nullopt;
}
void IdentityRequestDialogController::ShowUrl(LinkType type, const GURL& url) {}
WebContents* IdentityRequestDialogController::ShowModalDialog(
const GURL& url,
blink::mojom::RpMode rp_mode,
DismissCallback dismiss_callback) {
if (!is_interception_enabled_) {
std::move(dismiss_callback).Run(DismissReason::kOther);
}
return nullptr;
}
void IdentityRequestDialogController::CloseModalDialog() {}
WebContents* IdentityRequestDialogController::GetRpWebContents() {
return nullptr;
}
void IdentityRequestDialogController::RequestIdPRegistrationPermision(
const url::Origin& origin,
base::OnceCallback<void(bool accepted)> callback) {
std::move(callback).Run(false);
}
} // namespace content