Skip to content

Commit

Permalink
Disable brave wallet on special cases
Browse files Browse the repository at this point in the history
  • Loading branch information
cypt4 committed Apr 21, 2023
1 parent a62b2f3 commit 15ebef5
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 4 deletions.
11 changes: 11 additions & 0 deletions browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,12 @@
#include "base/test/thread_test_helper.h"
#include "brave/browser/brave_wallet/brave_wallet_tab_helper.h"
#include "brave/browser/brave_wallet/json_rpc_service_factory.h"
#include "brave/browser/brave_wallet/keyring_service_factory.h"
#include "brave/browser/profiles/brave_renderer_updater.h"
#include "brave/browser/profiles/brave_renderer_updater_factory.h"
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
#include "brave/components/brave_wallet/browser/json_rpc_service.h"
#include "brave/components/brave_wallet/browser/keyring_service.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"
#include "brave/components/brave_wallet/common/features.h"
#include "brave/components/constants/brave_paths.h"
Expand Down Expand Up @@ -190,6 +194,13 @@ class BraveWalletEthereumChainTest : public InProcessBrowserTest {
base::Unretained(this)));

ASSERT_TRUE(https_server_->Start());
auto* keyring_service =
brave_wallet::KeyringServiceFactory::GetServiceForContext(
browser()->profile());
// Create wallet since native wallet should not be injected otherwise
keyring_service->CreateWallet("password", base::DoNothing());
BraveRendererUpdaterFactory::GetForProfile(browser()->profile())
->UpdateAllRenderersForTesting();
}

void SetUpCommandLine(base::CommandLine* command_line) override {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#include "base/test/thread_test_helper.h"
#include "brave/browser/brave_wallet/json_rpc_service_factory.h"
#include "brave/browser/brave_wallet/keyring_service_factory.h"
#include "brave/browser/profiles/brave_renderer_updater.h"
#include "brave/browser/profiles/brave_renderer_updater_factory.h"
#include "brave/components/brave_wallet/browser/brave_wallet_constants.h"
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
#include "brave/components/brave_wallet/browser/json_rpc_service.h"
Expand Down Expand Up @@ -91,6 +93,10 @@ class BraveWalletEventEmitterTest : public InProcessBrowserTest {

keyring_service_ =
KeyringServiceFactory::GetServiceForContext(browser()->profile());
// Create wallet since native wallet should not be injected otherwise
keyring_service_->CreateWallet("password", base::DoNothing());
BraveRendererUpdaterFactory::GetForProfile(browser()->profile())
->UpdateAllRenderersForTesting();

ASSERT_TRUE(https_server_->Start());
}
Expand Down
6 changes: 6 additions & 0 deletions browser/brave_wallet/brave_wallet_sign_message_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#include "brave/browser/brave_wallet/brave_wallet_service_factory.h"
#include "brave/browser/brave_wallet/brave_wallet_tab_helper.h"
#include "brave/browser/brave_wallet/keyring_service_factory.h"
#include "brave/browser/profiles/brave_renderer_updater.h"
#include "brave/browser/profiles/brave_renderer_updater_factory.h"
#include "brave/components/brave_wallet/browser/brave_wallet_service.h"
#include "brave/components/brave_wallet/browser/keyring_service.h"
#include "brave/components/brave_wallet/common/features.h"
Expand Down Expand Up @@ -92,6 +94,10 @@ class BraveWalletSignMessageBrowserTest : public InProcessBrowserTest {
browser()->profile());
keyring_service_ =
KeyringServiceFactory::GetServiceForContext(browser()->profile());
// Create wallet since native wallet should not be injected otherwise
keyring_service_->CreateWallet("password", base::DoNothing());
BraveRendererUpdaterFactory::GetForProfile(browser()->profile())
->UpdateAllRenderersForTesting();
}

content::WebContents* web_contents() {
Expand Down
12 changes: 12 additions & 0 deletions browser/brave_wallet/brave_wallet_tab_helper_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@
#include "base/test/thread_test_helper.h"
#include "brave/browser/brave_wallet/brave_wallet_tab_helper.h"
#include "brave/browser/brave_wallet/json_rpc_service_factory.h"
#include "brave/browser/brave_wallet/keyring_service_factory.h"
#include "brave/browser/profiles/brave_renderer_updater.h"
#include "brave/browser/profiles/brave_renderer_updater_factory.h"
#include "brave/browser/ui/webui/brave_wallet/wallet_common_ui.h"
#include "brave/components/brave_wallet/browser/keyring_service.h"
#include "brave/components/brave_wallet/common/features.h"
#include "brave/components/constants/brave_paths.h"
#include "brave/components/constants/webui_url_constants.h"
Expand Down Expand Up @@ -121,6 +125,14 @@ class BraveWalletTabHelperBrowserTest : public InProcessBrowserTest {
&BraveWalletTabHelperBrowserTest::HandleChainRequest,
base::Unretained(this)));

