* [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.
Othewise we get this error:
../../chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java:9: error: cannot find symbol
import static org.chromium.ui.R.drawable.gshield_colorful;
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/19b12eb71387041c442d1bf1dc9c98366f255ab7
commit 19b12eb71387041c442d1bf1dc9c98366f255ab7
Author: Liz Prucka <lizprucka@google.com>
Date: Wed Feb 11 08:16:24 2026 -0800
Upstreaming Clank OsAdditionalSecurityPermissionProviderImpl
Upstreaming Advanced Protection provider class in Chrome components to
allow for implementation across Chrome components and use in public apk.
Separating browser messenger components in
OsAdditionalSecurityPermissionProviderImpl.java to allow for inclusion
of only core features in WebView.
Updated AdvancedProtectionMediatorTest to use application context to
fix resource loading errors in mock.
Removed IDS_ADVANCED_PROTECTION_MESSAGE_DISABLE_TITLE as it is no longer
used.
Created placeholder translation templates for new safe_browsing [grd
file](https://chromium.googlesource.com/website/+/HEAD/site/developers/design-documents/ui-localization/index.md#add-a-new-grd_p_file).
Bug: 477677919
Change-Id: I4944734152979ee99e2a577b0d36af12b968fc2e
Bypass-Check-License: Moved OsAdditionalSecurityProvider files
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7486643
Reviewed-by: Ravjit Uppal <ravjit@chromium.org>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Liz Prucka <lizprucka@google.com>
Cr-Commit-Position: refs/heads/main@{#1583249}
* 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
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.
* 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.
This moves files that are directly copied over chromium resources to a separate directory where they are checked to make sure that there is a corresponding upstream file. This is the first step in a series of changes to clean up branding.js https://github.com/brave/brave-browser/issues/51969
* 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>
* 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
* 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
* 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
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.
Fixed by fetching color provider after changing color scheme.
Otherwise, cached one refers previous mode's color provider.
TEST=MdTextButtonTest.ButtonColorsTest
* 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>
* 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.
* 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