Files
brave-core/browser/extensions/brave_extension_management.cc
Brian R. Bondy 1174a90b46 Remove Ethereum Remote Client (Crypto Wallets) (#29135)
There was a flag from long ago that allowed you to select Crypto Wallets as your wallet. However if you did this, it no longer works.  There is no one that can feasibly still be using this wallet because it hasn't worked for many versions

Addressed review comments

Remove references to 21070F3D60711361C1210B870439BE49B5D995F4
21070F3D60711361C1210B870439BE49B5D995F4 is for Ethereum Remote Client which is removed

Remove unused ReinstallAsNonComponent

Remove unused comment IsInstallationExplicitlyAllowed

Remove _permission_features.json because it's an override that only
exists because of CW extension.

Remove unused string braveWalletImportFromLegacy

Use constexpr for kMetamaskExtensionId

Remove need subscription to kDefaultEthereumWallet and OnWalletTypeChanged handler

Remove DISABLED_ImportLegacyWallet

Add Migration for people with CryptoWallets pref

Deprecate and keep CryptoWallets prefs

1
2025-05-23 16:56:41 -04:00

95 lines
3.5 KiB
C++

/* Copyright (c) 2019 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "brave/browser/extensions/brave_extension_management.h"
#include <memory>
#include "brave/browser/brave_browser_process.h"
#include "brave/browser/extensions/brave_extension_provider.h"
#include "brave/browser/tor/tor_profile_service_factory.h"
#include "brave/components/constants/pref_names.h"
#include "brave/components/tor/buildflags/buildflags.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/extension_management_internal.h"
#include "chrome/browser/extensions/external_policy_loader.h"
#include "chrome/browser/profiles/profile.h"
#include "components/prefs/pref_service.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_urls.h"
#if BUILDFLAG(ENABLE_TOR)
#include "brave/browser/tor/tor_profile_manager.h"
#include "brave/components/tor/brave_tor_client_updater.h"
#include "brave/components/tor/brave_tor_pluggable_transport_updater.h"
#include "brave/components/tor/pref_names.h"
#endif
namespace extensions {
BraveExtensionManagement::BraveExtensionManagement(Profile* profile)
: ExtensionManagement(profile) {
extension_registry_observer_.Observe(
ExtensionRegistry::Get(static_cast<content::BrowserContext*>(profile)));
providers_.push_back(std::make_unique<BraveExtensionProvider>());
if (g_browser_process->local_state()) {
local_state_pref_change_registrar_.Init(g_browser_process->local_state());
#if BUILDFLAG(ENABLE_TOR)
local_state_pref_change_registrar_.Add(
tor::prefs::kTorDisabled,
base::BindRepeating(&BraveExtensionManagement::OnTorDisabledChanged,
base::Unretained(this)));
local_state_pref_change_registrar_.Add(
tor::prefs::kBridgesConfig,
base::BindRepeating(
&BraveExtensionManagement::OnTorPluggableTransportChanged,
base::Unretained(this)));
#endif
}
Cleanup(profile);
}
BraveExtensionManagement::~BraveExtensionManagement() {
local_state_pref_change_registrar_.RemoveAll();
}
void BraveExtensionManagement::OnTorDisabledChanged() {
#if BUILDFLAG(ENABLE_TOR)
if (TorProfileServiceFactory::IsTorDisabled(profile_)) {
TorProfileManager::GetInstance().CloseAllTorWindows();
if (g_brave_browser_process->tor_client_updater()) {
g_brave_browser_process->tor_client_updater()->Cleanup();
}
if (g_brave_browser_process->tor_pluggable_transport_updater()) {
g_brave_browser_process->tor_pluggable_transport_updater()->Cleanup();
}
}
#endif
}
void BraveExtensionManagement::OnTorPluggableTransportChanged() {
#if BUILDFLAG(ENABLE_TOR)
if (TorProfileServiceFactory::GetTorBridgesConfig().use_bridges ==
tor::BridgesConfig::Usage::kNotUsed) {
if (g_brave_browser_process->tor_pluggable_transport_updater()) {
g_brave_browser_process->tor_pluggable_transport_updater()->Cleanup();
}
}
#endif
}
void BraveExtensionManagement::Cleanup(content::BrowserContext* context) {
// BrowserPolicyConnector enforce policy earlier than this constructor so we
// have to manully cleanup tor executable when tor is disabled by gpo
if (g_browser_process->local_state()) {
OnTorDisabledChanged();
OnTorPluggableTransportChanged();
}
}
} // namespace extensions