Skip to content

Commit 4a2b5dc

Browse files
committed
[Cardano] Add Cardano site permission
Resolves brave/brave-browser#46124
1 parent d0b4319 commit 4a2b5dc

26 files changed

+90
-14
lines changed

browser/permissions/permission_origin_lifetime_monitor_impl.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ PermissionOriginLifetimeMonitorImpl::SubscribeToPermissionOriginDestruction(
4343

4444
url::Origin sub_request_origin;
4545
bool is_sub_request_origin = false;
46-
for (auto type : {RequestType::kBraveEthereum, RequestType::kBraveSolana}) {
46+
for (auto type : {RequestType::kBraveEthereum, RequestType::kBraveSolana, RequestType::kBraveCardano}) {
4747
if (brave_wallet::ParseRequestingOriginFromSubRequest(
4848
type, url::Origin::Create(requesting_origin), &sub_request_origin,
4949
nullptr)) {

chromium_src/android_webview/browser/aw_permission_manager.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
case PermissionType::BRAVE_SPEEDREADER: \
2121
case PermissionType::BRAVE_ETHEREUM: \
2222
case PermissionType::BRAVE_SOLANA: \
23+
case PermissionType::BRAVE_CARDANO: \
2324
case PermissionType::BRAVE_GOOGLE_SIGN_IN: \
2425
case PermissionType::BRAVE_LOCALHOST_ACCESS: \
2526
case PermissionType::BRAVE_OPEN_AI_CHAT: \

chromium_src/chrome/browser/permissions/chrome_permissions_client.cc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ bool ChromePermissionsClient::BraveCanBypassEmbeddingOriginCheck(
3838
// SolanaProviderRendererTest.Iframe3P and
3939
// JSEthereumProviderBrowserTest.Iframe3P
4040
if (type == ContentSettingsType::BRAVE_ETHEREUM ||
41-
type == ContentSettingsType::BRAVE_SOLANA) {
41+
type == ContentSettingsType::BRAVE_SOLANA ||
42+
type == ContentSettingsType::BRAVE_CARDANO) {
4243
return true;
4344
}
4445

@@ -58,10 +59,14 @@ ChromePermissionsClient::MaybeCreateMessageUI(
5859
brave_wallet::mojom::CoinType::ETH;
5960
permissions::RequestType request_type = requests[0]->request_type();
6061
if (request_type == permissions::RequestType::kBraveEthereum ||
61-
request_type == permissions::RequestType::kBraveSolana) {
62+
request_type == permissions::RequestType::kBraveSolana ||
63+
request_type == permissions::RequestType::kBraveCardano) {
6264
if (request_type == permissions::RequestType::kBraveSolana) {
6365
coin_type = brave_wallet::mojom::CoinType::SOL;
6466
}
67+
if (request_type == permissions::RequestType::kBraveCardano) {
68+
coin_type = brave_wallet::mojom::CoinType::ADA;
69+
}
6570
auto delegate = std::make_unique<BraveWalletPermissionPrompt::Delegate>(
6671
std::move(prompt));
6772
return std::make_unique<BraveWalletPermissionPrompt>(

chromium_src/chrome/browser/permissions/permission_manager_factory.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ PermissionManagerFactory::BuildServiceInstanceForBrowserContext(
3838
permission_contexts[ContentSettingsType::BRAVE_SOLANA] =
3939
std::make_unique<permissions::BraveWalletPermissionContext>(
4040
profile, ContentSettingsType::BRAVE_SOLANA);
41+
permission_contexts[ContentSettingsType::BRAVE_CARDANO] =
42+
std::make_unique<permissions::BraveWalletPermissionContext>(
43+
profile, ContentSettingsType::BRAVE_CARDANO);
4144
permission_contexts[ContentSettingsType::BRAVE_GOOGLE_SIGN_IN] =
4245
std::make_unique<permissions::BraveGoogleSignInPermissionContext>(
4346
profile);

chromium_src/chrome/browser/ui/views/permissions/permission_prompt_factory.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ std::unique_ptr<permissions::PermissionPrompt> CreatePermissionPrompt(
2828
if (delegate->Requests()[0]->request_type() ==
2929
permissions::RequestType::kBraveEthereum ||
3030
delegate->Requests()[0]->request_type() ==
31-
permissions::RequestType::kBraveSolana) {
31+
permissions::RequestType::kBraveSolana ||
32+
delegate->Requests()[0]->request_type() ==
33+
permissions::RequestType::kBraveCardano) {
3234
return std::make_unique<BraveWalletPermissionPromptImpl>(
3335
browser, web_contents, *delegate);
3436
}

chromium_src/chrome/browser/ui/webui/settings/site_settings_helper.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
{ContentSettingsType::BRAVE_SPEEDREADER, nullptr}, \
3030
{ContentSettingsType::BRAVE_ETHEREUM, "ethereum"}, \
3131
{ContentSettingsType::BRAVE_SOLANA, "solana"}, \
32+
{ContentSettingsType::BRAVE_CARDANO, "cardano"}, \
3233
{ContentSettingsType::BRAVE_GOOGLE_SIGN_IN, "googleSignIn"}, \
3334
{ContentSettingsType::BRAVE_HTTPS_UPGRADE, nullptr}, \
3435
{ContentSettingsType::BRAVE_REMEMBER_1P_STORAGE, nullptr}, \
@@ -122,6 +123,9 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
122123
if (type == ContentSettingsType::BRAVE_SOLANA) {
123124
return true;
124125
}
126+
if (type == ContentSettingsType::BRAVE_CARDANO) {
127+
return true;
128+
}
125129
if (type == ContentSettingsType::BRAVE_SHIELDS) {
126130
return true;
127131
}
@@ -135,6 +139,7 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
135139
ContentSettingsType::AUTOPLAY,
136140
ContentSettingsType::BRAVE_ETHEREUM,
137141
ContentSettingsType::BRAVE_SOLANA,
142+
// TODO(cypt4): Enable ContentSettingsType::BRAVE_CARDANO,
138143
ContentSettingsType::BRAVE_GOOGLE_SIGN_IN,
139144
ContentSettingsType::BRAVE_LOCALHOST_ACCESS,
140145
ContentSettingsType::BRAVE_OPEN_AI_CHAT,

chromium_src/components/content_settings/core/browser/content_settings_registry.cc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,18 @@ void ContentSettingsRegistry::BraveInit() {
187187
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
188188
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
189189

190+
// Register cardano default value as Ask.
191+
Register(ContentSettingsType::BRAVE_CARDANO, "brave_cardano",
192+
CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
193+
/*allowlisted_schemes=*/{},
194+
/*valid_settings=*/
195+
{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK},
196+
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
197+
WebsiteSettingsRegistry::DESKTOP |
198+
WebsiteSettingsRegistry::PLATFORM_ANDROID,
199+
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
200+
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
201+
190202
// Register google sign in social media permission default value as Ask.
191203
// This is INHERIT_IN_INCOGNITO because it sets cookie rules, and cookies
192204
// are INHERIT_IN_INCOGNITO.

chromium_src/components/content_settings/core/browser/content_settings_uma_util.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ static_assert(static_cast<int>(ContentSettingsType::kMaxValue) <
6565
{ContentSettingsType::BRAVE_WEBCOMPAT_WEBGL2, brave_value(66)}, \
6666
{ContentSettingsType::BRAVE_WEBCOMPAT_WEB_SOCKETS_POOL, brave_value(67)}, \
6767
{ContentSettingsType::BRAVE_WEBCOMPAT_ALL, brave_value(68)}, \
68-
{ContentSettingsType::BRAVE_SHIELDS_METADATA, brave_value(69)},
68+
{ContentSettingsType::BRAVE_SHIELDS_METADATA, brave_value(69)}, \
69+
{ContentSettingsType::BRAVE_CARDANO, brave_value(70)}, \
6970
// clang-format on
7071

7172
#define kDefaultProvider \

chromium_src/components/content_settings/core/common/content_settings_types.mojom

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ enum ContentSettingsType {
2020
BRAVE_SPEEDREADER,
2121
BRAVE_ETHEREUM,
2222
BRAVE_SOLANA,
23+
BRAVE_CARDANO,
2324
BRAVE_GOOGLE_SIGN_IN,
2425
BRAVE_HTTPS_UPGRADE,
2526
BRAVE_REMEMBER_1P_STORAGE,

chromium_src/components/permissions/permission_context_base.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ namespace {
2020

2121
bool IsGroupedPermissionType(ContentSettingsType type) {
2222
return type == ContentSettingsType::BRAVE_ETHEREUM ||
23-
type == ContentSettingsType::BRAVE_SOLANA;
23+
type == ContentSettingsType::BRAVE_SOLANA ||
24+
type == ContentSettingsType::BRAVE_CARDANO;
2425
}
2526

2627
} // namespace

chromium_src/components/permissions/permission_request.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@
2424
#define BRAVE_ENUM_ITEMS_FOR_SWITCH \
2525
case RequestType::kBraveEthereum: \
2626
case RequestType::kBraveSolana: \
27+
case RequestType::kBraveCardano: \
2728
case RequestType::kWidevine: \
2829
NOTREACHED();
2930
#else
3031
#define BRAVE_ENUM_ITEMS_FOR_SWITCH \
3132
case RequestType::kBraveEthereum: \
3233
case RequestType::kBraveSolana: \
34+
case RequestType::kBraveCardano: \
3335
case RequestType::kWidevine: \
3436
NOTREACHED();
3537
#endif

chromium_src/components/permissions/permission_request_data.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ std::optional<RequestType> ContentSettingsTypeToRequestTypeIfExists_BraveImpl(
1818
return RequestType::kBraveEthereum;
1919
case ContentSettingsType::BRAVE_SOLANA:
2020
return RequestType::kBraveSolana;
21+
case ContentSettingsType::BRAVE_CARDANO:
22+
return RequestType::kBraveCardano;
2123
case ContentSettingsType::BRAVE_GOOGLE_SIGN_IN:
2224
return RequestType::kBraveGoogleSignInPermission;
2325
case ContentSettingsType::BRAVE_LOCALHOST_ACCESS:

chromium_src/components/permissions/permission_request_manager.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ bool PermissionRequestManager::ShouldGroupRequests(PermissionRequest* a,
2323
url::Origin origin_a;
2424
url::Origin origin_b;
2525
if (a->request_type() == RequestType::kBraveEthereum ||
26-
a->request_type() == RequestType::kBraveSolana) {
26+
a->request_type() == RequestType::kBraveSolana ||
27+
a->request_type() == RequestType::kBraveCardano) {
2728
if (a->request_type() == b->request_type() &&
2829
brave_wallet::ParseRequestingOriginFromSubRequest(
2930
a->request_type(), url::Origin::Create(a->requesting_origin()),

chromium_src/components/permissions/permission_util.cc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
case RequestType::kWidevine: \
1616
case RequestType::kBraveEthereum: \
1717
case RequestType::kBraveSolana: \
18+
case RequestType::kBraveCardano: \
1819
case RequestType::kBraveGoogleSignInPermission: \
1920
case RequestType::kBraveLocalhostAccessPermission: \
2021
case RequestType::kBraveOpenAIChat: \
@@ -52,6 +53,8 @@
5253
return ContentSettingsType::BRAVE_ETHEREUM; \
5354
case PermissionType::BRAVE_SOLANA: \
5455
return ContentSettingsType::BRAVE_SOLANA; \
56+
case PermissionType::BRAVE_CARDANO: \
57+
return ContentSettingsType::BRAVE_CARDANO; \
5558
case PermissionType::BRAVE_GOOGLE_SIGN_IN: \
5659
return ContentSettingsType::BRAVE_GOOGLE_SIGN_IN; \
5760
case PermissionType::BRAVE_LOCALHOST_ACCESS: \
@@ -75,6 +78,8 @@ std::string PermissionUtil::GetPermissionString(
7578
return "BraveEthereum";
7679
case ContentSettingsType::BRAVE_SOLANA:
7780
return "BraveSolana";
81+
case ContentSettingsType::BRAVE_CARDANO:
82+
return "BraveCardano";
7883
case ContentSettingsType::BRAVE_GOOGLE_SIGN_IN:
7984
return "BraveGoogleSignInPermission";
8085
case ContentSettingsType::BRAVE_LOCALHOST_ACCESS:
@@ -115,6 +120,7 @@ bool PermissionUtil::IsPermission(ContentSettingsType type) {
115120
switch (type) {
116121
case ContentSettingsType::BRAVE_ETHEREUM:
117122
case ContentSettingsType::BRAVE_SOLANA:
123+
case ContentSettingsType::BRAVE_CARDANO:
118124
case ContentSettingsType::BRAVE_GOOGLE_SIGN_IN:
119125
case ContentSettingsType::BRAVE_LOCALHOST_ACCESS:
120126
case ContentSettingsType::BRAVE_OPEN_AI_CHAT:
@@ -149,6 +155,8 @@ PermissionType PermissionUtil::ContentSettingsTypeToPermissionType(
149155
return PermissionType::BRAVE_ETHEREUM;
150156
case ContentSettingsType::BRAVE_SOLANA:
151157
return PermissionType::BRAVE_SOLANA;
158+
case ContentSettingsType::BRAVE_CARDANO:
159+
return PermissionType::BRAVE_CARDANO;
152160
case ContentSettingsType::BRAVE_GOOGLE_SIGN_IN:
153161
return PermissionType::BRAVE_GOOGLE_SIGN_IN;
154162
case ContentSettingsType::BRAVE_LOCALHOST_ACCESS:
@@ -166,7 +174,8 @@ GURL PermissionUtil::GetCanonicalOrigin(ContentSettingsType permission,
166174
const GURL& embedding_origin) {
167175
// Use requesting_origin which will have ethereum or solana address info.
168176
if (permission == ContentSettingsType::BRAVE_ETHEREUM ||
169-
permission == ContentSettingsType::BRAVE_SOLANA) {
177+
permission == ContentSettingsType::BRAVE_SOLANA ||
178+
permission == ContentSettingsType::BRAVE_CARDANO) {
170179
return requesting_origin;
171180
}
172181

chromium_src/components/permissions/request_type.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ constexpr auto kAndroidStorageAccess = IDR_ANDROID_STORAGE_ACCESS;
3030
case RequestType::kWidevine: \
3131
case RequestType::kBraveEthereum: \
3232
case RequestType::kBraveSolana: \
33+
case RequestType::kBraveCardano: \
3334
case RequestType::kBraveGoogleSignInPermission: \
3435
case RequestType::kBraveLocalhostAccessPermission: \
3536
case RequestType::kBraveOpenAIChat: \
@@ -41,6 +42,7 @@ constexpr auto kAndroidStorageAccess = IDR_ANDROID_STORAGE_ACCESS;
4142
case RequestType::kWidevine: \
4243
case RequestType::kBraveEthereum: \
4344
case RequestType::kBraveSolana: \
45+
case RequestType::kBraveCardano: \
4446
case RequestType::kBraveGoogleSignInPermission: \
4547
case RequestType::kBraveLocalhostAccessPermission: \
4648
case RequestType::kBraveOpenAIChat: \
@@ -53,6 +55,8 @@ constexpr auto kAndroidStorageAccess = IDR_ANDROID_STORAGE_ACCESS;
5355
return "brave_ethereum"; \
5456
case permissions::RequestType::kBraveSolana: \
5557
return "brave_solana"; \
58+
case permissions::RequestType::kBraveCardano: \
59+
return "brave_cardano"; \
5660
case permissions::RequestType::kBraveGoogleSignInPermission: \
5761
return "brave_google_sign_in"; \
5862
case permissions::RequestType::kBraveLocalhostAccessPermission: \
@@ -86,6 +90,8 @@ RequestType ContentSettingsTypeToRequestType(
8690
return RequestType::kBraveEthereum;
8791
case ContentSettingsType::BRAVE_SOLANA:
8892
return RequestType::kBraveSolana;
93+
case ContentSettingsType::BRAVE_CARDANO:
94+
return RequestType::kBraveCardano;
8995
case ContentSettingsType::BRAVE_GOOGLE_SIGN_IN:
9096
return RequestType::kBraveGoogleSignInPermission;
9197
case ContentSettingsType::BRAVE_LOCALHOST_ACCESS:
@@ -114,6 +120,8 @@ std::optional<ContentSettingsType> RequestTypeToContentSettingsType(
114120
return ContentSettingsType::BRAVE_ETHEREUM;
115121
case RequestType::kBraveSolana:
116122
return ContentSettingsType::BRAVE_SOLANA;
123+
case RequestType::kBraveCardano:
124+
return ContentSettingsType::BRAVE_CARDANO;
117125
case RequestType::kBraveOpenAIChat:
118126
return ContentSettingsType::BRAVE_OPEN_AI_CHAT;
119127
default:
@@ -127,6 +135,7 @@ bool IsRequestablePermissionType(ContentSettingsType content_settings_type) {
127135
case ContentSettingsType::BRAVE_LOCALHOST_ACCESS:
128136
case ContentSettingsType::BRAVE_ETHEREUM:
129137
case ContentSettingsType::BRAVE_SOLANA:
138+
case ContentSettingsType::BRAVE_CARDANO:
130139
case ContentSettingsType::BRAVE_OPEN_AI_CHAT:
131140
return true;
132141
default:

chromium_src/components/permissions/request_type.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
#define BRAVE_CHROMIUM_SRC_COMPONENTS_PERMISSIONS_REQUEST_TYPE_H_
88

99
#define kStorageAccess \
10-
kStorageAccess, kWidevine, kBraveEthereum, kBraveSolana, kBraveOpenAIChat, \
10+
kStorageAccess, kWidevine, kBraveEthereum, kBraveSolana, kBraveCardano, \
11+
kBraveOpenAIChat, \
1112
kBraveGoogleSignInPermission, kBraveLocalhostAccessPermission, \
1213
kBraveMinValue = kWidevine, \
1314
kBraveMaxValue = kBraveLocalhostAccessPermission

chromium_src/content/browser/permissions/permission_controller_impl.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
case PermissionType::BRAVE_SPEEDREADER: \
2121
case PermissionType::BRAVE_ETHEREUM: \
2222
case PermissionType::BRAVE_SOLANA: \
23+
case PermissionType::BRAVE_CARDANO: \
2324
case PermissionType::BRAVE_GOOGLE_SIGN_IN: \
2425
case PermissionType::BRAVE_LOCALHOST_ACCESS: \
2526
case PermissionType::BRAVE_OPEN_AI_CHAT: \

chromium_src/content/shell/browser/shell_permission_manager.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
case PermissionType::BRAVE_SPEEDREADER: \
1919
case PermissionType::BRAVE_ETHEREUM: \
2020
case PermissionType::BRAVE_SOLANA: \
21+
case PermissionType::BRAVE_CARDANO: \
2122
case PermissionType::BRAVE_GOOGLE_SIGN_IN: \
2223
case PermissionType::BRAVE_LOCALHOST_ACCESS: \
2324
case PermissionType::BRAVE_OPEN_AI_CHAT: \

chromium_src/services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ module network.mojom;
99
enum PermissionsPolicyFeature {
1010
kEthereum = 4096,
1111
kSolana = 4097,
12+
kCardano = 4098
1213
};

chromium_src/third_party/blink/common/permissions/permission_utils.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,17 @@
3535
case PermissionType::BRAVE_ETHEREUM: \
3636
return "BraveEthereum"; \
3737
case PermissionType::BRAVE_SOLANA: \
38-
return "BraveSolana";
39-
38+
return "BraveSolana"; \
39+
case PermissionType::BRAVE_CARDANO: \
40+
return "BraveCardano";
4041
#define kDisplayCapture \
4142
kDisplayCapture; \
4243
case PermissionType::BRAVE_ETHEREUM: \
4344
return network::mojom::PermissionsPolicyFeature::kEthereum; \
4445
case PermissionType::BRAVE_SOLANA: \
4546
return network::mojom::PermissionsPolicyFeature::kSolana; \
47+
case PermissionType::BRAVE_CARDANO: \
48+
return network::mojom::PermissionsPolicyFeature::kCardano; \
4649
case PermissionType::BRAVE_ADS: \
4750
case PermissionType::BRAVE_COSMETIC_FILTERING: \
4851
case PermissionType::BRAVE_TRACKERS: \

chromium_src/third_party/blink/public/common/permissions/permission_utils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
BRAVE_SPEEDREADER, \
2020
BRAVE_ETHEREUM, \
2121
BRAVE_SOLANA, \
22+
BRAVE_CARDANO, \
2223
BRAVE_GOOGLE_SIGN_IN, \
2324
BRAVE_LOCALHOST_ACCESS, \
2425
BRAVE_OPEN_AI_CHAT, \

chromium_src/third_party/blink/public/devtools_protocol/browser_protocol.pdl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ domain Page
88
enum
99
ethereum
1010
solana
11+
cardano
1112

1213
# Generates a Page Graph report for the page.
1314
experimental command generatePageGraph

components/brave_wallet/browser/permission_utils.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ bool ParseRequestingOriginInternal(permissions::RequestType type,
7979
std::string* account,
8080
std::queue<std::string>* address_queue) {
8181
if (origin.opaque() || (type != permissions::RequestType::kBraveEthereum &&
82-
type != permissions::RequestType::kBraveSolana)) {
82+
type != permissions::RequestType::kBraveSolana &&
83+
type != permissions::RequestType::kBraveCardano)) {
8384
return false;
8485
}
8586

@@ -214,6 +215,8 @@ std::optional<blink::PermissionType> CoinTypeToPermissionType(
214215
return blink::PermissionType::BRAVE_ETHEREUM;
215216
case mojom::CoinType::SOL:
216217
return blink::PermissionType::BRAVE_SOLANA;
218+
case mojom::CoinType::ADA:
219+
return blink::PermissionType::BRAVE_CARDANO;
217220
default:
218221
return std::nullopt;
219222
}
@@ -226,6 +229,8 @@ std::optional<permissions::RequestType> CoinTypeToPermissionRequestType(
226229
return permissions::RequestType::kBraveEthereum;
227230
case mojom::CoinType::SOL:
228231
return permissions::RequestType::kBraveSolana;
232+
case mojom::CoinType::ADA:
233+
return permissions::RequestType::kBraveCardano;
229234
default:
230235
return std::nullopt;
231236
}

components/brave_wallet/browser/permission_utils_unittest.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,9 @@ TEST(PermissionUtilsUnitTest, CoinTypeToPermissionType) {
351351
type = CoinTypeToPermissionType(mojom::CoinType::SOL);
352352
ASSERT_TRUE(type);
353353
EXPECT_EQ(*type, blink::PermissionType::BRAVE_SOLANA);
354+
type = CoinTypeToPermissionType(mojom::CoinType::ADA);
355+
ASSERT_TRUE(type);
356+
EXPECT_EQ(*type, blink::PermissionType::BRAVE_CARDANO);
354357
EXPECT_FALSE(CoinTypeToPermissionType(mojom::CoinType::FIL));
355358
EXPECT_FALSE(CoinTypeToPermissionType(mojom::CoinType::BTC));
356359
}

components/permissions/contexts/brave_wallet_permission_context.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,7 @@ void BraveWalletPermissionContext::ResetAllPermissions(
425425
PermissionsClient::Get()->GetSettingsMap(context);
426426
map->ClearSettingsForOneType(ContentSettingsType::BRAVE_ETHEREUM);
427427
map->ClearSettingsForOneType(ContentSettingsType::BRAVE_SOLANA);
428+
map->ClearSettingsForOneType(ContentSettingsType::BRAVE_CARDANO);
428429
}
429430

430431
} // namespace permissions

0 commit comments

Comments
 (0)