Commit Graph
76803 Commits
Author SHA1 Message Date
Kyle Hickinson 38f8af772c Improve iOS simulator wipe and boot reliability in test runners (#35111)
This adds patches that bring in the changes from a cr148 CL to hopefully improve the issue in CI where simulators hang when tearing down.

Chromium change:

commit 39a1c1938c9f9c3bcf36f015172600018169b6db
Author: Yue She <yueshe@google.com>
Date:   Wed Mar 18 11:57:28 2026 -0700

    Improve iOS simulator wipe and boot reliability in test runners

    - Reorders simulator teardown steps: `kill_simulators` is now invoked
    after wiping/erasing data instead of before. This ensures that any stray processes or simulators>
    procedures are properly cleaned up.
    - Adds a retry mechanism for simulator pre-booting.

    Bug: 441038354
    Change-Id: I8f94649d195a3804d9392dafdcde6dbd2c88ec88
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7676077
    Reviewed-by: Will Yeager <wyeager@google.com>
    Commit-Queue: Yue She <yueshe@google.com>
    Cr-Commit-Position: refs/heads/main@{#1601444}
2026-03-31 11:32:21 -04:00
Netzenbot 70a318628b Disable flaky Chromium test WorkerTest.WorkerInBackgroundPage (#35095)
This is an upstream Chromium test (chrome/browser/extensions/worker_apitest.cc)
that intermittently times out when the last crossOriginRedirectTest
(SharedWorker with module type) fails to fire its onerror handler.

Chromium upstream flake rate: 2.4% over 30 days (LUCI Analysis).
Already disabled on Windows ASAN (crbug.com/431290255).

Brave has chromium_src overrides for worker content settings and fetch
context, but they don't touch the worker script redirect/loading path
that's failing. The root cause is upstream timing sensitivity in
SharedWorker module cross-origin redirect error propagation.

Resolves https://github.com/brave/brave-browser/issues/54061
2026-03-31 09:14:25 -04:00
brave-builds bec76f9847 1.90.87 2026-03-31 12:33:00 +00:00
brave-builds a97a1a9106 1.90.86 2026-03-31 12:03:17 +00:00
Aleksei Khoroshilov 7371c54760 Add used containers tracking. (#34705)
Add used containers tracking and make them available via `GetRuntimeContainerById`.

The PR does not include storage cleanup and pref cleanup. This is intentional - the cleanup logic will be landed separately.
2026-03-31 17:31:01 +07:00
Pete Miller c5d27921bf Update Web Discovery Project dependency (#35094)
Fix dependency audit issues
2026-03-31 10:01:13 +01:00
Anton Lazarev 53563bd36a fix incorrectly-colored Cancel button in webcompat reporter (#35027) 2026-03-31 09:44:25 +01:00
Brian Johnson cf59834725 Only call AdBlockService on UI thread (#35063)
Add wrapper for the two AdBlockEngines so the AdBlockService can be restricted to UI thread only
2026-03-30 18:53:01 -07:00
Jay Harris 6992564f36 [AI Chat]: Share animation via CSS variables (#34351) 2026-03-31 03:47:38 +02:00
Terry Mancey 4c3353d5a0 [ads] Remove GetTableName in database code (#35092) 2026-03-31 03:14:19 +02:00
brave-builds 3c268eeb14 1.90.85 2026-03-31 00:03:17 +00:00
StephenHeaps a3d6c1e521 [iOS] Fix duplicate string key in Clear Private Data (#35088)
Fix duplicate string key in Clear Private Data.
2026-03-31 00:52:35 +02:00
Szilard Szaloki 7f0bf229bf Account: limit password fields to 8192 characters (#35072) 2026-03-31 00:47:02 +02:00
Pete Miller b255421a9a fix package-lock format (#35087) 2026-03-30 23:44:59 +01:00
Terry Mancey 5c81465346 Fix SERP metrics search count being incorrect at day rollover (#35082)
In a rare edge case where search counts are queried at the exact moment
the clock crosses midnight, the start and end of the time range could be
computed from different points in time, causing both the stale period
and yesterday counts to be incorrect. The fix captures a single time
snapshot up front so both boundaries are always consistent.
2026-03-30 23:56:12 +02:00
Serg 841cad239e [Android] Defer bottom toolbar ViewStub inflation to fix startup ANR (#35083)
Move the bottom controls setup (ViewStub inflation, coordinator
creation, native initialization) from synchronous execution during
finishNativeInitialization to a deferred UI task via PostTask. The
synchronous inflation was triggering HardwareRenderer.nNotifyExpensiveFrame
which blocked the main thread waiting for the GPU, causing ANR on
devices under GPU pressure during startup.

This is safe because all consumers of mBottomControlsCoordinatorSupplier
and mTabGroupUiOneshotSupplier already null-check before use, and the
bottom toolbar starts with visibility="gone" making the one-frame delay
imperceptible. The task is wrapped with mCallbackController.makeCancelable()
to auto-cancel during Activity teardown.

Resolves: https://github.com/brave/brave-browser/issues/54077
2026-03-30 17:55:32 -04:00
Kyle Hickinson 386f292095 [iOS] Add Brave Search Ads Result JavaScriptFeature (#35016)
This adds a JavaScriptFeature based on `BraveSearchResultAdScript.js` that allows us to fetch the ads creatives from the Brave Search page. This differs from the original script in that it doesn't message the app at all and instead exposes an API which avoids having to do origin checks in the script itself.
2026-03-30 17:00:12 -04:00
Terry Mancey e9a26e6dc1 [ads] Do not suppress Brave ads if audio is muted while viewing a video (#35079)
Add MediaMutedStatusChanged to handle runtime mute and unmute
transitions during video playback, and check has_audio in
MediaStartedPlaying to ignore media that starts muted. On iOS, update
ads_media_reporting.ts and AdsMediaReportingScript.js to check
video.muted and listen for volumechange events.
2026-03-30 15:50:19 -05:00
samartnik 41d331b192 [Android] Fix for all bookmarks icon (#35076) 2026-03-30 16:01:06 -04:00
Kyle Hickinson 0343c9fb7d [iOS] Consolidate Brave Search functionality into a tab helper (#35024)
This shifts the Brave Search related logic that existed in several locations into a tab helper in preparation to support Brave Search related JavaScriptFeatures
2026-03-30 15:40:29 -04:00
Kyle Hickinson 48f53ddd33 [iOS] Add Night Mode JavaScriptFeature (#34968)
This adds a JavaScriptFeature for injecting the standard DarkReader. At the moment this does not inject any additional TypeScript to expose an API interface due to Chromium limitations (Chromium JS can only execute from `WebFrame` but `WebFrame`s are collected asynchronously and isn't ready in time to execute `DarkReader.enable` before the page begins to paint causing a white flash)
2026-03-30 15:40:06 -04:00
Kyle Hickinson 565872c5ed [iOS] Expose TabObserver method for handling same document commits (#35043)
This will be used to remove `ReadyStateScript.js` in a future PR
2026-03-30 14:53:54 -04:00
Terry Mancey 4876099b5a [ads][CodeHealth] Fix -Wexit-time-destructors (#35062)
This is a violation that has been caught with -Wexit-time-destructors.
2026-03-30 13:50:17 -05:00
Mihai PLESA fc23a9d03b override yaml (#35080) 2026-03-30 19:38:55 +01:00
Kyle Hickinson 1882d81bf8 [iOS] Integrate Chromium favicon state observation (#34936)
Moves favicon state ownership to `FaviconTabHelper` and implements the observations required to handle favicons when the `UseProfileWebViewConfiguration` feature flag is enabled.
2026-03-30 14:36:04 -04:00
Kyle Hickinson b14cc824d7 [iOS] Don't create private WebKit config with profile configs enabled (#35042)
Follow-up fix for #34329 where a WebKit configuration was being created when the final private tab was removed
2026-03-30 17:44:52 +00:00
jeremytieman 9fce19b681 Added remote model fields (#35050) 2026-03-30 10:41:13 -07:00
Terry Mancey 2940a0ca23 [ads] Change NTPSponsoredImagesData::GetCreativeByInstanceId to use a map-based lookup (#35066)
Remove the outdated TODO in GetCreativeByInstanceId. The dataset is
small, so the current linear scan is sufficient and adding a map-based
lookup would introduce unnecessary complexity.
2026-03-30 12:08:37 -05:00
Kyle Hickinson b603170f2f [iOS] Expose observations for Chromium's favicon JavaScriptFeature (#34911)
This adds support for handling favicon updates from `BraveWebView` by exposing the required methods into `TabObserver`.

Currently we reuse the same `BraveIOSWebFaviconDriver` that is wrapped by `FaviconDriver` and stored in `TabBrowserData`, but hopefully in the future we can just use Chromiums `WebFaviconDriver` directly.
2026-03-30 12:21:42 -04:00
brave-builds 1cc34e95c5 1.90.84 2026-03-30 16:02:56 +00:00
Terry Mancey 9fee75062f [ads] Fix race condition where a page navigation might complete before AdHandler::OnDidFire*AdClickedEvent is triggered (#35056)
When the user clicks an ad, two things happen concurrently. The browser
opens the target URL, which triggers SiteVisit::MaybeLandOnPage on
navigation commit, and the click event is recorded to the database
asynchronously. MaybeLandOnPage bails out immediately if
last_clicked_ad_ is not set, but last_clicked_ad_ is only set inside
OnDidFire*AdClickedEvent, which is not called until the async database
write completes. On a fast connection with a CDN-served landing page,
the navigation can commit in under 100ms, well within the database
round-trip time especially on mobile, causing the page land to be
silently dropped with no retry.
2026-03-30 10:57:39 -05:00
dependabot[bot] 256021f6fa Bump bn.js (#34154)
Bumps  and [bn.js](https://github.com/indutny/bn.js). These dependencies needed to be updated together.

Updates `bn.js` from 5.2.2 to 5.2.3
- [Release notes](https://github.com/indutny/bn.js/releases)
- [Changelog](https://github.com/indutny/bn.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/indutny/bn.js/compare/v5.2.2...v5.2.3)

Updates `bn.js` from 4.12.0 to 4.12.3
- [Release notes](https://github.com/indutny/bn.js/releases)
- [Changelog](https://github.com/indutny/bn.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/indutny/bn.js/compare/v5.2.2...v5.2.3)

---
updated-dependencies:
- dependency-name: bn.js
  dependency-version: 5.2.3
  dependency-type: indirect
- dependency-name: bn.js
  dependency-version: 4.12.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 16:52:45 +01:00
Christian Mazakas 36930a88d9 [Polkadot] [Wallet] fix bad constexpr initialization (#35078)
fix bad constexpr initialization
2026-03-30 16:47:59 +01:00
dependabot[bot] 5bbcb2b445 Bump serialize-javascript and terser-webpack-plugin (#35067)
Removes [serialize-javascript](https://github.com/yahoo/serialize-javascript). It's no longer used after updating ancestor dependency [terser-webpack-plugin](https://github.com/webpack/terser-webpack-plugin). These dependencies need to be updated together.


Removes `serialize-javascript`

Updates `terser-webpack-plugin` from 5.3.16 to 5.4.0
- [Release notes](https://github.com/webpack/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/terser-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/terser-webpack-plugin/compare/v5.3.16...v5.4.0)

---
updated-dependencies:
- dependency-name: serialize-javascript
  dependency-version: 
  dependency-type: indirect
- dependency-name: terser-webpack-plugin
  dependency-version: 5.4.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 16:29:59 +01:00
cdesouza-chromium 91c247df0d [CodeHealth] Simplify RenderViewContextMenu overrides (#35048)
This PR changes how our own class derives from and replaces the Chromium
version of `RenderViewContextMenu`, to be more in line of how this is
done for other classes.

This change does away with `BraveRenderViewContextMenu`, and makes it
the defacto `RenderViewContextMenu`, rather than `RenderViewContextMenu`
being a define to the Brave class. This means that with this change
there's now only `RenderViewContextMenu` and
`RenderViewContextMenu_ChromiumImpl`.

Resolves https://github.com/brave/brave-browser/issues/54023
2026-03-30 12:03:33 -03:00
brave-builds 9d7694ea56 1.90.83 2026-03-30 13:24:38 +00:00
dependabot[bot] 2aba69a7c8 Bump brace-expansion from 1.1.12 to 1.1.13 (#35047)
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.12 to 1.1.13.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.12...v1.1.13)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 14:19:43 +01:00
Mihai PLESA 38f3969c35 bump leo (#35075) 2026-03-30 14:12:33 +01:00
brave-builds 4d65d3b6c3 1.90.82 2026-03-30 12:33:22 +00:00
brave-builds eb13ea9da0 1.90.81 2026-03-30 12:04:09 +00:00
Sangwoo Ko 8412aa62cd [Tree tabs] integrate pin/unpin with Tree tabs (#34933)
* Tree tabs: integrate pin/unpin with collection hierarchy and tab strip UI

Implement BraveTreeTabStripCollectionDelegate::PinTabs and UnpinTabs so
pinned state changes preserve tree-tab invariants: unwrap tree nodes and
promote children before moving tabs to the pinned collection; on unpin,
re-wrap single tabs and split collections in new tree nodes under the
unpinned collection and then run the normal recursive move path.

Opener behavior: when the opener is in the pinned region, do not attach a
new tab to that tree (TryAddTabToSameTreeAsOpener returns failure) so the
child stays a top-level unpinned tree node.

Group and split handling:
- MoveTabsOutOfGroup takes new_pinned_state; pinning from a grouped tab
  detaches into the pinned collection instead of only repositioning under
  the unpinned tree. Moving into a tab group while changing pinned state is
  disallowed (CHECK).
- DetachTabOutOfGroup moves tree-node children to the parent before tearing
  down a group wrapped in a tree node, so observers still see a consistent
  hierarchy.
- Split tabs pin/unpin as a unit: unwrap split-from-tree-node into pinned;
  on unpin, wrap the split in a tree node again (kSplit).

BraveTabStrip overrides SetTabData and MoveTab (virtual via tab_strip.h
macros) and clears per-tab tree-tab-node UI state when renderer data shows
a transition to pinned, fixing stale tree visuals when pinning from a group
(where there is no dedicated tree notification).

BraveTabStripModel::SetSplitPinnedImplForTesting exercises split pin state
in browser
2026-03-30 16:33:27 +07:00
brave-builds 8558620c66 1.90.80 2026-03-30 00:03:38 +00:00
Brian Johnson ca88159908 Fix adblock engine use on wrong thread (#35060)
Ensure adblock engine is only called on the task runner sequence
2026-03-29 12:55:11 -07:00
Terry Mancey 03ae45d8b7 [ads] Disallow brave://[rewards|wallet|sync]?x=y paths (#35053) 2026-03-28 18:57:05 +01:00
Terry Mancey 79afb0b147 [ads] Rename brave_ads::mojom::Flags to CommandLineSwitches (#35054)
brave_ads::mojom::Flags was renamed to brave_ads::mojom::CommandLineSwitches
(and associated files/folders) because the name Flags is easily confused
with build flags (e.g. is_official_build, is_debug). These fields
represent runtime command-line switch state, so CommandLineSwitches
better reflects their purpose.

No-Stable-Mojom-Checks: true
2026-03-28 18:02:22 +01:00
Terry Mancey 93c7623423 [ads] Fix backoff timer (#35045)
Rewrites BackoffTimer to replace the bit-shift counter approach with a
simpler std::optional<base::TimeDelta> that tracks the previous delay
and doubles it on each retry (capped at max_backoff_delay_), removing
the overflow-prevention logic that was needed to guard against shifting
past 63 bits. Also fixes Timer::StartWithPrivacy to CHECK that the
randomized delay is non-negative rather than silently clamping to 1
second. Adds unit tests for BackoffTimer, Timer, CatalogUrlRequest,
SubdivisionUrlRequest, and DatabaseMaintenance covering retry, no-retry,
and periodic fetch scheduling behavior.
2026-03-28 16:05:36 +00:00
Terry Mancey e00ec54160 [ads] url_util code health (#35052)
Move allow hosts to a flat set.
2026-03-28 16:05:20 +00:00
Eli Hini c9e8eb28b9 [iOS]Add “Add Brave to dock” onboarding step and Settings sheet (#2052) (#35022)
* Implemented add to dock onboarding stage
* Add to Dock CTA added
* new dark mode lottie file
* Added per region gate non-EU speaking

Signed-off-by: Eli Hini <8249954+EliHini@users.noreply.github.com>
2026-03-28 10:38:45 +01:00
Szilard Szaloki 6c6a106012 Account: remove required indicator from <brave-account-email-input> (#35041) 2026-03-28 08:20:42 +00:00
Szilard Szaloki be99b2e3e3 Account: use system feedback success colors for password match UI (#35059) 2026-03-28 08:20:20 +00:00