78827 Commits
Author SHA1 Message Date
cdesouza-chromium a7e89eb465 [brockit] Adding drop! command for B🚀 (#37057)
This command is a sibling to `reassign!`, in the sense that it also
creates a commit with a subcommand tag to guide a rebase event. In this
case though, the `drop!` indicates that a target commit is supposed to
be dropped during rebase.

Similar to `ressign!` handling, this type of pin can only be processed
with `--squash-minor-bumps`, and the target commit cannot be another
pinned commit.

This change is being implemented for rebase v2 only.

Bug: https://github.com/brave/brave-browser/issues/56150
2026-06-07 00:45:18 +01:00
cdesouza-chromium ad5f50fde8 [toolchain][brockit] Fixing Xcode toolchain update command (#37058)
This change updates the `update-xcode-toolchain` in brockit to work with
the index query we have now. This command will now maintain the several
task checks we have to do when bumping the toolchain.

Bug: https://github.com/brave/brave-browser/issues/55812
2026-06-07 00:42:33 +01:00
cdesouza-chromium 49edc62217 [git-cr] Adding git cr commit --fixup=reassign:hash (#37056)
This is just a shortcut for `brockit.py reassign <hash>`.
2026-06-06 23:19:07 +01:00
Aleksei Seren 5921cb8907 [ads] Refactor ApplicationStateMonitor as AdsServiceImpl member (#36841)
The singleton `ApplicationStateMonitor` caused a dangling pointer on
Linux because `BrowserCollection` could be destroyed before the
`ApplicationStateMonitor` singleton instance. To fix that the temporary
`Reset()` workaround was introduced in cr149 bump PR.
The PR changes `ApplicationStateMonitor` to be owned by
`AdsServiceImpl` eliminating browser shutdown issues cause by singletons.
2026-06-06 14:14:00 -05:00
Kevin Smith e57c174e75 [WelcomeUI] Add trusted type policy for lottie animations (#37029) 2026-06-05 20:54:03 -04:00
Kyle Hickinson 9ae2bcca11 [iOS] [Origin] Gate WebUIs on admin policies (#37041)
* [iOS] [Origin] Gate ads-internal WebUI on Brave Rewards policy
* [iOS] [Origin] Gate leo-ai WebUI on AI Chat policy
* [iOS] [Origin] Gate wallet WebUI on Brave Wallet policy
2026-06-05 19:14:08 -04:00
Pete Miller d5f26b01e3 [AI Chat] minor tab management code improvements (#36976) 2026-06-06 00:47:28 +02:00
Serg b369d9a8d9 [Android][Origin] Flush pending prefs before restart so settings survive an immediate relaunch (#37046)
Changing a setting and immediately restarting (e.g. "Restart now" on the
Brave Origin screen) could discard the change; waiting a few seconds avoided
it.

Pref writes are batched behind a timer and flushed to disk later. The Android
restart path SIGKILLs the browser process from a sibling process
(BrowserRestartActivity) with no graceful shutdown, so pending prefs are never
flushed. Whether a change survived depended on an unrelated write happening to
flush the store first, hence the intermittent, single-device reports.

Flush local_state and each loaded profile's prefs via CommitPendingWrite()
before AttemptRestart(). It is async-to-disk, a no-op when nothing is pending,
and the write is atomic.

Resolves: https://github.com/brave/brave-browser/issues/56075
2026-06-06 00:03:48 +02:00
Christian Mazakas 1fadff8cd2 [Polkadot] [Wallet] update polkadot coins to show the correct logo (#37030)
Update the Polkadot Westend coins to display the associated Polkadot logo
instead of a default icon.

We need to manually add Westend Asset Hub as a supported testnet to get it
properly display as a testnet network.
2026-06-05 13:09:57 -07:00
Christian Mazakas c017297698 [Polkadot] [Wallet] update polkadot account descriptions (#37035)
Update the displayed wallet strings to show "Polkadot Testnet" for testnet
accounts.

This is useful because we're now supporting parachains, each of which can have
their own unique names which makes the usage of "Polkadot Westend" confusing for
users.
2026-06-05 13:09:23 -07:00
bridiverbotandBribot 1d24031371 Add best practice: don't add new source files to browser/ui/BUILD.gn (#37032)
Captures the opengrep/reviewdog lint rule that flags new sources entries
in the source_set("ui") target due to //chrome/browser/ui circular
dependency risk. Adds BS-057 to build-system.md.

Co-authored-by: Bribot <bribot@agent.shared>
2026-06-05 12:57:34 -07:00
Serg ff016732ec [Android] Prompt restart when an Origin Play Store purchase is auto-restored (#37036)
On a fresh profile with a prior Play Store Origin purchase, BraveActivity
auto-restores it at startup via verifyPurchase(). This enforces the Origin
policies (e.g. disabling Brave Wallet) live in the running session, but
unlike the in-settings purchase and the native web-purchase flows it never
prompted a restart. The browser then honours the freshly enforced policy
per navigation while already-configured renderers do not, which can leave
the two out of sync (e.g. the renderer keeps injecting window.ethereum and
requests a binder the browser no longer registers).

Open the Origin settings screen when a Play Store purchase is auto-restored,
reusing the existing fetching-spinner/restart snackbar, so the user restarts
and the policies take effect cleanly at boot. The prompt fires only on the
auto-restore transition (the subscription pref is inactive when verifyPurchase
runs); the in-settings first purchase keeps its own snackbar.

Resolves: https://github.com/brave/brave-browser/issues/56078
2026-06-05 21:45:57 +02:00
Pete Miller da55cb86ca [AI Chat] Fix flaky AIChatConversationTaskBrowserTest GenerateAssistantResponse over-saturation (#36991)
[AI Chat] Fix flaky AIChatConversationTaskBrowserTest GenerateAssistantResponse over-saturation

  Problem:
  - TaskStopAction and NoUpstreamGlicAndActorButtonsContainer intermittently
    failed with "Mock function called more times than expected" on the
    GenerateAssistantResponse WillOnce expectation.

  Root cause:
  - Both tests drive the real web_page_navigator tool, which completes
    asynchronously and fires a follow-up GenerateAssistantResponse for the
    tool-result round. That call could land on an already-consumed WillOnce
    expectation when it fired during a RunUntil() pump before the next
    expectation was installed.

  Fix:
  - TaskStopAction: install the next expectation before the RunUntil(kRunning)
    pump instead of after it.
  - NoUpstreamGlicAndActorButtonsContainer: add a Times(AnyNumber()) expectation
    to absorb the follow-up response the test does not drive.
2026-06-05 12:20:57 -07:00
Brian R. Bondy 7773f04ba2 Skip AI Chat service key .env assert for Brave Origin builds (#36961)
Brave Origin builds disable AI Chat (enable_ai_chat =
!is_brave_origin_branded), so service_key_aichat is unused and should not
be required in .env.
2026-06-05 12:49:18 -04:00
Brian R. Bondy 8cbd539db8 Update best practice: wire component unit tests through components/BUILD.gn (#37026) 2026-06-05 12:33:32 -04:00
arsok 2fb1627479 [Settings] Fix Survey Panelist page back button (#36868)
Fix https://github.com/brave/brave-browser/issues/50559
2026-06-05 12:09:23 -04:00
brave-builds 8492acab83 1.93.37 2026-06-05 16:03:22 +00:00
Michael Herrmann fca585ac33 Reinstate upstream's pkg preinstall script (#36965) 2026-06-05 18:02:03 +02:00
Douglas Daniel 15c85482fe [Wallet]: Remove Old Unused Components (#37003)
Removes a bunch of old and unused components out of the Wallet /components directory. Along with their associated assets, types, strings, etc..
2026-06-05 10:27:50 -05:00
Christian Mazakas fbd4087599 [Polkadot] [Wallet] ensure chain id enables proper keyring mapping during account creation (#37001)
Make sure that creating a new account through a parachain still works.

For example, open a blank wallet and then attempt to deposit to an address
through the selected parachain. The UI will prompt the user to make a new
account for the given chain id and will subsequently fail because the keyringId
cannot be found.
2026-06-05 07:55:20 -07:00
Christian Mazakas f81beab3dd [Polkadot] [Wallet] add Westend Asset Hub to supported test networks (#36997)
We need to manually add Westend Asset Hub as a supported testnet to get it
properly display as a testnet network.
2026-06-05 07:54:48 -07:00
Terry Mancey da638da866 [ads] Change round robin NTT serving to respect campaigns priority (#36994)
Previously, round-robin filtering ran once across all ads before priority
bucketing, so a campaign that had exhausted its rotation could suppress
higher-priority campaigns from being served. This change moves the
round-robin filter inside the per-bucket loop so each priority bucket
rotates independently, preserving intended campaign priority ordering.

Pacing is also applied per bucket, after round-robin. If all ads in a
bucket are suppressed by pacing, the pipeline falls through to the next
priority bucket so lower-priority campaigns continue to backfill paced
out slots.
2026-06-05 16:35:10 +02:00
cdesouza-chromium 7fb251b2fa [toolchain] Use hash checks to install the Xcode toolchain (#36907)
This PR adds a hash constant to the Xcode toolchain script, similar to
how upstream `MAC_BINARIES_TAG` on their counterpart of this source.
With this change we check the hash sum when downloading the file to make
sure it matches the expected hash.

Prior to this change, the decision to download/extract a new SDK was
entirely based on the version of the SDK found in the destination path.
This has served us well, however is a weaker scheme for reproducibility
checks. With this change, it is being introduced a scheme, similar to
how this type of check is done in other places, where a sidecar file is
created based on the name of the toolchain to be downloaded, and that
sidecar file has a hashsum in it.

With this new verification scheme we can now detect accidental
overwrites of the toolchain, but we can also leave the door open to use
issue a new toolchain under a subversion in case of some emergency fix
for a toolchain file

Finally, this change also corrects a few things across this source that
are outdated, and do not conform to the python style guide currently
enforced in Chromium, in particular the naming convention that was being
used.

Bug: https://github.com/brave/brave-browser/issues/55812
2026-06-05 15:09:41 +01:00
Kyle Hickinson 992b068c09 [iOS] Migrate Block All Cookies preference to Chromium profile prefs (#36532)
This deprecates the Swift-side Preference for Block All Cookies and migrates it to PrefService, updating all usages and observations
2026-06-05 09:52:54 -04:00
cdesouza-chromium 8d3cd8a564 [brockit] Add update-rust-wasm-toolchain command (#37021)
This PR adds a command to `brockit` to be used to update the Rust/WASM
toolchain. This command will take care of determining which version we
should be using, and going ahead and fetching whatever is available in
the bucket, based on the available indexes.

Bug: https://github.com/brave/brave-browser/issues/55812
2026-06-05 14:35:16 +01:00
Alex b6408f71cb [VPN 2.0] Add GetLastConnectionError API to BraveVpnService (#37008)
Currently, SkusInternalsUI uses a call to the VPN connection manager
to get a last VPN error. This is relevant only to Architecture 1.0,
since in Architecture 2.0 there is no connection manager in the
browser. Hence we need to implement an implementation-agnotic API
in the BraveVpnService, to access the last VPN connection error in
SkusInternalsUI. This change introduces this new API.

Resolves https://github.com/brave/brave-browser/issues/55762
2026-06-05 09:23:58 -04:00
Netzenbot 4f5982f522 Fix intermittent timeout in GlobalPrivacyControlBrowserTest.IncludesSecGPCHeader (#36402)
* Fix intermittent timeout in GlobalPrivacyControlBrowserTest.IncludesSecGPCHeader

The test was timing out on Windows x86 nightly (issue #55215). The timeout
occurred during the browser test startup flush, where all pending browser
startup tasks are drained via RunUntilIdle. On resource-constrained x86
machines, certificate verification overhead during HTTPS connections
contributed to the timeout.

Add ContentMockCertVerifier to bypass real SSL certificate verification
in the test. This eliminates certificate verification overhead during
both browser startup (for any HTTPS requests made by startup tasks) and
the test's HTTPS navigation. The test verifies Sec-GPC header presence,
not certificate handling, so mocking cert verification is appropriate.

Also fix GlobalPrivacyControlPolicyTest::SetUpInProcessBrowserTestFixture
to call the correct parent class method, ensuring the mock cert verifier
is properly initialized for policy tests.

Resolves brave/brave-browser#55215
2026-06-05 22:01:43 +09:00
brave-builds 8c5fdaa288 1.93.36 2026-06-05 12:33:16 +00:00
brave-builds 9f34525ae0 1.93.35 2026-06-05 12:32:08 +00:00
brave-builds 3f18ae1d4d 1.93.34 2026-06-05 12:03:55 +00:00
fegauthier-paragonandClaude Opus 4.6 6bb1b650b3 Enable HEVC/H.265 software video decoding on Linux (#34796)
* Enable HEVC/H.265 software video decoding on Linux

Adds FFmpeg-based HEVC/H.265 software decoding support for Linux,
providing a fallback when hardware decode is unavailable (e.g., NVIDIA
GPUs where VA-API is not functional in Chromium).

- chromium_src override for supported_types.cc (HEVC as built-in codec)
- brave/third_party/ffmpeg/sources.gni with HEVC source lists,
  imported via ffmpeg_generated.gni patch
- Minimal patches for ffmpeg_common.cc and ffmpeg_video_decoder.cc
  (anonymous namespace / file-local functions, not overridable)
- All HEVC code paths gated on BUILDFLAG(ENABLE_PLATFORM_HEVC) to
  allow disabling via build args
- FFmpeg config patches for Linux x64 (config.h, config_components.h,
  codec_list.c, parser_list.c, autorename wrappers)
- Enable enable_platform_hevc and enable_hevc_parser_and_hw_decoder
- Add ffmpeg to patch apply/update infrastructure with s.path guard

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Address review: advertise HEVC support to web content on Linux

On Linux, upstream's IsDecoderHevcProfileSupported takes the
PLATFORM_HAS_OPTIONAL_HEVC_DECODE_SUPPORT path and consults the
supplemental profile cache, which is populated only by hardware
decoders registering via the GPU mojo interface. Since we ship a
bundled FFmpeg software decoder that never touches that cache,
MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L93.B0"')
returned false even though the decoder could handle the stream.

Override IsDefaultDecoderSupportedVideoType so that when upstream
rejects HEVC for that reason alone (cache empty), we fall back to
returning true. HDR, color space, and proprietary-codec gating from
upstream are preserved.

* Address review: round-trip new-file patches through apply/update_patches

Two related issues with how brave's patch tooling handles patches that
create new files (new file mode diffs):

apply_patches would fail on a fresh checkout with "Target file does
not exist" because isPatchStale treats a missing target as SRC_REMOVED
and bails out before apply. Teach it to recognize "new file mode"
patches and re-route through SRC_CHANGED so apply proceeds. Also
unlink any leftover target before apply so re-runs on an existing
checkout don't hit "already exists in working directory".

update_patches would silently delete new-file patches because
getModifiedPaths only inspected tracked/modified files. git apply
creates new files without staging them, so they show up as untracked
(??) and never reach the diff. Extend it to pick up untracked paths
that correspond to an existing patch, and generate their diff via
git diff --no-index /dev/null <path> to match the new-file-mode
format produced by git apply.

The four autorename_*.c.patch files in third_party/ffmpeg now round-
trip cleanly across apply/update cycles, which addresses the
"update_patches currently removes some patches you added here" review
comment.

* Address review: rebase HEVC patches onto Chromium 147 ffmpeg

Refresh patch index hashes to the current third_party/ffmpeg tree,
tighten the ffmpeg_generated.gni patch to avoid an empty line at the
hunk boundary (presubmit warning), and pick up libavcodec/x86/hevc/
dequant.asm, which upstream added since the original patch set and
whose absence caused an ff_hevc_dequant_8_ssse3 link error.

All four autorename_*.c patches, the config/config_components toggles,
the generated-list import, and the BUILD.gn include_dirs tweak now
apply cleanly on Chromium 147 and the resulting build links and plays
HEVC streams end-to-end.

* Address review: host autorename stubs in brave/third_party/ffmpeg

Moves the four HEVC autorename .c stubs from patches/third_party/ffmpeg/
into brave/third_party/ffmpeg/libavcodec/ (and libavcodec/hevc/) so
they're regular brave-owned sources rather than new-file patches against
upstream ffmpeg. This is what goodov suggested in review.

The stubs use fully-qualified includes like "libavcodec/hevc/cabac.c",
which resolve through the existing -I "." on ffmpeg_internal — so the
upstream source is what actually gets compiled, just under a different
object name to keep the linker happy. sources.gni references the new
files with absolute //brave/... paths.

One thing I missed on the first build: libavcodec/cabac.c and
libavcodec/hevc/cabac.c are two different files, and the hevc stub
needs to point at the latter or the linker complains about duplicate
ff_init_cabac_decoder. Fixed before pushing.

Since no new-file patches are left in the PR, the apply/update_patches
tooling changes from c1b2b937cf9 don't have a reason to be here anymore.
Reverted them — gitPatcher.js and updatePatches.js are back to where
they were before this PR.

Tested locally on Linux x64 component build: apply_patches and
update_patches round-trip cleanly, gn_check passes, ffmpeg and media
targets both build, and HEVC playback still works end to end.

* Address review: centralize HEVC enabled check via FFmpegSupportsHEVC helper

Introduces FFmpegSupportsHEVC() and HEVCAsH264IfFFmpegSupportsHEVC() in
chromium_src/media/base/supported_types.{h,cc}. The helpers wrap the
BUILDFLAG(IS_LINUX) && BUILDFLAG(ENABLE_PLATFORM_HEVC) check in one
place so callers don't have to repeat it.

Most of this is shrinking the existing patches:

- patches/media-filters-ffmpeg_video_decoder.cc.patch: drops the nested
  #if BUILDFLAG blocks around the kHEVC switch case and IsCodecSupported.
  The switch now reads `HEVCAsH264IfFFmpegSupportsHEVC(config.codec())`
  so kHEVC reuses the kH264 threading branch, and IsCodecSupported maps
  the incoming codec the same way before its kH264 comparison.
- patches/media-ffmpeg-ffmpeg_common.cc.patch: one-line
  `if (FFmpegSupportsHEVC()) return "h264,hevc";` instead of a
  C-preprocessor branch.
- chromium_src/media/base/supported_types.cc: IsDecoderBuiltInVideoCodec,
  IsDefaultDecoderSupportedVideoType and IsDecoderSupportedVideoType all
  go through FFmpegSupportsHEVC() now. The third one matters: blink
  (webcodecs, media_capabilities) calls the public
  IsDecoderSupportedVideoType, and the upstream definition calls
  IsDefaultDecoderSupportedVideoType internally — which under our
  #define rebrand routes to _ChromiumImpl and bypasses our override.
  Overriding the public entry point too keeps the helper authoritative
  whichever path the caller takes.

The override file now includes media/base/supported_types.h *before*
the rebrand #defines and forward-declares the *_ChromiumImpl variants.
That way the MEDIA_EXPORT declarations of the three Is* functions are
visible with their original names when our override definitions are
compiled, so the symbols get the right visibility without having to
repeat MEDIA_EXPORT on every override body. Verified by checking
`nm -D libmedia.so` — IsDecoderBuiltInVideoCodec,
IsDefaultDecoderSupportedVideoType and IsDecoderSupportedVideoType are
all exported, and media:media_unittests links cleanly.

sources.gni: collapses the two duplicated `is_linux && ffmpeg_branding`
conditions into a single `enable_ffmpeg_hevc_support` flag derived from
the upstream `enable_hevc_parser_and_hw_decoder` build arg. Drops
chromeos / fuchsia from the condition (not relevant for this PR).

Test adjustments for the new HEVC-supported reality on Linux:

- media_unittests: SupportedTypesTest.IsDecoderBuiltInVideoCodec and
  IsDecoderSupportedVideoTypeBasics asserted HEVC=false unconditionally;
  switched to `EXPECT_EQ(..., FFmpegSupportsHEVC())` so they pass on
  Linux with the FFmpeg HEVC decoder built in and stay correct
  everywhere else.
- browser_tests: EncryptedMediaSupportedTypesTest::CheckPlatformHevcSupport
  asserted UNSUPPORTED for HEVC on Linux. With the software decoder
  built in HEVC is supported via Clear Key too, so the assertion now
  flips to EXPECT_ECK_PROPRIETARY when FFmpegSupportsHEVC() is true.
  This fixes EncryptedMediaSupportedTypesClearKeyTest.Video_MP4 and the
  two ExternalClearKey variants (Basic, Video_MP4).

Also renames the four autorename stubs to drop the "autorename_" prefix
and removes the "Auto-generated" wording from their comments — they
aren't produced by a script, they're hand-placed brave sources. The
sources.gni references are updated to match.

Verified on Linux x64 component build with chromium 149: gn_check,
format, presubmit, full brave build, SupportedTypesTest.* (32 tests)
and the four EME browser_tests above all green. HEVC playback + MSE
isTypeSupported confirmed end to end on a Main / Main10 / Level 5 test
clip.

* Address review: enable HEVC software decoder on linux-arm64

Mirrors the linux-x64 enablement on linux-arm64 so HEVC isn't a
brave-on-x64-only feature.

ffmpeg config patches: four new patches under chromium/config/Chrome/
linux/arm64/, symmetric to the existing x64 ones — flip CONFIG_BSWAPDSP,
CONFIG_HEVC_DECODER and CONFIG_HEVC_PARSER to 1, and add ff_hevc_decoder
/ ff_hevc_parser to codec_list.c / parser_list.c.

sources.gni: new `if (enable_ffmpeg_hevc_support && current_cpu ==
"arm64")` block pulling in the libavcodec/aarch64 HEVC NEON files that
upstream's Makefile lists for CONFIG_HEVC_DECODER (hevcdsp_init,
hevcdsp_{deblock,dequant,idct}_neon and h26x/{epel,qpel,sao}_neon).
Also introduce a `brave_third_party_ffmpeg_gas_sources` list — arm64
hand-written assembly goes through ffmpeg_gas_sources upstream rather
than ffmpeg_asm_sources (which is nasm-only). The ffmpeg_generated.gni
patch is extended to append it.

Verified: gn_check, format, presubmit all green. autoninja
third_party/ffmpeg:ffmpeg in a cross-compiled Component_arm64 build dir
links cleanly. Couldn't get a full media:media_unittests build past
unrelated clang segfaults on V8 torque-generated sources locally, but
that's host-side flake — the brave CI arm64 builders should hit a clean
environment.

Don't have arm64 hardware to runtime-verify; relying on CI for that.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-05 01:20:22 -07:00
vadims cec58890a6 [Shred] Privacy Bypass – Private Tab Domain Disclosure via “Shred Data” Popup on Brave Android (#36920)
Added an ability to hide the manual shred button when the tab switch
mode is active in incognito mode and private tabs are locked.

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

Signed-off-by: Vadym Struts <vstruts@brave.com>
2026-06-05 09:43:44 +02:00
Darnell Andries f9ff51f087 Add "load after restore" feature to backup results service (#36999) 2026-06-04 20:07:31 -07:00
Jay Harris 45703eef4b [AI Chat]: Remove focus outline from charts (#37004) 2026-06-05 04:54:11 +02:00
Kyle Hickinson 7726cd762a [iOS] Opt-in to prettier for iOS typescript/markdown (#36998) 2026-06-04 20:53:52 -04:00
Kyle Hickinson d12b8b1d55 [iOS] Hide unavailable features from Shortcut widgets (#36989)
This stores features that are unavailable in the group container similar to favourites to adjust how the shortcuts widget is displayed when features are unavailable due to Brave Origin or enterprise policies.
2026-06-04 20:51:53 -04:00
Jay Harris 397e9c6754 [Settings]: Add missing override file for Polymer (#37000) 2026-06-05 02:38:16 +02:00
Szilard Szaloki 9a571e2b0d Account: handle "token has expired" error (#36982) 2026-06-04 20:08:15 -04:00
brave-builds bce4729762 1.93.33 2026-06-05 00:03:34 +00:00
Jay Harris 11d06e4ad0 [Nala]: Add missing trusted-types policy for ledger_ui (#36980) 2026-06-05 00:13:19 +01:00
Simon Hong 9c51b5e6e2 [Sidebar V2] Update panel contents border radius (#36834)
Applied rounded corners to panel's contents view.
Introduced brave::GetPanelContentsRoundedCorners(PrefService*, bool has_header)
which derives corners from the pref and current header presence.
Route GetRoundedCorners() through it via patch, reading header_view_ state
(set before AddChildView) instead of the stale coordinator entry ID.
Call UpdateContentWrapperChildCorners() from UpdateBorder() overrides so
corners are re-applied on panel open and pref change.

Resolves no issue - use umbrella issue (brave/brave-browser#51462)

TEST=SidePanelUtilsTest.*, SidebarBrowserTest.SidebarV2ContentCornersUpdateOnStateChange
2026-06-05 08:06:19 +09:00
Terry Mancey 967ecbcfdd [ads][CodeHealth] Use raw_ref for ResourceComponent member (#36995)
`resource_component_` was held as a nullable `raw_ptr` but the
factory always provides a valid object. Changing it to `raw_ref`
removes the null guards throughout and adds a `CHECK_DEREF` in the
factory so a missing component crashes immediately.
2026-06-05 00:43:02 +02:00
Mikhail 65d8d894df Disable LaunchShellExecuteViaExplorer feature (#36990) 2026-06-04 15:11:25 -07:00
AlexeyBarabash 759269a49a [Android] Fix for Open in new tab animation (#36974)
Resolves https://github.com/brave/brave-browser/issues/56076

must be reverted for `cr150`
2026-06-05 00:46:50 +03:00
Alex e66c446dd5 [VPN 2.0] Add BraveVpnServiceImpl V2 stubs (#36935)
To add a new BraveVpnService implementation based on Architecture 2.0,
which must co-exist with Architecture 1.0 for quite a while, we need
to split service's interface and implementation. All the external
components will keep accessing VPN service via the BraveVpnService
interface, but the implementation mostly goes into BraveVpnServiceImpl.

This change adds the second service implementation, BraveVpnServiceImpl,
for Architecture 2.0. It will live in a "components/brave_vpn/browser/v2"
subdirectory, but will eventually move into "components/brave_vpn/browser"
once V1 implementation has been removed.

Notable changes:
- fully testable BraveVpnServiceImpl v2 stub implementation, in a
  dedicated "v2" namespace;
- BraveVpnServiceFactory can now create a proper implementation based
  on the compile-time GN flags;
- v1/v2 include isolation using DEPS include rules (so that the
  implementations can't depend on each other);
- stub unit test for BraveVpnServiceImpl v2.

Resolves https://github.com/brave/brave-browser/issues/54597
2026-06-04 23:24:47 +02:00
Aleksei Seren 93614c2607 [ads] Fix no gap between NTT CTA button and Brave News feed on Android (#36940)
The PR adds 10dp margin to the NTT CTA button on Android
creating the required gap between the NTT CTA button and the
Brave News feed.

Resolves https://github.com/brave/brave-browser/issues/37465
2026-06-04 21:20:32 +02:00
cdesouza-chromium 68c23eab13 Revert "[toolchain] Disabling unused Mac toolchain downloads (#36760)" (#36958)
This reverts commit 31ac5c1ba8.

This change had been introduced under the impression we did not make use
of the hermetic toolchain to build the iOS code, but that's not
accurate. This is a partial revert of the change disabling the hermetic
SDK during the iOS checkout.

Bug: https://github.com/brave/brave-browser/issues/55812
2026-06-04 18:57:36 +01:00
Kyle Hickinson bbf4285ed5 [iOS] [Origin] Don't initialize ads service when Rewards is unavailable (#36985) 2026-06-04 12:32:04 -04:00
brave-builds 1906b1362c 1.93.32 2026-06-04 16:03:34 +00:00
Kyle Den Hartog 72856eed97 [Wallet] Security fixes for Polkadot metadata parsing (#35422)
* Produce metadata tests for parsing edge cases

These are some edge cases I found while doing some sec reviews with
an LLM. They seem like some good edge cases so the following commit
also addresses them to make sure the tests now pass.
2026-06-04 21:25:18 +07:00