Removes the custom `listBackgroundColor` modifier which was no longer needed and replaces all instances with the expected `scrollContentBackground`/`background` modifiers
Resolvesbrave/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.
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.
Adds `@retroactive` to suppress warnings on types that we actively control, and removes it from one retroactive conformance that we don't (`WKWebsiteDataRecord`)
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.
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.
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}
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}
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}
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',
...
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
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
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.
* 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
* 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.