Commit Graph
356 Commits
Author SHA1 Message Date
Simon Hong d67f803100 Added Slovakia, Serbia flags to VPN panel (#36684)
F/U PR for #36669
2026-05-26 09:29:01 +09:00
Jay Harris 1a7cc94c5b [externals]: Share React for all ESModule JS bundles (#36597) 2026-05-25 11:11:26 +01:00
Simon Hong f56a64ca46 Added UAE, Nigeria flags to VPN panel (#36669)
Resolves brave/brave-browser#55764
2026-05-25 10:51:50 +09:00
Aleksei Khoroshilov b6295cd1c1 Add Containers enable toggle. (#36447)
* Add Containers enable toggle.

* Replace cr-toggle with settings-toggle-button.
2026-05-15 20:18:11 +07:00
Aleksei Khoroshilov 690260adff Make GN format sort leo icons files automatically. (#36445) 2026-05-15 16:16:22 +07:00
Pete Miller 593f937bfa [AI Chat] Progress indicator with text and expansion button (#35757)
* [AI Chat] Progress indicator with text and expansion button

Introduce ProgressBubble UI component.

Replaces spinner during generation and tool use, adding text description of the operation currently in progress.
Replaces AssistantTask tabs ("Steps"/"Progress") with a button to control expansion and collapse of details.
Replaces SearchSummary special handling with status inside the ProgressBubble and a regular search Tool Use event rendering when detail is expanded.
2026-05-14 20:03:03 +01:00
Douglas Daniel ab255afed3 [Wallet]: Portfolio Asset Distribution (#35340)
Introduces a Portfolio Distribution to the Wallet Portfolio
2026-04-13 15:15:45 -05:00
Kevin Smith abeef22091 [Shields Panel] Apply various UI polish tweaks (#35039) 2026-03-27 12:30:07 -04:00
Douglas Daniel b6f067d967 [Wallet]: Add Unshield Funds Button to Asset Menu (#34774)
Adds a Unshield funds button to the Asset Menu for Shielded ZEC assets
2026-03-18 12:19:14 -05:00
Kevin Smith 6d7d3509dc [Shields UI] Wire up new panel UI to flag (#34639) 2026-03-16 14:50:14 -04:00
Agustín Ruiz c8e21776e6 Add antialiasing to all webUIs (#34753)
* Add antialiasing

* add ; at the end of css declarations
2026-03-16 13:48:51 -03:00
Anthony Tseng 73c1f6462f Move WASM crates next to their consumer components (#34574)
* Move opaque_ke WASM crate next to its consumer component

Move opaque_ke from third_party/wasm/ to
components/brave_account/resources/opaque_ke/ so it lives
next to the component that consumes it.

- Move crate directory with index.js as-is
- Add workspace key to Cargo.toml for workspace discovery
- Update .cargo/config.toml vendor path
- Add transpile_web_ui target in resources/opaque_ke/BUILD.gn
- Update workspace Cargo.toml member path
- Update update.py to use make_config_toml for relative vendor paths

* Move candle_embedding_gemma WASM crate next to its consumer component

Move candle_embedding_gemma from third_party/wasm/ to
components/local_ai/resources/candle_embedding_gemma/ so it lives
next to the component that consumes it.

- Move crate directory
- Add workspace key to Cargo.toml for workspace discovery
- Update .cargo/config.toml vendor path
- Update workspace Cargo.toml member path
- Update update.py PRESERVE_PATTERNS for new config location
2026-03-10 11:06:21 +00:00
Anthony Tseng fef2a76f4c Move WASM workspace to third_party/wasm/ (#34497)
Relocate the WASM workspace from ui/webui/resources/wasm/ to
third_party/wasm/, following the convention of third_party/rust/.

This is a plain move with path updates — no structural changes to
the workspace, crate locations within it, or build targets.
2026-03-09 22:50:50 +00:00
Stephen O'Farrellandjameshawrych c333ff87e7 [Leo] 2026 Feb Model Upgrade (#33973)
* [Leo] update models

* add near GLM 5

* address netzen comments

* formatting

* add removed models to clearprefs migration

* correct model key name to chat-near-deepseek

* clean up strings

---------

Co-authored-by: jameshawrych <69646550+jameshawrych@users.noreply.github.com>
2026-03-02 17:18:22 +00:00
Kevin Smith 14332c8693 [Shields UI] Add advanced view to new panel UI (#34192) 2026-02-27 18:38:29 -05:00
Jay Harris bda4949d93 [AI Chat]: Include inline search widget in AssistantResponse (#34073) 2026-02-25 08:33:25 +13:00
Szilard Szaloki 3e2422d2e4 Account: implements Caps Lock indicator (#33841) 2026-02-10 20:18:44 +00:00
Agustín Ruiz e3238393d9 Settings move searchbar (#33235)
* Remove Brave navigation bar and search field components

Deleted the Brave-specific navigation bar data provider and toolbar search field components, including related TypeScript, HTML, and CSS files. Updated build files and removed all references and initialization code for these components across the codebase. This simplifies the UI code and removes unused or redundant toolbar logic.

* Add Brave-specific toolbar CSS overrides

Introduces a new stylesheet for cr_toolbar with layout overrides and customizations for Brave, including flex adjustments and alignment for toolbar content.

* Center content in toolbar when right content growth is disabled

Updated the CSS for cr_toolbar to center #centeredContent when the toolbar is not narrow and right content growth is disabled. This improves alignment and visual consistency.

* Update cr_toolbar.css

* Remove Brave-specific WebUI customizations and resources

Deleted Brave-specific history and downloads UI overrides, related patch files, and resource build files. Updated downloads UI to remove custom macro usage and simplified cr_elements BUILD.gn patch to exclude Brave resource imports. This streamlines the codebase by removing unnecessary Brave customizations and build steps.

* Update font-family to system defaults in search field

Replaces 'Inter Variable' and 'Inter' fonts with system-ui and sans-serif for input and #prompt elements in cr_toolbar_search_field.css to ensure consistent appearance across platforms.

* Add hover background for search field toolbar

Introduces a subtle background color on hover for the search field toolbar when it is not focused and not in narrow mode, improving visual feedback for users.

* Remove fallback values from CSS custom properties

Eliminated fallback values for several CSS custom properties in cr_toolbar_search_field.css to ensure design consistency and rely solely on the defined variables.
2026-01-25 19:54:17 -03:00
Szilard Szaloki d1917db4a9 Account: resend verification email notifications (desktop) (#33317) 2026-01-23 08:17:54 -07:00
Anthony Tseng 52941f6568 Exclude .vscode in gitignore for ui/webui/resources/wasm/vendor (#32905) 2025-12-19 06:49:20 -05:00
Anthony TsengandVandana Malayil 8484035772 Add candle embedding gemma into wasm (#32318)
* Create candle_embedding_gemma skeleton

* adding embedding gemma core code

* npm run update_wasm_resources and manually revert *README.chromium
deletion and config.toml, .clang-format reset

* Add README.chromium for direct deps

* Backup and restore candle_embedding_gemma/.cargo/config.toml

* Remove object files and DLLs in wasm vendor if found

* Exclude sonarcloud from running on wasm vendor codes

* modified so that embeddings and cosine similarity results match exactly with Python sentence transformer implementation

* adding core functionalities for quantized model instead of FP

* Fix rust format

---------

Co-authored-by: Vandana Malayil <vandurajan91@gmail.com>
2025-12-18 12:01:41 -08:00
Andrea 2d97608128 [ollama] ui (#31570)
* Add Ollama integration to Leo Assistant settings

- Add OllamaService mojo interface bindings in settings UI
- Include ollama.mojom in settings build configuration
- Add Ollama model discovery UI in model list section
- Update content security policy for Ollama endpoints
- Add localized strings for Ollama integration
- Wire up Ollama service through settings browser proxy
2025-12-01 22:21:46 +01:00
Brian R. Bondy a4d9248fcb Add enable_brave_wallet gn var and build flag (#32484)
* 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
2025-11-28 15:54:27 -05:00
Pete Miller b7f4a5afa0 [AI Chat] [Content Agent] Pause / Resume / Stop buttons for tasks (#32523)
* [AI Chat] [Content Agent] Pause / Resume / Stop buttons for tasks
2025-11-27 09:49:38 +01:00
Szilard Szaloki ec9e617ff9 Refactor WASM ui/webui/resources/wasm/update.py to use backup/restore. (#32515) 2025-11-25 10:14:25 +01:00
Stephen O'Farrell ce84f0d360 [Leo] Add new models (#31590)
* add new models to leo

* set tools to false

* remove tools string

* add is_near_model to new bedrock models
2025-11-14 15:21:22 +00:00
Anthony Tseng ccf25aa608 Skip git cl format for both rust-wasm vendor (#32292)
Prevent `git cl format --presubmit` which is used by `npm run presubmit`
from checking rust wasm vendor for formatting
2025-11-13 19:55:18 +01:00
Brian R. Bondy 72cadbd0c6 AIChat build flag and gn var (#31988)
* Add AI Chat build flag to components/ai_chat

* Add AI Chat build flag to browser/ui

* Add AI Chat build flag to browser/resources

* Add AI Chat build flag to chromium overrides

* Add AI Chat build flag to other components

* Add AI Chat build flag to core browser files

* Add AI Chat build flag to app and renderer

* Add AI Chat build flag to remaining files

* Set enable_ai_chat to !is_brave_origin_branded

* Review comments

Including gn_check errors in chromium_src

* Exclude ai_chat Jest tests when not enabled
2025-11-11 11:20:34 -05:00
Douglas Daniel e8deaf99af [AI Chat] [Content Agent]: First use Warning (#32077)
Will now display a Warning before every new Content Agent conversation
2025-10-29 10:02:23 -05:00
Gaetano Checinski ade2e98361 detect what affected tests for webpacked projects - adds ts folders as data (#31254)
extends the transpile_web_ui.py to assert that the source roots provided via imports_from are complete.
The purpose of this is to improve the gn analyze functionality to be able to infer which tests need to run based on filechanges alone.
2025-10-28 07:34:11 +00:00
Aleksei Khoroshilov 67b86db746 Enable rustfmt. (#31974) 2025-10-24 16:34:57 +07:00
Szilard Szaloki d4083acd77 Fix Account WebUI missing color change listener. (#31832) 2025-10-15 17:59:39 -05:00
Jay Harris bf90c9eecb [Nala]: Rename web_components.ts to initialize_bundle.ts (#31751) 2025-10-13 10:04:09 +01:00
Brian R. BondyandBrian Clifton 868687478d Add Brave Origin Settings UI (#31677)
* Add Settings UI for Brave Origin

Adds the user interface components for Brave Origin settings,
including toggles, strings, and icons for managing various Brave features.

* Use Brave Origin handler API in settings UI

* Review comments

---------

Co-authored-by: Brian Clifton <brian@clifton.me>
2025-10-10 13:49:33 -04:00
Jay Harris 40dcee8e6f [webpack]: Default output_module=true for new WebUIs (#31700) 2025-10-10 05:36:22 +01:00
Jay Harris 9747f4ff4b [AI Chat]: Add UI for attaching bookmarks to conversations (#31610) 2025-10-10 08:55:48 +13:00
Jay Harris ef1053df03 [Nala]: Support dynamically updating the theme on upstream WebUI pages (#31540)
* [Nala]: Allow themes to update dynamically

* [AI Chat]: Don't load the ColorChangeUpdater on Android

* Use runtime detection instead of compile time
2025-10-09 00:54:24 +01:00
Jay Harris 99783f144e [webpack]: output_module=true implies no_iife=true (#31695) 2025-10-09 10:18:13 +13:00
Jay Harris f54055794c [Nala]: Fix scheme relative loading of variables (#31221) 2025-09-17 09:29:07 +12:00
Jay Harris 3dcc8f26dd [WebUI]: Remove unneeded overrides (#31140) 2025-09-15 07:46:03 +09:00
Szilard Szaloki 5d21436331 [iOS] Replace dynamic nala.css with default theme (#31081) 2025-09-08 15:21:46 +09:00
Agustín Ruiz 3303f7bee6 [Settings]: Reduce spacing between menu items (#31020)
* tighten menu

* fix about styles
2025-09-03 20:39:01 -03:00
Jay Harris f4b2fa6f19 [Nala]: Dynamic theming of WebUIs (#30567) 2025-08-28 09:02:34 +12:00
Sangwoo Ko 4b0521b56b [Brave Midnight] Add Brave Midnight (Darker) theme feature and pref (#30520)
* Add Brave Midnight (Darker) theme feature

This commit introduces the Brave Midnight theme, a darker variant of the
existing dark theme, providing users with enhanced customization options
for their browsing experience.

Key changes:
* Add feature flag `kBraveMidnightTheme` to control theme availability
* Create new preference `kBraveDarkerMode` to store user's theme choice
* Implement UI toggle in Customize Chrome side panel for theme switching
* Add Mojo interface methods for theme state management

Technical implementation:
- Created `browser/ui/color/features.{cc,h}` for feature flag definition
- Added feature flag to `about_flags.cc` for experimental access
- Registered preference in `brave_profile_prefs.cc` when feature is enabled
- Extended Customize Chrome UI with `DarkerThemeToggle` component
- Added Mojo interface methods `GetUseDarkerTheme`/`SetUseDarkerTheme`

The feature is disabled by default and can be enabled via the
`brave-midnight-theme` flag in brave://flags. When enabled, users can
toggle the darker theme through the Customize Chrome side panel.
2025-08-26 08:58:43 +09:00
Brian R. Bondy e735d32c78 Leo image attachment support via drag and drop (#30426)
* Leo image attachment support via drag and drop

The main interface handles file processing while the untrusted iframe only detects drag events

* Address review comments

* Implement review comments (Jay)

* DragOverlay props to use useConversationContext
2025-08-07 12:53:21 -04:00
Ste 78dcf585d9 fix(gemma): Add icon to build (#30525) 2025-08-07 17:18:50 +01:00
Pete Miller df3c9a7a8f AI Chat: Create a semi-built-in Profile for agentic features (#30285)
* AI Chat: Create a semi-built-in Profile for agentic features

For now, these features will only be useable in this profile. The purpose is for users and team members to experiment with these features, isolated from their regular browser context with existing site authentication. Whilst these features might evenutally be usable in a user's main profile under isolated storage (a built-in Container), this allows us to decouple these features from that behavior being implemented, as well as try out the separate Profile experience.

- Flag for whether the agentic behavior and the separate profile is enabled
- UI for the button in the AI Chat WebUI that will launch the profile
- Profile creation params, theme, and behavior:
  - Doesn't cause the profile picker to be shown on browser startup

For subsequent PRs:
- A separate and basic NTP with messaging
- Content agent features
2025-08-06 07:08:14 -07:00
Agustín Ruiz be7082653f Increase maximum amount of custom images to 48 - Update Settings top bar design (#30286)
* Increase maximum amount of custom images to 48

* Update Settings top navigation to match latest designs

* Use correct tokens

* Update styles to use the right tokens

* Updated styling of top bar

* remove shadow from active state
2025-07-31 08:04:12 -03:00
Jocelyn Liu 3a63d15502 [Leo] Support user customization and memory (#30054)
feat(Leo): Support user customization and memory

- Add new preferences for user customization (a dict with name, job, tone,
  other) and memory (a list of user memories)
- Add UserMemory event and the function to create it in conversation
  API engine consumer using values from added preferences
- Settings UI to manage these prefs
- Unit tests and l10n strings

The memory feature allows Leo to retain user-specific information
across sessions, enhancing personalization and creating more relevant
interactions.

1. User Customization Storage: Users can provide their name, job,
   preferred tone, and additional preferences through the settings UI.
   These are stored as user preferences and persist across browser
   sessions.

2. Memory Collection: Users can add, edit, and delete specific memories
   through the memory management interface. These memories are stored
   as a list in user preferences.

3. Conversation Integration: A UserMemory event consists of data from
   user customization and memory preferences would be added into Leo
   conversation requests if user customization or user memory feature
   preference is enabled with non-empty customization data or memories.

4. Personalized Responses: The AI engine receives this memory context
   and can tailor responses based on:
   - How the user prefers to be addressed (name)
   - Their professional context (job)
   - Their preferred communication style (tone)
   - Specific memories and preferences they've shared

5. Memory Management: Users have full control over their memories
   through the settings UI, including:
   - Adding new memories with custom text
   - Editing existing memories
   - Deleting individual memories
   - Clearing all memories at once
   - Enabling/disabling the memory feature entirely

6. Privacy and Control:
   - All memory data is stored locally in user preferences
   - Users can disable memory features at any time via Settings UI
   - Memories can be individually deleted or completely cleared
2025-07-28 13:01:30 -07:00
Simon HongandJay Harris 59f23a3a21 Added smart proxy routing option to vpn panel (#30029)
When smart proxy option is enabled via vpn panel settings,
smart proxy icon is added to region entry in main panel and region selection panel.
This PR enables this option by default.

---------

Co-authored-by: Jay Harris <jay.harris@outlook.co.nz>
2025-07-21 13:04:41 +09:00