Commit Graph
77085 Commits
Author SHA1 Message Date
brave-builds 6babab0b13 1.91.37 2026-04-13 12:02:56 +00:00
Sangwoo Ko 2f5f4361c8 Allow tab activation with Ctrl+ScrollWheel when scrollable tab strip is enabled. (#35368)
* Allow tab activation with Ctrl+ScrollWheel when scrollable tab strip is enabled.

We just disabled the feature but we still want to allow the user to activate
the adjacent tab with Ctrl+ScrollWheel.

* Add test
2026-04-13 16:29:45 +07:00
brave-builds 1b384cfe39 1.91.36 2026-04-13 08:37:37 +00:00
Linh 1b40fb9139 Bump version to v1.91.35 (#35452) 2026-04-13 09:33:23 +01:00
Jay Harris 6685a5d2d6 [Shields]: Fix host display with numerical subdomain (#35446) 2026-04-13 15:17:10 +12:00
Jay Harris 6392c4336e [AI Chat]: Reland "AI Chat scroll to most recent user message" (#35447)
This reverts commit f12f9c76ed and fixes the reason for the revert
2026-04-13 05:08:50 +02:00
Pavel Beloborodov 34034c479f [Email Aliases] Limit Reached dialog (#35208)
* Updated dialogs width (as defined in Figma).
* Added strings for Limit Reached dialog.
* Added Limit Reached content.
* Limit Reached dialog integrated.
* Updated storybook.
2026-04-13 09:25:22 +07:00
Szilard Szaloki 9b419a919d Bumps Nala to HEAD. (#35445) 2026-04-13 14:16:14 +12:00
Simon Hong 3e71464ac3 Added comment to BraveAppMenu::OnMenuClosed() (#35442) 2026-04-12 09:03:17 +09:00
r0hit0303 a1c4699820 Fix failing audit deps (#35443)
This change updates the affected axios module to the [recommended](https://github.com/advisories/GHSA-fvcv-3m26-pcqx) 1.15.0 version. 

Tested the change locally via `npm run audit_deps`. 

Resolves brave/brave-browser#54412
2026-04-11 18:44:47 +02:00
Kyle Den Hartog 9d77270e4e fix: add wdp_ref and leo_ref inputs to socket-fix.yml (#35423)
Extends the brave-core socket-fix workflow to accept optional commit
hashes for web-discovery-project (DEPS) and @brave/leo (package.json).
When provided, the workflow updates these references before running
socket fix, enabling a single PR for both upstream hash bumps and
direct transitive dependency fixes. Also makes issue_link required
so brave-core PRs always close the tracking issue.
2026-04-11 19:32:16 +12:00
Aleksei Seren 6fecbef6b7 Fix use-after-free crash in BraveAppMenu::OnMenuClosed (#35436)
Prior to the current fix `AppMenu::OnMenuClosed` was called before
`menu_metrics_->RecordMenuDismiss`.
On macOS, entering full screen while the menu is open causes
`AppMenu::OnMenuClosed` call to trigger destruction of `BraveAppMenu`,
leaving `menu_metrics_` dangling by the time `RecordMenuDismiss` executes.
Reordering ensures `menu_metrics_` is accessed before `BraveAppMenu` is
destructed.
2026-04-11 06:08:19 +02:00
cdesouza-chromium 9e7e12bcd9 [brockit] Authorship reassingment (#35397)
This PR adds authorship reassingment to brockit. This feature will allow
anyone to reassing the author of any given commit in a `cr` branch. This
is important to maintain our git history closer to the reality of who
should have attribution for each change.

The basics are:

```sh
tools/cr/brockit.py reassign <commit_hash>
```

The `reassign` command creates an empty commit with a `reassing!`
prefix, similar to a simple `fixup` change. However, this is only then
picked up when running `rebase` with `--squash-minor-bumps`.

```
tools/cr/brockit.py rebase --squash-minor-bumps
```

At this point the reassign change is moved above the original change,
and the original change is then squashed into the reassign change,
resulting on a natural change of authors as the original commit is
collapsed into the reassignment one.

Notes on discussions relating to this feature design:

In this particular implementation for this PR, it is necessary to call
rebase `--squash-minor-bumps` to have the necessary
reordering/squashing dance to take place that results in the authorship
being swapped (it is perfectly possible to drop `--squash-minor-bumps`
as a requirement, and make reassignment handling integral to regular
brockit rebase but I kept it behind that flag for now for the sake of
expediency).

 - Pros: with this method, one can flag a commit for reassignment, but
   doesn't need to immediately force push the branch, as the
   reassignment only takes place once the daily rebase occurs.

 - Cons: Brockit handles the commit message readjustment that is
   necessary when squashing the original commit into the reassignment
   commit, however if brockit rebase `--squash-minor-bumps` runs into
   rebase conflicts, this breaks the editing chain, and requires the
   user to manually call `git rebase --continue` and manually fix the
   commit message for the squash. This is not a big deal as we already
   do this for the minor bumps messages whenever conflicts occur, but
   it is a break on automation flow. There could be room for something
   like `brockit rebase --continue` to be honest. The other issue is
   that we are adding extra tasks to the whole rebase thing, and
   unknown bugs could end up interacting with each other (hopefully
   won't ever be the case). Of less importance, but still of notice,
   there are particular cases I have not completely tested, like
   reassigning a bump commit (e.g. Conflict-resolved patches from
   Chromium, etc) that is supposed to be squashed when squashing bumps,
   so there could be concerns about both types of squash interacting,
   which would either require better rebase checks for these corner
   cases, or preventing users from reassigning authorship for brockit
   generated commits (both options a no biggie).

There is a different way of going about this that this PR has not
pursued: `brockit reassing` immediately rebases doing the whole
reordering/squashing. This means each call to reassign does create a
`reassign!` commit but it immediately runs an interactive rebase to
squash it with the change it is targeting.

 - Pros: no chance for conflicts during this process, which means that
   the user would never have to deal with occasionally having to edit
   the the commit message due to rebase conflicts. It also removes any
   of these concerns from brockit's rebasing code, leaving less room
   for bugs, as no squashing of fixups would be taking place.

 - Cons: An imediate `rebase --interactive` would mean partial
   rewrites of the tree, which requires force pushes to origin.

This alternative approach seemed a bit more work to implement. Later,
if preferred, we could also provide this second option with a flag
(e.g. `brockit reassign --now`) and reuse most of the implementation
details for the rebase case.

Resolves https://github.com/brave/brave-browser/issues/54151
2026-04-10 21:45:58 +01:00
Brian CliftonandShivan d7cee10cab Allow users to disable extension updates via brave://flags (#35301)
* Create a new feature for toggling extension updates

Also creates an entry on brave://flags

Fixes https://github.com/brave/brave-browser/issues/7200

* Wire up the extension update check to the feature

* Update browser/about_flags.cc

Co-authored-by: Shivan <shivankaulsahib@gmail.com>

---------

Co-authored-by: Shivan <shivankaulsahib@gmail.com>
2026-04-10 13:40:20 -07:00
Anthony Tseng b7ef1d5d4e Add page content extraction for history embeddings after Cr147 (#35130)
Use upstream page content extraction pipeline

Enable the upstream PageContentAnnotationsWebContentsObserver by:
- Overriding OptimizationGuideKeyedServiceFactory to return the service
  when kHistoryEmbeddings is enabled (even with kOptimizationHints
  disabled), so PageContentAnnotationsService can construct
- Overriding PageContentAnnotationsServiceFactory and
  PageContentExtractionServiceFactory to check kHistoryEmbeddings
  instead of upstream ShouldEnablePageContentAnnotations

The OptimizationGuideKeyedService is safe to enable because Brave
blocks remote fetching via IsUserPermittedToFetchFromRemoteOptimizationGuide
returning false.
2026-04-10 19:44:59 +02:00
Brian R. Bondy c72425ff09 [Brave Origin] Set window icon on startup dialog (#35427)
* [Brave Origin] Set window icon on startup dialog

The BraveOriginStartupView did not override any WidgetDelegate icon
methods, causing incorrect icons in taskbars/menus on Linux and macOS.

Override GetWindowAppIcon(), GetWindowIcon(), and ShouldShowWindowIcon()
to return the branded product logo (IDR_PRODUCT_LOGO_128).

* Add chrome_unscaled_resources GN dependency for window icon
2026-04-10 12:51:33 -04:00
Simone Arpe e21d548ec2 Adjust widget text gravity (#35430) 2026-04-10 18:24:08 +02:00
Serg 28138db70b [Android] Check AI Chat feature flag for Leo quick search icon (#35429)
Resolves: https://github.com/brave/brave-browser/issues/48311
2026-04-10 18:01:05 +02:00
Christian Mazakas a98a487951 [Polkadot] [Wallet] use transfer_keep_alive instead of transfer_allow_death (#35294)
Resolves brave/brave-browser#54259

Update the extrinsic generating code to use transfer_keep_alive instead of
transfer_allow_death. This only requires adding one new call index and then
using it in a few select places for extrinsic generation. Note that
transfer_allow_death and transfer_keep_alive have the same call signature so we
don't need to change the parameters we pass in.
2026-04-10 08:58:01 -07:00
Max Karolinskiy a1b5dc7889 Remove renaming of bookmarks bar to bookmarks. (#35128) 2026-04-10 11:05:50 -04:00
Vandana Malayil (a.k.a Vandana Rajan) 997556e555 on-the-fly dequantization of token embed matrix (#34665)
The token embedding matrix de-quantization process is responsible for high peak memory usage. Instead of loading and de-quantizing the entire matrix during model init, we can de-quantize only the necessary tokens during model inference. This reduces peak memory usage by a huge margin, albeit with a small increase in latency. For our intended use-case (semantic history search) this balance of memory vs latency is optimal.
2026-04-10 14:48:43 +01:00
brave-builds 4b886df765 1.91.34 2026-04-10 12:33:19 +00:00
brave-builds 9dc5b5cccf 1.91.33 2026-04-10 12:02:53 +00:00
Simone Arpe affea4cac6 Enable CheckJavaStyle on MacOS (#35401)
Allow the check on Linux and macOS

The JDK may not be available on macOS CI (upstream only checks it out on
Linux/Android). Silently skips when the binary is missing.
2026-04-10 11:12:25 +02:00
Jocelyn Liu f12f9c76ed Revert "[AI Chat]: Scroll to most recent user message (#34463)" (#35419)
This reverts commit d6ece7e281.
2026-04-10 07:38:11 +02:00
Nuo Xu ac3884f5f1 use Cardano's native token in .cardanoSendLovelace tx type (#35321)
We should use network's native token as the `fromToken` value instead of searching for the first matching coin type and chain id in the token list.
Since it may gives wrong token based on the token order.
2026-04-09 22:52:08 -04:00
Brian R. Bondy c5736c85bb Show restart banner on Brave Origin settings page when dirty (#35307)
* Show restart banner on Brave Origin settings page when dirty

Adds a restart notification bar to the Brave Origin settings page
that appears when policy values have changed since browser startup
or when a first purchase is detected mid-session.

Backend: BraveOriginService snapshots policy values at construction
and exposes NeedsRestart() via a new Mojo GetNeedsRestart() method.
A new kOriginPoliciesWereEnforced pref persists enforcement state
across sessions to reliably detect first-purchase vs existing.

Frontend: Uses Chromium's RelaunchMixin for proper restart handling,
shows a fixed-bottom banner with an Origin-specific message, and
re-checks restart state after every toggle or reset.

* Remove redundant in-class initializer for startup_was_enforcing_

The constructor always sets this from the pref, so the default is
never used.

* Fix rebase: register both kOriginPurchaseValidated and kOriginPoliciesWereEnforced

The rebase conflict resolution incorrectly replaced kOriginPurchaseValidated
with kOriginPoliciesWereEnforced, but these are separate prefs.
SetPurchased() still writes kOriginPurchaseValidated, so both must be
registered in test SetUp.
2026-04-09 22:10:17 -04:00
Szilard Szaloki a218a06304 Account: implements the /v2/verify/complete endpoint (#35406) 2026-04-10 02:39:18 +02:00
brave-builds 1118dc05c8 1.91.32 2026-04-10 00:03:47 +00:00
Anthony Tseng 094220ac3a [AI Chat] Only apply PDF file limits when text extraction fails (#35387)
Only apply PDF file limits when text extraction fails

PDFs with extracted text are sent as text content blocks, not raw
file bytes, so they don't need to be subject to the Bedrock API
limits (MAX_DOCUMENTS=5, MAX_DOCUMENT_SIZE_BYTES=4.5MB). Only
enforce these limits for raw PDFs where extraction failed or
timed out.
2026-04-10 01:17:12 +02:00
brave-builds 890b3be1ca 1.91.31 2026-04-09 22:17:42 +00:00
samartnik 05208f0893 [cr147][Android] Fix for toolbar shortcuts indexes (#35404)
All toolbar variants (upstream and Brave) are persisted to SharedPreferences as integers.
Upstream guards against shifts by using explicit numeric assignments in the header.
Brave values must do the same — if they are defined implicitly and upstream inserts a new entry above them, the whole range shifts and users lose their saved setting.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c6ef9d2f680a39f97473af883b8fc394b581b6c0

commit c6ef9d2f680a39f97473af883b8fc394b581b6c0
Author: Bhuvana Betini <bbetini@google.com>
Date:   Thu Feb 12 09:55:15 2026 -0800

    [Glic] Add CPA toolbar entrypoint

    This CL implements a baseline CPA entrypoint for Glic on Android. It
    introduces the GlicToolbarButtonController to manage UI and on-click
    handling. Also, it introduces the GlicActionProvider for future
    conditional cueing logic. The dataflow integrates Glic into the
    segmentation platform model to allow for conditional button display and
    registers the new button type in histogram metrics for tracking.

    Because the flag is not by set by native and the button is added to
    the toolbar, a Cached Flag is used to prevent NPEs for unit tests.

    In future CLs, the Glic button will have proper styling, be hooked up to
    bottom sheet, and use data from contextual_cueing_service to be
    conditionally shown.

    Bug: 475590295
    Change-Id: Ic31cd0c7ab1428abc679e330e6da86cb8531914c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7551433
    Reviewed-by: Salvador Guerrero Ramos <salg@google.com>
    Commit-Queue: Bhuvana Betini <bbetini@google.com>
    Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1584071}
2026-04-09 18:07:14 -04:00
Brian R. Bondy b9b8d1a388 Fix toolbar-height side panel minimum width for Origin builds (#35398)
In V1 mode, Brave's custom SidePanel class replaces upstream's globally
via chromium_src. This means the toolbar_height_side_panel_ (an upstream
feature) gets Brave's GetMinimumSize() returning kDefaultSidePanelWidth
(400) instead of upstream's kSidePanelDefaultContentWidth (360).

Upstream's CalculateHorizontalLayout checks whether the toolbar-height
side panel fits beside the toolbar: remainder = window_width -
toolbar_min - padding. The test sets window_width = toolbar_min + 400,
giving remainder ~392. With upstream's min of 360, 392 >= 360 passes
and the panel is clamped correctly. With Brave's 400, 392 < 400 forces
the panel into content-height mode where it gets full width unclamped.

On normal Brave builds this was masked: when the sidebar is visible, its
minimum width contribution to the browser's overall GetMinimumSize()
prevents the window from being sized small enough to trigger the issue.
PR #35233 set kShowNever for Origin builds, removing that sidebar
contribution and exposing the incompatible minimum width.

Fix by making GetMinimumSize() type-aware: toolbar-height panels use the
upstream-compatible minimum (360), content-height panels (inside the
sidebar) keep kDefaultSidePanelWidth (400).

Resolves brave/brave-browser#54206
2026-04-09 16:49:43 -04:00
Anton Lazarev 82053381e7 Add AGENTS.md file (#35409)
add AGENTS.md file
2026-04-09 13:18:38 -07:00
Serg 9afe305769 [Android] Hide BAT icon on tablet when rewards disabled by policy (#35400)
The maybeHideRewardsLayout() method controls rewards icon visibility on
tablets based on width but didn't check BraveRewardsPolicy, causing it
to override the main visibility logic that correctly hides the icon when
rewards are disabled.

Resolves: https://github.com/brave/brave-browser/issues/54358
2026-04-09 19:50:14 +02:00
Netzenbot 83c86129c1 Disable UpdateMetricsProviderBrowserTest.RunInBackground on all platforms (#35399)
Disable UpdateMetricsProviderBrowserTest.RunInBackground in cross-platform filter

Move the test from browser_tests-windows.filter to browser_tests.filter so it
is disabled on all platforms (Linux, macOS, Windows). The upstream flake affects
any platform where a previous test subprocess exits uncleanly.

Resolves brave/brave-browser#54247
2026-04-09 13:29:50 -04:00
Jocelyn Liu f6ea0d74e0 [AI Chat] Enable Conversation API V2 and iOS WebUI by default (#35298) 2026-04-09 09:17:21 -07:00
brave-builds 9069dd362c 1.91.30 2026-04-09 16:03:21 +00:00
cypt4 2881f0aca3 [Polkadot] Add polkadot metadata parsing step. (#34784)
* [Polkadot] Add polkadot metadata parsing step.
Parse polkadot SCALE encoded metadata response.
2026-04-09 17:57:03 +04:00
Aleksei Seren 5e465f82b9 Add iOS tab helper for SERP metrics recording (#35222)
The tab helper allows the SerpMetricsService to record SERP
metrics on iOS by observing navigations and classifying them as
search engine results page.
2026-04-09 08:31:07 -05:00
brave-builds 94931f425b 1.91.29 2026-04-09 12:33:18 +00:00
brave-builds 204b45ce4b 1.91.28 2026-04-09 12:03:48 +00:00
Netzenbot 46d1e5e701 Fix MetricsUtilTest.DefaultValueTest on origin builds (#35388)
The test expected GetDefaultPrefValueForMetricsReporting() to return
true for beta/dev/nightly channels, but on origin-branded builds the
function unconditionally returns false (added in 2d48fb7f59). Update
the test expectations to account for IS_BRAVE_ORIGIN_BRANDED.

Resolves brave/brave-browser#54242
2026-04-09 07:44:47 -04:00
Simon Hong 843a472188 [Cleanup] Remove deprecated sidebar separator (#35395)
Resolves - no issue as this is just simple cleanup

I think it was for separator between VT and sidebar if both are on same side when rounded corners is on.
However, it doesn't work and it's not visible at all. No one cares about it. No test.
It just adds code complexity. Let's remove. We can revisit if we want it.
2026-04-09 13:54:43 +09:00
Jocelyn Liu c4cbf52a31 [CodeHealth] [AI Chat] Fix dangling ptr in test fixtures (#35390) 2026-04-08 21:38:13 -07:00
Sangwoo Ko 9f5e4a9969 [Containers] Add 'No container' option to Container context menu (#35353)
* Add 'No container' option to Container context menu

This tells the user that a tab is not in any container. And when it's
activated, it will be opened the tab or url without a container, which
allows the user to open the tab or url from a container.

* Update max items
2026-04-09 02:56:47 +02:00
brave-builds ef21f22709 1.91.27 2026-04-09 00:03:22 +00:00
Szilard Szaloki db1c2eeb43 Account: migrate to Mojom observer for state synchronization (#35282) 2026-04-09 01:31:20 +02:00
Anthony Tseng 4251c6e458 [AI Chat] Extract FileTextExtractorBase from PdfTextExtractor (#35304)
Extract shared WebContentsDelegate overrides, WebContents creation,
temp file handling, timeout logic, and cleanup into a common base
class. PdfTextExtractor becomes a thin subclass implementing only
PDF-specific extraction via PDFDocumentHelper.

Three virtual methods are introduced for the base class pattern:
- OnDocumentReady(): called when the document is loaded and ready
  for text extraction
- DocumentOnLoadCompletedInPrimaryMainFrame(): default implementation
  calls OnDocumentReady(). PdfTextExtractor overrides this to no-op
  since it uses DidFinishLoad → TryRegisterForDocumentLoad instead.
- AdditionalUnsandboxFlags(): returns extra sandbox flags to remove
  (PdfTextExtractor returns kPlugins for MimeHandlerView)

This prepares for TextFileExtractor to reuse the same base class.
2026-04-09 00:43:55 +02:00
Agustín Ruiz 05e893cc58 Make attachment elements full-width (#35372)
* Make attachment elements full-width

Add width: 100% to .leftSide and .info in components/ai_chat/.../attachment_item/style.module.scss so attachment content can expand and align correctly; remove max-width: 400px from .attachmentChipSingle in components/ai_chat/.../input_box/style.module.scss to allow the chip to size flexibly without being clipped.

* Update style.module.scss
2026-04-08 19:37:29 -03:00