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}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/cbdcbecdf3292b68c698532cbde53d41dc332cff
commit cbdcbecdf3292b68c698532cbde53d41dc332cff
Author: Joel Hockey <joelhockey@chromium.org>
Date: Fri Aug 8 13:06:38 2025 -0700
Disable drag-drop of files such as images replacing tab for CCT
Support for drag-drop of files was recently added to clank which had
the unintended side effect that dropping a file into a page in a
CCT / TWA which is not registered to handle the drop event will
replace the tab contents with the file (e.g. image).
This fixes clank to set the accept_load_drops param to false for CCT
to match the behavior of PWAs on other platforms.
Bug: 409632787
Change-Id: I4340b11eede64ab0c66ed790ca95db50e3bc70e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6814772
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1498987}
* [Android] Initial integration of Brave adaptive buttons
The Bookmarks button is the first in the list; the rest of the buttons will be added in separate PRs.
Important notes:
- override via `chromium_src` doesn't work for `patches/chrome-browser-ui-android-toolbar-adaptive_toolbar_enums.h.patch` since this file is parsed by `java_cpp_enum.py` to convert it to java enum
- patch to `java_cpp_enum.py` was added to be able to do 1 line patch, since upsteam parses each value as a separate line
- in `patches/chrome-browser-ui-android-toolbar-adaptive_toolbar_enums.h.patch` were added values for all planned Brave buttons to avoid additional patching for each consecutive PR
* Python patch optimisations
* Presubmit fixes
* Remove python patch in favour of multiline header patch
Unify the Android Rich NTT for reuse on iOS
The current PR is pre-requisite of Dynamic NTT on iOS as it allows
to reuse android `New Tab Takeover WebUI` on iOS. The PR removes
dependency of android `New Tab Takeover WebUI` from
`ViewCounterService` which is not available on iOS. It also removes
`current_wallpaper` base::Value cache in ViewCounterService which
allows to save memory and makes code cleaner.
Sometimes scanning QR codes searches for the URL within
search.brave.com rather than either loading the targeted URL or
displaying the URL within the omnibox so the user can load the
website that was scanned.
Resolves: https://github.com/brave/brave-browser/issues/48806
The custom menu item preference screen follows the Figma design and is composed by two sections, Main menu and Page actions.
The screen shows only those items that are supported by the device, items that will never appear won't be shown.
Each item's visibility will default to true and each preference is saved on shared preferences.
The only two items whose visibility cannot be modified are the Main Settings item and the Custom Menu item itself.