auto* keyring_service =
brave_wallet::KeyringServiceFactory::GetServiceForContext(
browser()->profile());
// Create wallet since native wallet should not be injected otherwise
keyring_service->CreateWallet("password", base::DoNothing());
BraveRendererUpdaterFactory::GetForProfile(browser()->profile())
->UpdateAllRenderersForTesting();

ASSERT_TRUE(https_server_->Start());
}

Expand Down
2 changes: 2 additions & 0 deletions browser/brave_wallet/ethereum_provider_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ class EthereumProviderBrowserTest : public InProcessBrowserTest {

keyring_service_ =
KeyringServiceFactory::GetServiceForContext(browser()->profile());
// Create wallet since native wallet should not be injected otherwise
keyring_service_->CreateWallet("password", base::DoNothing());
}

content::WebContents* web_contents() {
Expand Down
30 changes: 26 additions & 4 deletions browser/profiles/brave_renderer_updater.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@

#include "base/functional/bind.h"
#include "brave/browser/brave_wallet/brave_wallet_context_utils.h"
#include "brave/browser/brave_wallet/keyring_service_factory.h"
#include "brave/browser/ethereum_remote_client/ethereum_remote_client_constants.h"
#include "brave/common/brave_renderer_configuration.mojom.h"
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
#include "brave/components/brave_wallet/browser/keyring_service.h"
#include "brave/components/brave_wallet/browser/pref_names.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"
#include "brave/components/de_amp/browser/de_amp_util.h"
Expand All @@ -20,6 +23,7 @@
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
#include "extensions/browser/extension_registry.h"
#include "ipc/ipc_channel_proxy.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"

Expand Down Expand Up @@ -47,6 +51,10 @@ BraveRendererUpdater::BraveRendererUpdater(Profile* profile)

BraveRendererUpdater::~BraveRendererUpdater() = default;

void BraveRendererUpdater::UpdateAllRenderersForTesting() {
UpdateAllRenderers();
}

void BraveRendererUpdater::InitializeRenderer(
content::RenderProcessHost* render_process_host) {
auto renderer_configuration = GetRendererConfiguration(render_process_host);
Expand Down Expand Up @@ -99,12 +107,25 @@ void BraveRendererUpdater::UpdateAllRenderers() {
void BraveRendererUpdater::UpdateRenderer(
mojo::AssociatedRemote<brave::mojom::BraveRendererConfiguration>*
renderer_configuration) {
extensions::ExtensionRegistry* registry =
extensions::ExtensionRegistry::Get(profile_);
bool has_installed_metamask =
registry &&
registry->enabled_extensions().Contains(metamask_extension_id);
brave_wallet::KeyringService* keyring_service =
brave_wallet::KeyringServiceFactory::GetServiceForContext(profile_);
bool wallet_created =
keyring_service &&
keyring_service->IsKeyringCreated(brave_wallet::mojom::kDefaultKeyringId);
bool should_ignore_brave_wallet = !wallet_created || has_installed_metamask;

auto default_ethereum_wallet =
static_cast<brave_wallet::mojom::DefaultWallet>(
brave_wallet_ethereum_provider_.GetValue());
bool brave_use_native_ethereum_wallet =
(default_ethereum_wallet ==
brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension ||
((default_ethereum_wallet ==
brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension &&
!should_ignore_brave_wallet) ||
default_ethereum_wallet ==
brave_wallet::mojom::DefaultWallet::BraveWallet) &&
is_wallet_allowed_for_context_ && brave_wallet::IsDappsSupportEnabled();
Expand All @@ -115,8 +136,9 @@ void BraveRendererUpdater::UpdateRenderer(
auto default_solana_wallet = static_cast<brave_wallet::mojom::DefaultWallet>(
brave_wallet_solana_provider_.GetValue());
bool brave_use_native_solana_wallet =
(default_solana_wallet ==
brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension ||
((default_ethereum_wallet ==
brave_wallet::mojom::DefaultWallet::BraveWalletPreferExtension &&
!should_ignore_brave_wallet) ||
default_solana_wallet ==
brave_wallet::mojom::DefaultWallet::BraveWallet) &&
is_wallet_allowed_for_context_ && brave_wallet::IsDappsSupportEnabled();
Expand Down
4 changes: 4 additions & 0 deletions browser/profiles/brave_renderer_updater.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ class BraveRendererUpdater : public KeyedService {
// Initialize a newly-started renderer process.
void InitializeRenderer(content::RenderProcessHost* render_process_host);

// TODO(cypt4): Remove this method after adding subscribtion on
// ExtensionRegistry and KeyringService
void UpdateAllRenderersForTesting();

private:
std::vector<mojo::AssociatedRemote<brave::mojom::BraveRendererConfiguration>>
GetRendererConfigurations();
Expand Down

0 comments on commit 15ebef5

Please sign in to comment.