Currently we have a failure on aab builds:
Service BookmarkWidgetService should be declared in the base manifest.
That commit moves it to base module and renames to
QuickActionSearchAndBookmarkWidgetService.
Resolves: https://github.com/brave/brave-browser/issues/49959
We now fallback to confirmations by default in campaigns.json for all
campaigns. The kShouldSupportNewTabPageAdConfirmationsForNonRewards
feature param is no longer needed and should be removed.
[Android] Makes a scroll in quick action search widget
There are still cases that row with tiles is cut or not displayed when
there is space for them. We better show all fav tiles when the widget
is not in a minimum height and use scroll there.
Resolves: https://github.com/brave/brave-browser/issues/49890
Fixes an issues where the picture-in-picture icon was disappearing on tablets (and tablets only) when scrolling the page content.
This PR introduces also a content description string that was missing.
* [Android] Update header image for quick shortcuts and optimization
Optimizations done:
- Initialize leo and wallet controllers regardless if feature enabled or not. This is because at this point native is not guaranteed to be initialized to check the feature. Check for option visibility is done in `BraveRadioButtonGroupAdaptiveToolbarPreference` instead.
- Override `buildUiStateForStats` to avoid asserts on Brave specific options.
* Fix for tests
* Fix for JUnit tests
This change has been produced using a Ruby script that implements the
following logic:
1. For each <color> tag in the destination, try to find one in the
source with the same name
2. If found, update the destination tag with the colour from the source
tag
3. If not found, do nothing and move onto the next tag.
4. Tags that exist in the source but not the destination are ignored.
Currently, some tags exist in the destination XML that are missing from
the source and also vice versa.
Once this has been resolved, we should be able to delete the files in
this diff and move to simply copying the generated XML files straight
out of brave/leo.
Additionally, a small change has been made to the Brave Sync "Add New
Device" button to use a Nala-defined colour rather than being hard-coded
to white.
Closesbrave/brave-browser#49143
* [Android] Remaining Brave options for quick shortcut settings
* Fox for component build
* Clean up unused profile references
* Remove Brave News option for now
* Fix for browser tests
* Connects GPS Brave Origin purchase with SKUs SDK
We need to pass order token to the SKUs SDK to be able to register
Brave Origin purchase from Google Play Store on Android. The commit
exposes Brave domains util functions and SkusService via mojom to
Java.
Resolves: https://github.com/brave/brave-browser/issues/49619
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e981dd46821f563acaa6a5a3d8fd51e046e311e2
commit e981dd46821f563acaa6a5a3d8fd51e046e311e2
Author: Patrick Noland <pnoland@google.com>
Date: Wed Aug 13 13:37:18 2025 -0700
[Toolbar] Rework hairline positioning
Manually calculating the margin for the hairline is error-prone and
tedious when multiple components can alter the height of the toolbar.
Instead of manual manipulation, we can position it "for free" by using
coordinator layout's anchor gravity concept.
This does require switching the toolbar container to be a
CoordinatorLayout. Mostly this is easy since CoordinatorLayout is a more
powerful FrameLayout. There is one consideration: OptimizedFrameLayout,
formerly in the inheritance chain for the toolbar container, reduced the
number of measure calls on ToolbarLayout for performance reasons.
This ends up not mattering because CoordinatorLayout performs the same
number of measure calls.
NO_IFTTT=Adding block for the first time
Change-Id: Idfbb41afbbb1d361214cd0e8e585fefa545aee89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6828889
Reviewed-by: Xi Han <hanxi@chromium.org>
Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
Commit-Queue: Patrick Noland <pnoland@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1501003}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/db54bcdf61f807b0f4f9ea68854d646134c052b0
commit db54bcdf61f807b0f4f9ea68854d646134c052b0
Author: Tomasz Wiszkowski <ender@google.com>
Date: Mon Aug 18 16:16:06 2025 -0700
Make LocationBarLayout a ConstraintLayout
This change allows us to embed more elements inside the
LocationBarLayout without worrying too much about correct placement
and sizing of the elements.
The change applies *correct* height of the locationbar widgets (that
presently bleed outside the FrameLayout bounds on Tablets/Desktop),
and ensures accurate relative placement of all elements.
Change-Id: Iebf14aae39e372275f8c58941a83d52cf9692034
Bug: 436888404
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6852400
Reviewed-by: Patrick Noland <pnoland@chromium.org>
Commit-Queue: Tomasz Wiszkowski <ender@google.com>
Cr-Commit-Position: refs/heads/main@{#1503027}
* [Android] Refactor PasswordSettings.java to use an XML layout file.
The PasswordSettings.java file now integrates with a new XML file that
contains the layout for the page. This modification was completed using
Cursor but does not appear to have introduced any breaks.
There should be no semantic changes caused by this commit and the Brave
Password settings screen should continue to function exactly as it did
prior to this commit.
* [Android] Introduce new Import/Export items to password manager menu.
The password manager dialog now features two items for export and
import. Prior to this commit, Export was hidden away in a small
drop-down menu accessible from the top-right of the screen.
The import item is also present, but non-functional in this commit.
* [Android] Implement importing passwords from CSV.
We now support importing a CSV file containing the user's passwords.
This commit builds upon its parent by implementing the necessary code to
call Chromium's password manager which is responsible for executing the
import.
Additionally, the icons in the password manager screen have been changed
to new ones taken from Google's Material UI icon set.
Localisation strings have been introduced - some of which are copied
from Google's base since, after discussion, this is the way we currently
make strings usable for Android. If this changes in future, these could
be de-duplicated. Translations into other languages are still necessary
since only English is implemented.
Closesbrave/brave-browser#35729
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/55e44d63ae9fcb516aa390039db404871e3f310f
commit 55e44d63ae9fcb516aa390039db404871e3f310f
Author: Adam Raine <asraine@chromium.org>
Date: Tue Aug 19 09:27:43 2025 -0700
[Clank Desktop] Add install button to omnibox
This CL reuses the installability checks from `AppBannerManager` instead
of `AddToHomescreenDataFetcher`. The insatiability criteria should be
the same for each:
- `WebappsUtils::AreWebManifestUrlsWebApkCompatible` is true
- `data.installable_check_passed` is true
- `data.errors` is empty
Future refactors in this area should consider:
- Using the delegate pattern instead of inheritance
crbug.com/322342499
- Replacing `AddToHomscreenDataFetcher` with a connection to
`AppBannerManager`, reducing the amount of duplicate logic.
Bug: 430109659
Change-Id: Ia4237505fb45aefa1ab8e3789eb8af22289c3700
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6735615
Commit-Queue: Adam Raine <asraine@chromium.org>
Reviewed-by: Glenn Hartmann <hartmanng@chromium.org>
Reviewed-by: Dibyajyoti Pal <dibyapal@chromium.org>
Reviewed-by: Patrick Noland <pnoland@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1503393}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/09316976243447de4c0b3979b3c00c747792fa98
commit 09316976243447de4c0b3979b3c00c747792fa98
Author: Hitarth Kothari <hitarthkothari@google.com>
Date: Tue Aug 12 13:48:48 2025 -0700
Consolidate single-tab reparenting into multi-tab methods.
This change renames `ReparentingMultiTabTask` to `ReparentingTabsTask`
and updates its `begin` method to accept additional parameters. All
instances of moving a single tab are now handled by the
`moveTabsToWindow` and `moveTabsToNewWindow` methods by passing a
`Collections.singletonList` containing the single tab. This removes
redundant single-tab reparenting methods from `MultiInstanceManager` and
its implementations.
Bug: 432819744
Change-Id: I03394cbd3ae0f9afb49065d40a4271c2adcbc78e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6841517
Auto-Submit: Hitarth Kothari <hitarthkothari@google.com>
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1500399}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/80937223ea10c49f6c9359d5174a0c9c7283e03c
commit 80937223ea10c49f6c9359d5174a0c9c7283e03c
Author: Peilin Wang <peilinwang@google.com>
Date: Tue Aug 5 09:08:14 2025 -0700
[Bottom toolbar] Don't animate position changes if changed in settings
When the bottom toolbar's position change is animated, the renderer is
driving the animation by sending the new offsets to the browser on every
animation tick.
However, if the position change was done in chrome's settings, the
browser won't get these updates (I'm guessing because the settings UI is
covering up the toolbar?) which is why BrowserControlsManager explicitly
updates the browser's offset when the position changes. However, this
doesn't work with BCIV, because it causes the browser to submit a frame
with the new height before viz receives the animation offset from the
renderer, so the controls could appear to be in the wrong position for a
frame or two.
The position of the toolbar was controlled by a boolean
SharedPreference. This CL adds more state to this SharedPreference, to
include where the update came from. With this CL, if the update came
from the settings page, the position change will not be animated.
Bug: 433524798
Change-Id: Ic47106b1caec3d99752550edb54476f773553b2e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6811960
Reviewed-by: Patrick Noland <pnoland@chromium.org>
Commit-Queue: Peilin Wang <peilinwang@google.com>
Cr-Commit-Position: refs/heads/main@{#1496957}