Chromium change:
https://source.chromium.org/chromium/chromium/src/+/040e46a7c7697d0eb32e58b30a39e9822d045d81
commit 040e46a7c7697d0eb32e58b30a39e9822d045d81
Author: Xi Han <hanxi@google.com>
Date: Wed Mar 11 18:33:45 2026 -0700
[NtpRefactor] Split NewTabPageLayout into NewTabPageCoordinator and
layout.
This is a refactor CL without any behavior changes. In this CL:
1. Split major logic from NewTabPageLayout to NewTabPageCoordinator,
only Layout implementations remains in the NewTabPageLayout;
2. To preserve the renaming history, temporarily renaming
NewTabPageLayout to NtpLayout. We will rename back in follow up CL
https://crrev.com/c/7658503.
Design doc: go/ntp-mvc-refactor.
Bug: 487641528
Bypass-Check-License: NewTabPageCoordinator is a renamed from NewTabPageLayout.
Change-Id: Ief8fd9b048696a875ccd8167421d88ad2e667f04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7658403
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: Xinyi Ji <xinyiji@chromium.org>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1598132}
Used MultiInstanceOrchestratorImpl override.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/1eff3e2dfcb821e6a6fbccae543632bb5ebbce98
commit 1eff3e2dfcb821e6a6fbccae543632bb5ebbce98
Author: Aishwarya Rajesh <aishwaryarj@google.com>
Date: Wed Mar 18 15:32:23 2026 -0700
[MIR] Create MultiInstanceOrchestrator as a singleton to hold business
logic that is not scoped to a specific ChromeTabbedActivity
This CL attempts to simplify accessing multi-instance business logic
from callers that do not have access to a MultiInstanceManager instance
(for example, CCT context based feature implementations), by introducing
a MultiInstanceOrchestrator singleton implementation.
The CL only moves method moveTabsToWindowByIdChecked() as an initial
example for usage of this class. Other MultiInstanceManager API methods
that can be extracted into the singleton will be moved in followup CLs.
Bug: 491893859
Change-Id: I459a5ed79b058b548f42fd3c85f0b9382e756803
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7659642
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Aishwarya Rajesh <aishwaryarj@google.com>
Cr-Commit-Position: refs/heads/main@{#1601584}
Removed PREF_LOYALTY_CARDS from preferences.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/9d45f2f1f7f2f4e07a9ebf93be1873fd2bc34109
commit 9d45f2f1f7f2f4e07a9ebf93be1873fd2bc34109
Author: Norge Vizcay <vizcay@google.com>
Date: Fri Mar 13 07:52:52 2026 -0700
Remove kAutofillEnableLoyaltyCardsFilling feature flag
The AutofillEnableLoyaltyCardsFilling feature has been launched.
This CL removes the feature flag and all related code/tests that
were conditionally enabled by it. All loyalty card filling
functionality is now enabled by default.
Bug: 395831853
Test: CQ passes
Change-Id: I1a686fcdf1724138ade660229b54760d563f4d66
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7661784
Reviewed-by: Christoph Schwering <schwering@google.com>
Reviewed-by: Florian Leimgruber <fleimgruber@google.com>
Commit-Queue: Norge Vizcay <vizcay@google.com>
Cr-Commit-Position: refs/heads/main@{#1599049}
ShortcutsBackend initializes asynchronously. When clearBrowsingData() was
called during startup, the backend was still in the INITIALIZING state and
its OnHistoryDeletions handler silently returned early, leaving shortcut
suggestions (clock-icon entries) intact after exit.
Fix by adding a JNI bridge (BraveShortcutsUtils.initThenRun) that waits for
ShortcutsBackend to finish its async DB init via OnShortcutsLoaded() before
invoking clearBrowsingData(). Also move the clear-on-exit call from
initializeState() to finishNativeInitialization() where the profile is
available, and add FORM_DATA (autofill) to the cleared data types.
* [Android] Register Brave as Android AutofillService for address autofill
Re-enables the Android AutofillService that was removed in
https://github.com/brave/brave-core/pull/25759 due to crashes on
split-APK installs. Uses the SplitCompat pattern
(SplitCompatAutofillService base class) so the service works correctly
when installed from the Play Store.
When the user selects Brave as their autofill provider in Android Settings,
Brave can fill saved address profiles into third-party apps and save new
addresses from manually filled forms.
Resolves: https://github.com/brave/brave-browser/issues/41334
* Android: Implement favicons for Password Manager entries
We now display favicons for Password Manager as happens for our desktop
edition.
In order to do this, the C++ side now passes in the full origin so that
we have the clean, proper URI in order to fetch the favicon.
Resolvesbrave/brave-browser#52775
- Removes `AssetsPricesHelper` class by inlining `fetchPrices` at its two call sites (`BraveWalletPanel` and `Utils`) with direct `assetRatioService.getPrice()` calls, eliminating an unnecessary `MultiResponseHandler` wrapper.
- Moves price lookup helpers (`getPrice`, `getPriceForAsset`, `parseAssetPrice`) into Utils.java where all callers already have access.
- Removes the now-unused `FetchPricesResponseContext` from `AsyncUtils`.
- Fixes copy-paste bug in `ParsedTransaction` where `minBuyAmountArg` was reading `txArgs[1]` (same as `sellAmountArg`) instead of `txArgs[2]`, confirmed against the desktop C++ implementation in `eth_data_parser.cc`.
- Fixes general warnings for `ParsedTransaction` class.
- Improves Javadocs.
* Remove `BraveFirstRunFlowSequencer` class
The sequencer only delays `initializeViews()` (the method called when
the callback is fired) until the account/child-status checks finish.
It does not influence which onboarding steps run or any prefs.
Given the current code, we can remove `BraveFirstRunFlowSequencer`
completely and simply call `initializeViews()` directly in both
`WelcomeOnboardingActivity` and `BraveVpnSupportActivity`.
The behavior will remain be the same, just without that async wait.
* Apply code formatting
To avoid copy/pasting of the same code in `BraveLocationBarQRDialogFragment` and `BraveSyncScreensPreference`, the common code related to qr code reading was moved to `QRCodeCameraManager` class.
Resets the overflow main menu to the top every time is shown. Modifications are applied using bytecode manipulations as we needed to modify upstream class `AppMenuHandlerImpl`.
Here we remove the original interfaces and move them directly to the places they are used.
Interfaces are still genereric, replacing them to a specific interfaces should be done when these parts of code are touched.
In addition, in this PR were fixed presubmit warnings in the files that were touched.
Introduces a unified Wallet-fragment architecture that centralizes how Brave's Android wallet UI talks to WalletModel, manages pending transactions, and stays in sync with keyring state.
[Android] Adds kBraveFreshNtpAfterIdleExpirement experiment flag.
That commit adds the flag with parameters and a functionality
to use cached flags on Android.
Resolves: https://github.com/brave/brave-browser/issues/50567
Simplifies the wallet sign message UI by consolidating DAppsMessageFragment and SignMessagePagerAdapter into SignMessageFragment removing unnecessary abstraction layers.
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
[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
* [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
* [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
* Move BraveYouTubeScriptInjectorNativeHelper to main app layer so it can reference BraveActivity
* Save boolean flag in activity bundle
* Add small delay to let the layout pass to complete
Implements Brave origin paywall screen and handles subscription
purchases on Google Play Store. There is no entry point to it
currently, it will be done in the feature PRs
Resolves: https://github.com/brave/brave-browser/issues/48279
* [Android] Initial integration of quick shortcut button
- Adds flag for quick shortcut (disabled until all Brave items are available)
- Makes parity with options available with the upstream
- Visual and UI fixes
* Moves flag under Android guards
* [Android] New Mobile Bookmarks homepage setting
* [Android] Mobile bookmarks string correction
* [Android] Code review suggestions
* Replaces direct patch with bytecode and adds eol
* Moves test method from dummy to the main class
* Direct patch xmls and typo fix
* BaseJUnit4ClassRunner to ChromeJUnit4ClassRunner for tests
* Fixes presubmit issues for tests
Upstream now calls `runCreateFileOnDiskIntent` either way, so this patch becomes obsolete.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/a58bf5281372f484db298f8fcd1c0a8dda0f64a0
[CodeHealth] Clean up LocalPasswordsAndroidAccessLossWarning. Part 1
I've split the cleanup into multiple parts to facilitate the review.
This CL cleans up the code related to password export. It:
1) Enables the feature flag by default in the export flow code.
2) Deletes up ExportWarningDialogFragment that is not used anymore,
and cleans up its tests and strings used only there
3) Deletes PasswordSettingsExportTests, because they test password
export from settings only, and M4.1 export is handled in
PasswordAccessLossExportDialogCoordinatorTest
In the second part I will enable feature by default in other parts of
code.
Change-Id: I233affd3cb8b47cc067a055e92aca219cd5776ef