9
9
10
10
#include " base/functional/bind.h"
11
11
#include " brave/browser/brave_wallet/brave_wallet_context_utils.h"
12
+ #include " brave/browser/brave_wallet/keyring_service_factory.h"
13
+ #include " brave/browser/ethereum_remote_client/ethereum_remote_client_constants.h"
12
14
#include " brave/common/brave_renderer_configuration.mojom.h"
13
15
#include " brave/components/brave_wallet/browser/brave_wallet_utils.h"
16
+ #include " brave/components/brave_wallet/browser/keyring_service.h"
14
17
#include " brave/components/brave_wallet/browser/pref_names.h"
15
18
#include " brave/components/brave_wallet/common/brave_wallet.mojom.h"
16
19
#include " brave/components/de_amp/browser/de_amp_util.h"
20
23
#include " components/prefs/pref_service.h"
21
24
#include " content/public/browser/browser_thread.h"
22
25
#include " content/public/browser/render_process_host.h"
26
+ #include " extensions/browser/extension_registry.h"
23
27
#include " ipc/ipc_channel_proxy.h"
24
28
#include " mojo/public/cpp/bindings/pending_receiver.h"
25
29
@@ -47,6 +51,10 @@ BraveRendererUpdater::BraveRendererUpdater(Profile* profile)
47
51
48
52
BraveRendererUpdater::~BraveRendererUpdater () = default ;
49
53
54
+ void BraveRendererUpdater::UpdateAllRenderersForTesting () {
55
+ UpdateAllRenderers ();
56
+ }
57
+
50
58
void BraveRendererUpdater::InitializeRenderer (
51
59
content::RenderProcessHost* render_process_host) {
52
60
auto renderer_configuration = GetRendererConfiguration (render_process_host);
@@ -99,12 +107,25 @@ void BraveRendererUpdater::UpdateAllRenderers() {
99
107
void BraveRendererUpdater::UpdateRenderer (
100
108
mojo::AssociatedRemote<brave::mojom::BraveRendererConfiguration>*
101
109
renderer_configuration) {
110
+ extensions::ExtensionRegistry* registry =
111
+ extensions::ExtensionRegistry::Get (profile_);
112
+ bool has_installed_metamask =
113
+ registry &&
114
+ registry->enabled_extensions ().Contains (metamask_extension_id);
115
+ brave_wallet::KeyringService* keyring_service =
116
+ brave_wallet::KeyringServiceFactory::GetServiceForContext (profile_);
117
+ bool wallet_created =
118
+ keyring_service &&
119
+ keyring_service->IsKeyringCreated (brave_wallet::mojom::kDefaultKeyringId );
120
+ bool should_ignore_brave_wallet = !wallet_created || has_installed_metamask;
121
+
102
122
auto default_ethereum_wallet =
103
123
static_cast <brave_wallet::mojom::DefaultWallet>(
104
124
brave_wallet_ethereum_provider_.GetValue ());
105
125
bool brave_use_native_ethereum_wallet =
106
- (default_ethereum_wallet ==
107
- brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension ||
126
+ ((default_ethereum_wallet ==
127
+ brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension &&
128
+ !should_ignore_brave_wallet) ||
108
129
default_ethereum_wallet ==
109
130
brave_wallet::mojom::DefaultWallet::BraveWallet) &&
110
131
is_wallet_allowed_for_context_ && brave_wallet::IsDappsSupportEnabled ();
@@ -115,8 +136,9 @@ void BraveRendererUpdater::UpdateRenderer(
115
136
auto default_solana_wallet = static_cast <brave_wallet::mojom::DefaultWallet>(
116
137
brave_wallet_solana_provider_.GetValue ());
117
138
bool brave_use_native_solana_wallet =
118
- (default_solana_wallet ==
119
- brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension ||
139
+ ((default_ethereum_wallet ==
140
+ brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension &&
141
+ !should_ignore_brave_wallet) ||
120
142
default_solana_wallet ==
121
143
brave_wallet::mojom::DefaultWallet::BraveWallet) &&
122
144
is_wallet_allowed_for_context_ && brave_wallet::IsDappsSupportEnabled ();
0 commit comments