Commit Graph
76885 Commits
Author SHA1 Message Date
Kyle Hickinson 4e1fcd989d [iOS] [CodeHealth] SwiftUI listBackgroundColor modifier warning fixes (#35165)
Removes the custom `listBackgroundColor` modifier which was no longer needed and replaces all instances with the expected `scrollContentBackground`/`background` modifiers
2026-04-02 18:08:13 +02:00
brave-builds 2a9104b7ff 1.91.5 2026-04-02 16:03:26 +00:00
Christian Mazakas d4ab9239f0 [CodeHealth] [Polkadot] [Wallet] update PolkadotKeyring to eschew upserting keypairs (#35006)
Resolves brave/brave-browser#53959

This PR alters the behavior of the PolkadotKeyring to no longer insert keypairs
on every function call if they don't exist in the secondary_keys_ container.

To this end, many of the methods have been updated to return
std::optional<>-wrapped values. This aligns the PolkadotKeyring with the other
existing Keyrings we have in Wallet.
2026-04-02 08:54:50 -07:00
Kyle Hickinson 78c4993d19 [iOS] [CodeHealth] Miscellaneous warning fixes (#35170)
Fixes warnings to do with:
- Unused function results
- Optional fallback/checks on non-optional types
- Ambiguous equality checks
2026-04-02 17:36:33 +02:00
Kevin Smith 71e5709ef3 [NTP] Fix formatting for fingerprinting details header (#35176) 2026-04-02 11:29:09 -04:00
Terry Mancey fe480bdfa4 [ads] Fix dangling raw_ptr in AdsServiceImpl test teardown (#35209)
TearDown was destroying ads_service_ without calling Shutdown
first, leaving BackgroundHelper holding a dangling raw_ptr as
it is the only observer not managed by ScopedObservation.
2026-04-02 17:15:20 +02:00
Kyle Hickinson 98691ace5a [iOS] [CodeHealth] Add explicit retroactive conformances attribute (#35168)
Adds `@retroactive` to suppress warnings on types that we actively control, and removes it from one retroactive conformance that we don't (`WKWebsiteDataRecord`)
2026-04-02 11:12:59 -04:00
Nuo Xu cf6513a431 [iOS][Wallet] Add a warning before user sign message for Cardano Sign Data Request (#34524)
Add a warning before user sign message for certain requests.
2026-04-02 15:46:10 +01:00
samartnik 187abd2b8a [Android] Add support for custom search engines (#35171)
* [Android] Add support for custom search engines

* [Review] Optimise check for delete eligibility
2026-04-02 10:03:42 -04:00
brave-builds 3f115f8199 1.91.4 2026-04-02 13:57:39 +00:00
github-actions[bot] 9d3f3a3da1 Update dependency vendor/web-discovery-project@e6dc7e5ae5 (#35201)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-02 14:46:37 +01:00
Aleksei Seren 9beefcdb82 Expose SERP metrics feature flag to iOS (#35183)
The SERP metrics feature flag was only available on Desktop and Android.
Bridging it to iOS allows to safely roll out SERP metrics
functionality behind the flag.
2026-04-02 14:41:34 +01:00
Aleksei Seren 0deca93a6c Make SerpMetricsService reusable on iOS (#35185)
The PR makes `SerpMetricsService` reusable on iOS
by injecting time period store factory and removing
its dependency on browser layer types.
2026-04-02 14:41:19 +01:00
brave-builds 6bb9e67dab 1.91.3 2026-04-02 12:33:25 +00:00
Brian R. Bondy 4004ae199e Revert "Revert "Fix Brave Origin Windows build using wrong icons"" (#35157)
* Revert "Revert "Fix Brave Origin Windows build using wrong icons" (#35156)"

This reverts commit 4d5809d130.

* Add missing icons
2026-04-02 08:13:30 -04:00
brave-builds c904fc6719 1.91.2 2026-04-02 12:03:10 +00:00
dependabot[bot] 2414364590 Bump lodash from 4.17.23 to 4.18.1 (#35197)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 12:03:13 +01:00
Simon Hong 9d300d4cb7 Embedded vertical tab in browser view (#35073) 2026-04-02 11:38:43 +01:00
renovate[bot] 9fe0fefa2f Update actions/checkout action to v6 (#35198)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-02 10:13:32 +01:00
mschfh 8d0fb56f13 Speed up "Assign Labels" workflow (#35200)
Update GitHub Actions workflow for label assignment
2026-04-02 10:05:21 +01:00
Kyle Hickinson 938f795326 [iOS] Disable measured pre-boot in test runner (#35181) 2026-04-02 09:21:11 +01:00
Aleksei Khoroshilov 0e992908aa Fix logging.js import cycle in build/commands. (#35147)
* Fix logging.js import cycle in `build/commands`.

* Add type PatchStatus.
2026-04-02 15:02:07 +07:00
Aleksei Khoroshilov 47be687e8b Add more build hang diagnostics. (#35149) 2026-04-02 09:28:19 +02:00
Terry Mancey 2993f7dfdc [ads][CodeHealth] Fix ads service startup and shutdown race conditions (#35138)
Replace the fragile service_starts_count_ counter and
ShouldProceedInitialization with a bat_ads_service_weak_ptr_factory_
invalidated in ShutdownAdsService to cancel pending initialization
callbacks automatically when the service stops. Add a missing
is_shutting_down_ guard to MaybeStartBatAdsService to prevent
restarts during profile teardown, and restart the service in the
clear-data failure path since ShutdownAdsService has already stopped
it. On iOS, align ShutdownAds to return success when not initialized
and move preference clearing to after shutdown so prefs and data are
always cleared together. Add a test_support target with fake
implementations and an AdsServiceImpl unit test suite covering these
state transitions.
2026-04-02 02:08:00 -04:00
Szilard Szaloki 6cfa552a25 Account: distinguish network errors from HTTP errors (#35189) 2026-04-02 02:07:10 -04:00
Kamil Jozwiak 97a6c42549 Upgrade from Chromium 147.0.7727.25 to Chromium 147.0.7727.49. (#35179)
<!-- Add brave-browser issue below that this PR will resolve -->
Resolves https://github.com/brave/brave-browser/issues/54135

<!-- CI-related labels that can be applied to this PR:
* CI/disable-pipeline-step-cache - instruct CI to not cache build steps
between runs for the same commit hash
* CI/enable-coverage - enable coverage reporting for your code changes
* CI/enable-test-only-affected - instruct CI to only run tests affected
by your change
* CI/run-audit-deps (1) - check for known npm/cargo vulnerabilities
(audit_deps)
* CI/run-network-audit (1) - run network-audit
* CI/run-perf-smoke-tests - run smoke performance tests
* CI/storybook-url (1) - deploy storybook and provide a unique URL for
each build
* CI/run-upstream-tests - run Chromium unit and browser tests on Linux
and Windows (otherwise only on Linux)
* CI/skip-upstream-tests - do not run Chromium unit, or browser tests
(otherwise only on Linux)
* CI/run-teamcity - run TeamCity
* CI/skip-teamcity - skip TeamCity
* CI/skip - do not run CI builds (except noplatform)
* CI/run-linux-arm64, CI/run-macos-x64, CI/run-windows-arm64,
CI/run-windows-x86 - run builds that would otherwise be skipped
* CI/skip-linux-x64, CI/skip-android, CI/skip-macos-arm64, CI/skip-ios,
CI/skip-windows-x64 - skip CI builds for specific platforms

(1) applied automatically when some files are changed (see:
https://github.com/brave/brave-core/blob/master/.github/labeler.yml)
-->

<!--
## Checklist:

- Review design docs
[Browser design
principles](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/chrome_browser_design_principles.md)
[Style
guide](https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md)
[Core principles](https://www.chromium.org/developers/core-principles/)
- Ensure there are
(tests)[https://www.chromium.org/developers/testing/]. Unit test as much
as possible (including edge cases), but also include browser tests
covering high level functionality.
- Ensure that there are comments explaining what classes/methods are/do.
The "why" is often more important than the "what" in comments. Also
update any relevant docs (moving docs from wiki to brave-core if
necessary).
- Request security or other review (third-party libraries, rust code,
etc...) if applicable [security/privacy review is
needed](https://github.com/brave/brave-browser/wiki/Security-reviews)
[other review](https://github.com/brave/reviews/issues/new/choose)
Also see [adding third-party
libraries](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/adding_to_third_party.md)
for general guidelines on using third party code
- Make sure there is a
[ticket](https://github.com/brave/brave-browser/issues) for your issue
- Use Github [auto-closing
keywords](https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)
in the PR description above
- Write a good [PR/commit
description](https://google.github.io/eng-practices/review/developer/cl-descriptions.html)
- Squash any review feedback or "fixup" commits before merge, so that
history is a record of what happened in the repo, not your PR
- Add appropriate labels (`QA/Yes` or `QA/No`; `release-notes/include`
or `release-notes/exclude`; `OS/...`) to the associated issue
- Checked the PR locally:
* `npm run test -- brave_browser_tests`, `npm run test --
brave_unit_tests`
[wiki](https://github.com/brave/brave-browser/wiki/Tests)
* `npm run presubmit`
[wiki](https://github.com/brave/brave-browser/wiki/Presubmit-checks),
`npm run gn_check`, `npm run tslint`
- Run `git rebase master` (if needed)
-->
2026-04-02 02:04:53 -04:00
Max Karolinskiy e18ecd45af [147.0.7727.49] Disables failing upstream tests. 2026-04-01 22:41:52 -04:00
AlexeyBarabash 3006c598be [147.0.7727.49][Android] Changes at DropdownItemViewInfoListBuilder
New arg OmniboxActionDelegate at methods:
- initDefaultProcessors
- createUIContext

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/2c4f31424896b3a94e8d6253b6fc30f1b4e2fd43

commit 2c4f31424896b3a94e8d6253b6fc30f1b4e2fd43
Author: Keigo Oka <oka@google.com>
Date:   Sun Mar 22 23:20:43 2026 -0700

    Site search: Enter and exit keyword mode during list navigation

    When a suggestion contains a SiteSearchAction (pill button), users
    can navigate to it using the Tab key. This commit ensures that
    focusing the pill button via keyboard automatically enters keyword
    mode, matching the Desktop (OmniboxEditModel) behavior.

    If the user continues navigating the list and the ActionChip
    loses focus without any text being typed, Keyword Mode is exited.

    We also avoid fetching new suggestions upon entering keyword
    mode, again aligning with Desktop, so the current suggestions
    (e.g., for 'bing.co') are not abruptly cleared.

    Test update:
    Updated OmniboxPedalsTest#testPedalsStartedOnTabEnterKeyStroke to use
    mOmniboxUtils.sendKey() instead of Espresso's pressKey(). This change to
    ActionChip focus handling made Espresso's asynchronous key dispatching
    unreliable for this interaction. mOmniboxUtils.sendKey() properly
    triggers the updated focus logic synchronously.

    Bug: 459590224
    Change-Id: I98034cd7ed17b78c7da5fb1228011214f1bd9ce9
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7637963
    Auto-Submit: Keigo Oka <oka@chromium.org>
    Commit-Queue: Keigo Oka <oka@chromium.org>
    Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1603272}
2026-04-01 22:41:52 -04:00
Claudio DeSouza 5b78cdeb6e [147.0.7727.49] sanitized_image_source.h under sanitized_image
This is merely a case of headers beng moved.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/4c830d6dfed0f7f497b7edffa3674a56add52c60

commit 4c830d6dfed0f7f497b7edffa3674a56add52c60
Author: chrstne <chrstne@google.com>
Date:   Thu Mar 26 08:42:30 2026 -0700

    Fixes dependency cycle in Skills tab controller

    Currently there is a cycle because the skills tab controller impl
    utilizes the skills ui to initialize the skills ui dialog, but
    the skills ui needs to access sanitized image source to display
    images in a secure way. Sanitized image source is currently under
    chrome/browser/ui:ui which encompasses various chrome desktop ui
    targets.

      //chrome/browser/ui:ui ->
      //chrome/browser/ui/tabs:impl ->
      //chrome/browser/skills:ui ->
      //chrome/browser/ui/webui/skills:skills ->
      //chrome/browser/ui:ui

    Fixes this by moving sanitized* files into a new directory in the webui folder and adding a new BUILD.gn file

    Bug: b:493020845
    Change-Id: I4507fca146301ca02c2d96d3a243ee8bd643d1fb
    Bypass-Check-License: Moved files
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7693912
    Reviewed-by: Nicolas Ouellet-Payeur <nicolaso@chromium.org>
    Reviewed-by: Darryl James <dljames@chromium.org>
    Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
    Commit-Queue: Christine Ying <chrstne@google.com>
    Cr-Commit-Position: refs/heads/main@{#1605543}
2026-04-01 22:41:51 -04:00
Claudio DeSouza 7ca2b29245 [147.0.7727.49] Stub for OnShowAiModePrefChanged for PageInterface
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e0ab847bc7ae392fe56e472850c017116fbe1ca5

commit e0ab847bc7ae392fe56e472850c017116fbe1ca5
Author: Caitlin Chen <caitc@google.com>
Date:   Tue Mar 24 20:27:59 2026 -0700

    [omnibox] Consolidate eligibility for context menu entrypoint

    This change merges the aim eligibility and ai mode chip preference into
    one flag to pass back to omnibox_popup/app.ts. It does the following:
    * Creates mojo binding to UpdateAimPopupEligibility to replace UpdateAimEligibility and OnShowAiModePrefChanged.
    * Have aim_eligibility_service and kShowAiModeOmniboxButton pref_change_registrar_ call the same new callback OnAimPopupEligibilityChanged
    * OnAimPopupEligibilityChanged handles combining omnibox::IsAimPopupEnabled and kShowAiModeOmniboxButton pref check.
    * Simplify app.ts and update test files.

    http://screencast/cast/NTY0NDAzNjIxMDY4ODAwMHxjODBjNWJkYS01NA

    b: 492248045
    Change-Id: I725906b717f22ca2cf9b848cc413bc322a756339
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7693514
    Reviewed-by: Ananya Seelam <ananyaseelam@google.com>
    Commit-Queue: Caitlin Chen <caitc@google.com>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Paul Adedeji <pauladedeji@google.com>
    Cr-Commit-Position: refs/heads/main@{#1604582}
2026-04-01 22:41:51 -04:00
Max Karolinskiy cb69cc6c74 Updated strings for Chromium 147.0.7727.49. 2026-04-01 22:41:51 -04:00
Max Karolinskiy 499808e64f Update patches from Chromium 147.0.7727.25 to Chromium 147.0.7727.49. 2026-04-01 22:41:50 -04:00
Max Karolinskiy de54b54e69 Conflict-resolved patches from Chromium 147.0.7727.25 to Chromium 147.0.7727.49. 2026-04-01 22:41:50 -04:00
Max Karolinskiy c5f0048b3e Update from Chromium 147.0.7727.25 to Chromium 147.0.7727.49. 2026-04-01 22:41:49 -04:00
Max Karolinskiy 00f7ff63b4 Revert "Enable CheckJavaStyle on MacOS (#35036)" (#35191)
This reverts commit b328992aac.

This check fails on MacOS CIs. The failure error is:

Evaluation of CheckJavaStyle failed: [Errno 2] No such file or directory: '/<reducted>/src/third_party/jdk/current/bin/java'.

Upstream's DEPS does not check out third_party/jdk on MacOS based on the
condition:

  'src/third_party/jdk/current': {
      ...
      # Needed on Linux for use on chromium_presubmit (for checkstyle).
      'condition': '(checkout_android or checkout_linux) and non_git_source',
      ...
2026-04-01 22:41:10 -04:00
brave-builds 580287db03 1.91.1 2026-04-02 00:03:01 +00:00
Kyle Hickinson 08c7583575 [iOS] [CodeHealth] SwiftUI onChange modifier deprecation warning fixes (#35164)
This replaces all deprecated uses of the `View.onChange` with the replacement that has 2 arguments
2026-04-02 01:07:16 +02:00
Szilard Szaloki dec3cd74aa Account: disallow leading/trailing whitespace in passwords (#35133) 2026-04-02 00:28:24 +02:00
Serg e0365ec5d6 [Android] Remove unused FOREGROUND_SERVICE_CAMERA permission from Android manifest (#35178)
Upstream Chromium cr147 (https://chromium-review.googlesource.com/c/chromium/src/+/7559078)
made FOREGROUND_SERVICE_CAMERA unconditional for all Android builds by
removing the is_desktop_android guard. However, the feature that
actually uses it (kAndroidEnableBackgroundMediaCapturing) is disabled
by default and not enabled by Brave, so the permission is declared but
never used.

This blocks Play Store publishing because Google requires a declaration
with a demo video for any app using FOREGROUND_SERVICE_CAMERA.

This PR:
- Re-gates FOREGROUND_SERVICE_CAMERA behind is_desktop_android so it's
  excluded from Brave builds
- Removes AndroidManifest_user_permissions.xml since upstream now
  declares FOREGROUND_SERVICE_MICROPHONE unconditionally, making
  Brave's duplicate unnecessary

Resolves: https://github.com/brave/brave-browser/issues/54143
2026-04-02 00:06:11 +02:00
Kevin Smith 5f72cba990 [Rewards] Reduce TOS modal button padding in narrow view (#35163) 2026-04-01 15:58:04 -04:00
Kyle Hickinson fcb4c75242 [iOS] Remove unused playlist folder sharing script & related handlers (#35118)
This feature is no longer maintained/used by Brave so we can remove it entirely
2026-04-01 21:54:04 +02:00
Anthony Tseng d2042ec2d7 Revert "Replace kLocalAIModels with upstream kHistoryEmbeddings (#35004)" (#35158)
This reverts commit 90f77cd256.
2026-04-01 21:34:47 +02:00
brave-builds 6eb225afbf Branch migration - master branch (#35166)
Update Nightly channel to: 1.91.0
2026-04-01 19:18:16 +01:00
Sangwoo Ko d140628bb7 Make options for minimum tab width (#35071)
We provide a way to adjust the minimum width of the tab.
There're 5 options:
- default: currently the minimal
- minimum: current behavior,
- medium: 76px
- large: half of the standard width
- full: the standard width
2026-04-01 14:00:18 -04:00
Kyle Hickinson b2387889dc [iOS] Support search ads view event triggers when using profile configs (#35090)
This enables the usage of the new `BraveSearchAdResultsJavaScriptFeature` when the `UseProfileWebViewConfiguration` feature flag is enabled
2026-04-01 13:26:18 -04:00
Douglas Daniel 6f49f2a630 [Wallet]: Adjust Portfolio Overview Layout (#35122)
Adjusts the Portfolio Overview layout to make the Balance's aligned left and Action Buttons aligned right. Will remain vertical for Panel and Mobile.
2026-04-01 12:24:48 -05:00
Kyle Hickinson 46c80adbf6 [iOS] Support Translate using Chromiums implementation (#35117)
This adds a new flow for using Chromium's Translate component through `CWVTranslationController` when the `UseProfileWebViewConfiguration` feature flag is enabled.

Note: This new tab helper does not support the Apple on-device translation feature flag yet.
2026-04-01 12:55:59 -04:00
Nuo Xu 705ffb465a [iOS][Wallet] Integrate CardanoProvider and CardanoApi message handler (#34450)
* andd provider message handler in CardanoProviderHandler

1. handle enable() to create `CardanoApi` and store in Swift side
2. handle isEnable() to calling provider.enable()

* set up cardano api object in cardano provider script js

* handle cardana api methods

* fix up

1. fix getCollateral post amount object
2. start handling pagination error
3. add useful comments

* drop paginate parameter for getUsedAddresses in provider script since mojom version does not take any parameter

* address review comments

1. handles enable() returns (nil, nil) case
2. Use withTaskCancellationHandler When Bridging Callbacks to Async
3. remove unnecessary white space

* integrate sign cardano tx request from dapp

* address review comments

* fix closure captures self

* address more review comments

1. freeze js return value to prevent return value tampering
2. remove wallet provider and api ref from TabBrowserData and store directly in TabState via TabDataValues
3. some refactoring in cardano provider handler.

* fix dynamic accessors

* address nits change requests
2026-04-01 17:03:43 +01:00
brave-builds ce2cb6b3ba 1.90.93 2026-04-01 16:03:22 +00:00
Netzenbot 9c8462ef86 Fix test: AIChatConversationTaskBrowserTest.TaskUI (#34754)
* Fix test: AIChatConversationTaskBrowserTest.TaskUI

The Leo Button component (SvelteToReact wrapper) attaches its click event
listener asynchronously via useEffect, after browser paint. On macOS, the
paint can be delayed enough that the click listener is not yet attached when
ClickElement fires, causing pauseTask() to never be called and the RunUntil
for kPaused to time out.

Fix by calling conversation_handler_->PauseTask() directly instead of going
through the UI click path. The direct C++ call is reliable and synchronous,
eliminating the timing window. The UI click path is already tested by
TaskPauseResumeActions.

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

* Address review: add TODO for SvelteToReact async listener issue

Updated workaround comment to accurately describe the root cause:
the SvelteToReact wrapper in @brave/leo attaches click listeners
asynchronously via useEffect. Filed brave/leo#1343 to fix it at
the source, and added a TODO referencing that issue.
2026-04-01 10:18:32 -04:00