Commit Graph
75256 Commits
Author SHA1 Message Date
Serg 461d66e02c [Android] Shows Brave Wallet UI based on policy. (#33630)
* [Android] Shows Brave Wallet UI based on policy.

Resolves: https://github.com/brave/brave-browser/issues/52496
2026-02-04 10:08:30 -05:00
Mihai PLESA bc36878601 Revert "[Nala]: Replace app.global.scss with Nala variables" (#33659)
Revert "[Nala]: Replace app.global.scss with Nala variables (#33592)"

This reverts commit 305eeb1606.
2026-02-04 14:36:07 +00:00
Douglas Daniel 25b2c8a2a9 [Wallet]: Update Token Icons with Empty URL Paths (#33639)
Will now attempt to update a tokens Icon url path if it is an empty string.
2026-02-04 08:09:40 -06:00
Douglas Daniel c31d9786e9 [AI Chat]: Include Citation URLs in Chat Copy (#33623)
Will now include Citation urls when copying the Conversation or Response to clipboard
2026-02-04 08:08:53 -06:00
Douglas Daniel 76a59dc61c [AI Chat]: Fix Consecutive Citations (#33620)
Fixes a bug where consecutive citations were not being rendered separately.
2026-02-04 08:08:03 -06:00
cdesouza-chromium b79529dd84 [CodeHealth] Use base::DictValue/base::ListValue - Part IV (#33618)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Issue: https://github.com/brave/brave-browser/issues/52435
2026-02-04 10:04:45 -03:00
Mikhail c8b03fe420 Add LSAN supressions (#33642)
The PR adds brave-specific LSAN suppression file.
It also suppresses some of the massive leaks.
2026-02-04 16:49:17 +04:00
brave-builds a998631e5d 1.88.98 2026-02-04 12:33:08 +00:00
brave-builds 544cba7d5c 1.88.97 2026-02-04 12:02:50 +00:00
Anton Paymyshev b0c127eef8 Allow null in some fields for eth_sendTransaction (#33564) 2026-02-04 18:02:58 +07:00
vadims 2c25da29dc Browser test fails depending on execution order (#33601)
Removed the feature flag check that was preventing PSST website settings
registration.

Resolves: https://github.com/brave/brave-browser/issues/52490
---------

Signed-off-by: Vadym Struts <vstruts@brave.com>
2026-02-04 10:42:06 +01:00
samartnik 9bd201465c [cr145] Update patches exclusions with new Android drawables (#33624)
Update patches exclusions with new Android drawables
2026-02-04 08:12:30 +00:00
StephenHeaps 97ee3031aa [iOS] Fix version comparison for updating Adblock Engine resources (#33616)
* Fix bad version comparison for updating Adblock Engine resources.

* Add resources info version comparison unit tests.
2026-02-04 04:49:19 +00:00
Anthony Tseng eabd712aee Fix transpile_web_ui hardcoded target name which causes (#33643)
ERROR at //brave/components/common/rust_to_wasm.gni:18:3: Duplicate definition.
  action_foreach(target_name) {
  ^----------------------------
The item
  //brave/ui/webui/resources:build_rust_packages
was already defined.
See //brave/components/common/rust_to_wasm.gni:18:3: Previous definition:
  action_foreach(target_name) {
  ^----------------------------
2026-02-04 03:38:34 +00:00
Nuo Xu 7ec875adab [iOS][Wallet] Start correctly parsing Cardano tx that is created via webui (#33529) 2026-02-03 21:15:25 -05:00
Jocelyn Liu 6e27d8be77 [AI Chat] Fix flaky RewriteInPlace_ContentEditable test (#33632)
Fix flaky RewriteInPlace_ContentEditable test

Two issues were causing flakiness:

1. Focus issue: For contenteditable elements, the test was selecting
   text without focusing the element first. This caused params_.is_editable
   to sometimes be false, preventing GenerateRewriteSuggestion from being
   called. Fixed by adding element.focus() before selection in rewrite.html.

2. DOM timing issue: The Replace() IPC updates the DOM asynchronously,
   but the test was checking immediately after the completion callback.
   Fixed by using a MutationObserver to wait for the DOM to update to
   the expected value before verifying.

   The MutationObserver pattern follows the approach used in Chromium's
   service_worker_internals_ui_browsertest.cc.

Resolves brave/brave-browser#52417
2026-02-04 02:00:01 +00:00
Brian Johnson fbb94a1138 Add BraveGlobalFeatures subclass for upstream GlobalFeatures (#33555)
Create Brave subclass for GlobalFeatures
See https://chromium.googlesource.com/chromium/src/+/main/docs/chrome_browser_design_principles.md#architecture
2026-02-04 01:39:32 +00:00
samartnik cfb1559c8f [Android] Fix for home icon on tablets (#33644) 2026-02-03 20:19:50 -05:00
Terry ManceyandAleksei Seren 36f60953a5 Implement SERP detection (Desktop/Android) (#33473)
This change wires SERP detection into browser navigation events on
Desktop and Android, identifying user-initiated navigations to search
engine results pages and incrementing the appropriate aggregated
counters. Navigations that are not user-driven or do not represent
meaningful page visits are excluded, ensuring metrics reflect
intentional SERP access without collecting sensitive browsing data.

This is part of https://github.com/brave/brave-browser/issues/52104.

Co-authored-by: Aleksei Seren <aseren@brave.com>
2026-02-04 00:39:13 +00:00
Jay Harris 305eeb1606 [Nala]: Replace app.global.scss with Nala variables (#33592) 2026-02-04 00:38:39 +00:00
brave-builds 451c3c77b3 1.88.96 2026-02-04 00:03:22 +00:00
cdesouza-chromium 40784e1cbd [CodeHealth] Use base::DictValue/base::ListValue - Part II (#33615)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Issue: https://github.com/brave/brave-browser/issues/52435
2026-02-03 20:17:33 -03:00
Jay Harris 728a2d763e [Nala]: Remove $web-components/select (#33590) 2026-02-03 23:05:56 +00:00
Aleksei Seren 42a4d9fc16 [ABOM] Send ABOM status with WebCompat report (#33393)
The adds ability to send ABOM status with WebCompat
report. If ABOM feature is disabled or current locale is
not supported then ABOM status is not sent.
2026-02-03 18:00:32 -05:00
Kevin Smith 93c95a9366 [NTP] Fix React key prop warning in clock component (#33563) 2026-02-03 17:19:55 -05:00
StephenHeaps 0bc0a349e3 [iOS] Fix incorrect scriptlets exceptions filtering (#33586)
Fix incorrect scriptlets exceptions filtering.
Bug only applied to custom file rules, and custom filter lists (added via URL)
2026-02-03 16:39:27 -05:00
Kevin Smith ff09cf4f8d [NTP] Use outlined tab icon for dark themes (#33573) 2026-02-03 16:34:53 -05:00
brave-builds d246802d8c 1.88.95 2026-02-03 21:13:06 +00:00
cdesouza-chromium a22ede9b76 [CodeHealth] Use base::DictValue/base::ListValue - Part III (#33617)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Issue: https://github.com/brave/brave-browser/issues/52435
2026-02-03 17:58:00 -03:00
Netzenbot 030ffcd6c2 Fix intermittent test BraveSearchTestEnabled.DefaultAPIVisibleKnownHost (#33596)
Replace unreliable TemplateURL existence check with proper async waiting.

Previous failed attempts:
1. JavaScript async polling with setTimeout - failed intermittently
2. JavaScript setTimeout(1200) hardcoded delay - failed intermittently
3. C++ RunUntil waiting for TemplateURL to exist, then calling API once -
   failed because TemplateURL existing doesn't guarantee all conditions in
   CanSetDefaultSearchProvider are met (e.g., CanMakeDefault may still be false)

Root cause: The API checks multiple async conditions beyond just TemplateURL
existence. Waiting for an intermediate condition (TemplateURL exists) doesn't
guarantee the API will return true.

Solution: Poll the actual JavaScript API from C++ using manual polling loop
with NonBlockingDelay until it returns true. This ensures all preconditions
including async initialization are complete. Avoids nested run loops by not
using EvalJs inside RunUntil.

Verified with 15 consecutive successful test runs.
2026-02-03 15:13:26 -05:00
Netzenbot 78a2daeef9 Disable flaky Chromium test BrowserContextDestructionVsCookieRemoval (#33619)
The test fails intermittently due to a race condition between setting
cookies via JavaScript (document.cookie) and querying them via backend
SiteDataCountingHelper. Chromium has already disabled this test on
Windows (crbug.com/413259587). Brave has no modifications to this code.

Resolves https://github.com/brave/brave-browser/issues/52489
2026-02-03 14:50:49 -05:00
Netzenbot b3266324bc Fix flaky test: AIChatUIPageHandlerBrowserTest.ProcessImageFile (#33580)
The test was failing intermittently on macOS arm64 CI because the
page handler took longer than the default 1-second RunUntil timeout
to be created. The page handler is created when the frontend binds
to the mojo interface, which can take longer on slower machines.

Extend the timeout to 30 seconds using ScopedRunLoopTimeout.
2026-02-03 14:47:03 -05:00
Jay Harris bcd8f72b3d [Nala]: Remove $web-components/icons (#33591) 2026-02-04 08:43:51 +13:00
Christian Mazakas eb1b43416a [Polkadot] [Wallet] add rpc call to get estimated extrinsic fee (#33412)
Resolves brave/brave-browser#51486

We skip the call to payment_queryInfo directly because it returns the fee amount as a JSON string. Instead, the polkadot-js implementation seems to call directly into the runtime's wasm modules so we opt for the same path, using the state_call RPC method and then directly accessing the TransactionPaymentApi via the request's params field.

Example RPC calls:

curl.exe ^
  -H "Content-Type: application/json"  ^
  -d "{\"id\":18,\"jsonrpc\":\"2.0\",\"method\":\"state_call\",\"params\":[\"TransactionPaymentApi_query_info\",\"3d02840052707850d9298f5dfb0a3e5b23fcca39ea286c6def2db5716c996fb39db6477c010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010155034c00000400008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a486641f10291000000\"]}" ^
  https://westend-rpc.polkadot.io 

{"jsonrpc":"2.0","id":18,"result":"0x82ab80766da800dc8df1b5030000000000000000000000"}

vs the stringified version:

curl.exe   ^
   -H "Content-Type: application/json"^
   -d "{\"id\":10,\"jsonrpc\":\"2.0\",\"method\":\"payment_queryInfo\",\"params\":[\"3d02840052707850d9298f5dfb0a3e5b23fcca39ea286c6def2db5716c996fb39db6477c010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010155034c00000400008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a486641f102\"]}" ^
   https://westend-rpc.polkadot.io 

{"jsonrpc":"2.0","id":10,"result":{"weight":{"ref_time":497036000,"proof_size":10779},"class":"normal","partialFee":"15937408476"}}

This lets us avoid having to parse a decimal string into a uint128_t.

Note that extrinsic we pass for fee estimates requires a trailing length in little endian bytes.
2026-02-03 11:32:48 -08:00
Mikhail 2e55d71b2a Fix ASAN & LSAN after cr145 (#33571)
The PRs fixes compilation and leak issues for ASAN builds:
* Includes added to fix issue with WrapUnique redefinition.
* an unused var warning is fixed.
* (LSAN) a false-positive shutdown memory leak in adblock is annotated.
2026-02-03 23:26:42 +04:00
Jay Harris c29f1247b7 [omnibox]: Remove NOTREACHED() which isn't relevant to Brave (#33582) 2026-02-04 08:23:36 +13:00
Kyle Hickinson 781b5787f5 [iOS] [AI Chat] Use citations based on WebUI feature flag (#33575) 2026-02-03 14:12:50 -05:00
Kevin Smith d3d3fa0744 [Rewards] Add a buildflag and conditionally disable Rewards UI (#33391) 2026-02-03 13:51:06 -05:00
Max Karolinskiy 61e997c83d Make upstream test override more resilient. (#33570)
Automate calculation of extra permission types in the test override,
so that we don't have to update it manully each time we add a new type.
2026-02-03 09:58:49 -08:00
Nuo Xu 30f0c43cd8 [iOS][Wallet] Expand zcash feature flag options (#33583)
expand zcash feature flag options
2026-02-03 12:38:26 -05:00
brave-builds 03d1b5014f 1.88.94 2026-02-03 16:03:12 +00:00
Netzenbot 974da9dc0f Disable flaky test PluginResponseInterceptorURLLoaderThrottleBrowserTest.DownloadPdf (#33598)
Disable flaky MSAN test PluginResponseInterceptorURLLoaderThrottleBrowserTest.DownloadPdf

The test fails intermittently in Memory Sanitizer (MSAN) builds due to
use-of-uninitialized-value in system library libblkid when the GTK file
chooser dialog initializes. The stack trace shows the error originates
in blkid_parse_tag_string called during g_volume_monitor_get when
gtk_file_chooser_dialog_new is invoked for the PDF download.

This is an issue with the MSAN instrumented glib/gtk libraries, not a
bug in browser code. Brave doesn't modify the plugin response
interceptor code.

Resolves brave/brave-browser#52434
2026-02-03 10:53:51 -05:00
Christian Mazakas 42182b8ee8 [Polkadot] [Wallet] add transfer_allow_death extrinsic signing (#33318)
Resolves brave/brave-browser#51481

This PR relocates some important constants so that they can be visible to the
KeyringService (for the sake of signing binary blogs using the appropriate
keyring for the account).

We also update the PolkadotKerying class to support deterministic RNG so
signatures are consistent.

We finally add an extrinsic signature task which asynchronously fetches all the
required data from the RPC nodes and then assembles the final blob of bytes.
Tests should cover the error paths for each potentially-failed RPC call.
2026-02-03 07:34:54 -08:00
Kyle Hickinson c710b10641 [iOS] Remove implementation of RunOpenPanel from Brave's web client (#33565)
These methods are implemented by a Chrome tab helper that isn't bridged to CWVWebView, so for now we can remove it. This fixes a crash if a user happened to enable the `kIOSCustomFileUploadMenu` feature flag from `brave://flags` which is disabled by default.
2026-02-03 09:47:19 -05:00
Douglas Daniel 3106fe2f08 [Wallet]: Clear Backup Banner on Restore for iOS (#33577)
Should now clear and hide the Backup Wallet Now banner after restoring your wallet on iOS.
2026-02-03 08:42:46 -06:00
Kyle Hickinson 17a34c9bf5 [iOS] [AI Chat] Move WebUI feature flag into component (#33572) 2026-02-03 09:42:19 -05:00
Aleksei Khoroshilov 419b6ff3dc Siso doesn't handle symlinks in deps well. Fix our build in this area. (#33600) 2026-02-03 19:44:03 +07:00
Netzenbot 79cc97c87f Fix test: AIChatConversationTaskBrowserTest.TaskPauseResumeActions (#33517)
Fix intermittent test failure caused by race condition between
tool execution completion and pause button click timing.

The original test used the real navigation tool which executes
asynchronously. If navigation completed before the pause button
was clicked, GenerateAssistantResponse would be called, violating
the Times(0) expectation.

Fix by using a MockTool that captures its callback, allowing the
test to control exactly when the tool execution completes. The
tool now completes after pause is clicked, verifying that
generation is correctly skipped while paused.

Key changes:
- Replace navigation tool with MockTool for controlled timing
- Capture tool callback and complete it after pause
- Verify generation is skipped while in paused state
- Remove tab-related checks that don't apply with mock tool

Resolves brave/brave-browser#51130
2026-02-03 07:41:16 -05:00
Netzenbot 12b1a57c12 Disable pkey pool PartitionAllocTest.ZeroFill tests (#33581)
The ZeroFill tests with pkey pool parameters (/2 and /3) exhaust the
256MB ThreadIsolatedPool. The test allocates up to 250 random-sized
blocks simultaneously (up to 2MB each), which can exceed the pool
capacity. This is an upstream Chromium test limitation - the test works
with the regular GiB-sized pool but not the smaller pkey pool.

Resolves brave/brave-browser#52385
2026-02-03 07:38:32 -05:00
brave-builds 303d58f7dd 1.88.93 2026-02-03 12:33:09 +00:00