* Add enable_brave_wallet GN variable and build flag This adds a new GN build flag 'enable_brave_wallet' that can be set to false to exclude Brave Wallet from the build. The flag is true by default to maintain current behavior. Changes include: - Add enable_brave_wallet declare_args in build/config/BUILDCONFIG.gn - Create brave_wallet/common/buildflags with ENABLE_BRAVE_WALLET flag - Update all BUILD.gn and sources.gni files to use the new flag - Add wallet buildflags dependencies via minimal one-line imports * Add patches for wallet buildflags in Chromium BUILD files Adds minimal one-line patches to import wallet buildflags dependencies in Chromium source files. This allows Chromium code to conditionally depend on wallet headers. Patches: - chrome/browser/ui/hid/BUILD.gn - net/BUILD.gn - third_party/blink/common/BUILD.gn - third_party/blink/public/common/BUILD.gn - third_party/blink/renderer/modules/permissions/BUILD.gn * Guard wallet code in Chromium source overrides Updates chromium_src overrides to conditionally compile wallet-related code based on enable_brave_wallet flag. This includes: - Adding DEPS files to allow buildflags dependencies - Guarding wallet permission handling with #if BUILDFLAG(ENABLE_BRAVE_WALLET) - Keeping wallet permission enum values unconditionally to maintain profile interchangeability between wallet-enabled and wallet-disabled builds - Updating component registration and preference handling Key changes: - Permission enums remain stable across build configs for UMA and persistence - Wallet permission handling code only compiled when wallet enabled - DEPS files updated to allow buildflags includes * Guard wallet UI code in front-end TypeScript and Mojom Conditionally compiles wallet-related UI code in TypeScript and Mojom interfaces based on enable_brave_wallet preprocessor flag. Changes: - Settings menu: Use lastInserted pattern for menu item ordering - Page visibility: Guard wallet page visibility checks - Browser commands: Guard wallet command handling - Routes: Conditionally include wallet routes - Add non-null assertions for DOM insertions in TypeScript - Update Mojom interfaces to conditionally include wallet enums Front-end code uses <if expr="enable_brave_wallet"> preprocessor directives to exclude wallet UI when the feature is disabled. * Guard wallet usage in non-wallet Brave code Conditionally compiles wallet-related code in non-wallet Brave files based on enable_brave_wallet build flag. Changes include: - browser/: Guard wallet service factories, preferences, and helpers - components/: Guard wallet dependencies in rewards, sidebar, and DNS - renderer/: Conditionally register wallet content settings - utility/: Guard wallet component registration - ios/: Add optional chaining for wallet feature flags - test/: Guard wallet-related test code Key files: - brave_stats_updater.cc: Guard wallet pref registration with #if - brave_profile_prefs.cc: Conditionally register wallet preferences - sidebar_service.cc: Guard wallet panel items - iOS WalletConstants.swift: Use optional chaining for feature checks This allows building Brave without wallet while maintaining profile compatibility between wallet-enabled and wallet-disabled builds. * Add static_assert for ENABLE_BRAVE_WALLET in wallet headers Adds compile-time assertions to wallet headers to ensure they are only included when wallet is enabled. This prevents accidental usage of wallet APIs when enable_brave_wallet=false. Added static_assert(BUILDFLAG(ENABLE_BRAVE_WALLET)) to: browser/brave_wallet/ (11 files): - asset_ratio_service_factory.h - brave_wallet_context_utils.h - brave_wallet_ipfs_service_factory.h - brave_wallet_provider_delegate_impl.h - brave_wallet_service_factory.h - brave_wallet_tab_helper.h - meld_integration_service_factory.h - wallet_notification_service_factory.h - simulation_service_factory.h - swap_service_factory.h - wallet_data_files_installer_delegate_impl.h components/brave_wallet/browser/ (15 files): - brave_wallet_p3a_private.h - brave_wallet_prefs.h - brave_wallet_service.h - brave_wallet_utils.h - ens_resolver_task.h - json_rpc_service_test_utils.h - json_rpc_service.h - keyring_service_observer_base.h - keyring_service.h - network_manager.h - permission_utils.h - pref_names.h - test_utils.h - tx_service.h - wallet_data_files_installer.h components/brave_wallet/common/ (6 files): - brave_wallet_types.h - common_utils.h - eth_abi_utils.h - features.h - hex_utils.h - pref_names.h Also includes minor wallet code updates to use buildflags and guard zcash-specific test code. * Follow up fixes after Parts 1-7
152 lines
7.5 KiB
Plaintext
152 lines
7.5 KiB
Plaintext
# Copyright (c) 2022 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/. */
|
|
|
|
import("//brave/components/brave_wallet/common/buildflags/buildflags.gni")
|
|
|
|
# Tests that do not run on Android
|
|
android_test_exception_sources = [
|
|
"//brave/browser/brave_content_browser_client_browsertest.cc",
|
|
"//brave/browser/brave_scheme_load_browsertest.cc",
|
|
"//brave/browser/brave_shields/brave_shields_web_contents_observer_browsertest.cc",
|
|
"//brave/browser/brave_shields/cookie_expiry_browsertest.cc",
|
|
"//brave/browser/brave_shields/domain_block_page_browsertest.cc",
|
|
"//brave/browser/brave_shields/eventsource_pool_limit_browsertest.cc",
|
|
"//brave/browser/brave_shields/websockets_pool_limit_browsertest.cc",
|
|
"//brave/browser/content_settings/brave_content_settings_browsertest.cc",
|
|
"//brave/browser/debounce/debounce_browsertest.cc",
|
|
"//brave/browser/extensions/brave_crx_generation_browsertest.cc",
|
|
"//brave/browser/extensions/brave_extension_functional_test.cc",
|
|
"//brave/browser/extensions/brave_extension_functional_test.h",
|
|
"//brave/browser/extensions/brave_extension_provider_browsertest.cc",
|
|
"//brave/browser/extensions/extension_system_browsertest.cc",
|
|
"//brave/browser/perf/brave_perf_features_processor_browsertest.cc",
|
|
"//brave/browser/policy/brave_policy_browsertest.cc",
|
|
"//brave/browser/profiles/delete_profile_helper_browsertest.cc",
|
|
"//brave/browser/renderer_context_menu/brave_mock_render_view_context_menu.cc",
|
|
"//brave/browser/renderer_context_menu/brave_mock_render_view_context_menu.h",
|
|
"//brave/browser/renderer_context_menu/brave_spelling_menu_observer_browsertest.cc",
|
|
"//brave/browser/search_engines/search_engine_provider_service_browsertest.cc",
|
|
"//brave/browser/search_engines/search_engine_tracker_browsertest.cc",
|
|
"//brave/browser/themes/brave_theme_service_browsertest.cc",
|
|
"//brave/browser/translate/brave_translate_browsertest.cc",
|
|
"//brave/browser/ui/brave_browser_command_controller_browsertest.cc",
|
|
"//brave/browser/ui/content_settings/brave_autoplay_blocked_image_model_browsertest.cc",
|
|
"//brave/browser/ui/toolbar/brave_app_menu_model_browsertest.cc",
|
|
"//brave/browser/ui/webui/new_tab_page/brave_new_tab_ui_browsertest.cc",
|
|
"//brave/browser/ui/webui/private_new_tab_page/brave_private_new_tab_page_browsertest.cc",
|
|
"//brave/browser/ui/webui/welcome_page/brave_welcome_ui_browsertest.cc",
|
|
"//brave/browser/web_package/signed_exchange_request_browsertest.cc",
|
|
"//brave/chromium_src/chrome/browser/safe_browsing/download_protection/check_client_download_request_base_browsertest.cc",
|
|
"//brave/chromium_src/chrome/browser/ui/hats/hats_service_browsertest.cc",
|
|
"//brave/chromium_src/chrome/browser/ui/views/location_bar/location_bar_view_browsertest.cc",
|
|
"//brave/chromium_src/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view_browsertest.cc",
|
|
"//brave/components/brave_perf_predictor/browser/perf_predictor_tab_helper_browsertest.cc",
|
|
"//brave/components/content_settings/renderer/brave_content_settings_agent_impl_browsertest.cc",
|
|
"//brave/third_party/blink/renderer/modules/brave/navigator_browsertest.cc",
|
|
"//chrome/browser/extensions/browsertest_util.cc",
|
|
"//chrome/browser/extensions/browsertest_util.h",
|
|
"//chrome/browser/extensions/extension_browsertest.cc",
|
|
"//chrome/browser/extensions/extension_browsertest.h",
|
|
"//chrome/browser/media/media_browsertest.cc",
|
|
"//chrome/browser/media/media_browsertest.h",
|
|
"//chrome/browser/ui/test/test_browser_dialog.cc",
|
|
"//chrome/browser/ui/test/test_browser_dialog.h",
|
|
"//chrome/browser/ui/test/test_browser_ui.cc",
|
|
"//chrome/browser/ui/test/test_browser_ui.h",
|
|
]
|
|
|
|
if (enable_brave_wallet) {
|
|
android_test_exception_sources += [
|
|
"//brave/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc",
|
|
"//brave/browser/brave_wallet/brave_wallet_event_emitter_browsertest.cc",
|
|
"//brave/browser/brave_wallet/brave_wallet_service_browsertest.cc",
|
|
"//brave/browser/brave_wallet/brave_wallet_sign_message_browsertest.cc",
|
|
"//brave/browser/brave_wallet/brave_wallet_tab_helper_browsertest.cc",
|
|
"//brave/browser/brave_wallet/cardano_provider_renderer_browsertest.cc",
|
|
"//brave/browser/brave_wallet/ethereum_provider_browsertest.cc",
|
|
"//brave/browser/brave_wallet/send_or_sign_transaction_browsertest.cc",
|
|
"//brave/browser/brave_wallet/solana_provider_browsertest.cc",
|
|
"//brave/browser/brave_wallet/solana_provider_renderer_browsertest.cc",
|
|
"//brave/browser/brave_wallet/wallet_watch_asset_browsertest.cc",
|
|
"//brave/browser/ui/webui/brave_wallet/wallet_panel_ui_browsertest.cc",
|
|
]
|
|
}
|
|
|
|
android_test_exception_deps = [
|
|
"//brave/browser/autoplay:browser_tests",
|
|
"//brave/browser/brave_ads:browser_tests",
|
|
"//brave/browser/brave_news:browser_tests",
|
|
"//brave/browser/brave_rewards/test:browser_tests",
|
|
"//brave/browser/browsing_data:browser_tests",
|
|
"//brave/browser/extensions",
|
|
"//brave/browser/extensions:test_support",
|
|
"//brave/browser/farbling:browser_tests",
|
|
"//brave/browser/net:browser_tests",
|
|
"//brave/browser/permissions:browser_tests",
|
|
"//brave/browser/psst:browser_tests",
|
|
"//brave/browser/test:browser_tests",
|
|
"//brave/browser/ui:browser_tests",
|
|
"//brave/browser/ui/tabs/test:browser_tests",
|
|
"//brave/browser/ui/views/tabs:browser_tests",
|
|
"//brave/components/de_amp/browser/test:browser_tests",
|
|
"//brave/renderer/skus:browser_tests",
|
|
"//brave/renderer/test:browser_tests",
|
|
"//chrome/browser/web_applications",
|
|
"//chrome/test:test_support_ui",
|
|
"//extensions/browser:test_support",
|
|
"//extensions/common:common_constants",
|
|
"//extensions/common:test_support",
|
|
"//ui/views",
|
|
]
|
|
|
|
if (enable_brave_wallet) {
|
|
android_test_exception_deps += [
|
|
"//brave/browser/decentralized_dns/test:browser_tests",
|
|
"//brave/components/brave_wallet/resources:ethereum_provider_generated_resources",
|
|
]
|
|
}
|
|
|
|
# Tests that run only on Android
|
|
android_only_test_sources = [
|
|
"//chrome/test/android/browsertests_apk/android_browsertests_jni_onload.cc",
|
|
"//chrome/test/base/android/android_browser_test_browsertest_android.cc",
|
|
]
|
|
|
|
if (enable_brave_wallet) {
|
|
android_only_test_sources += [ "//brave/browser/brave_wallet/android/android_page_appearing_browsertest.cc" ]
|
|
}
|
|
|
|
android_only_test_deps = [
|
|
":test_support",
|
|
"//android_webview/common",
|
|
"//brave/browser/partnercustomizations:delegate_public_impl_java",
|
|
"//brave/browser/password_manager/android:browser_tests",
|
|
"//brave/components/cosmetic_filters/browser",
|
|
"//brave/third_party/android_deps:com_android_installreferrer_java",
|
|
"//chrome:chrome_android_core",
|
|
"//chrome/android:delegate_public_impl_java",
|
|
"//chrome/browser/flags:flags_android",
|
|
"//chrome/browser/metrics:test_support",
|
|
"//chrome/test:android_browsertests_assets",
|
|
"//chrome/test:android_browsertests_java",
|
|
"//chrome/test:test_support",
|
|
"//chrome/test:test_support_ui_android",
|
|
"//components/browser_ui/widget/android:java",
|
|
"//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
|
|
|
|
# TODO(crbug.com/961849): This is needed for ShellManager which is what
|
|
# the ChromeBrowserTestsActivity is using to build the java UI. It's
|
|
# likely we want to replace it with something new that uses ChromeWindow
|
|
# and CompositorViewHolder instead.
|
|
"//content/shell:content_shell_lib",
|
|
"//content/test:android_test_message_pump_support",
|
|
"//testing/android/native_test:native_test_support",
|
|
]
|
|
|
|
if (enable_brave_wallet) {
|
|
android_only_test_deps +=
|
|
[ "//brave/components/brave_wallet/browser:test_support" ]
|
|
}
|