This patch is not necessary anymore as the whole thing has been deleted.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ecf6c3c62a8fea27a56341162de22c2bf90e9211
commit ecf6c3c62a8fea27a56341162de22c2bf90e9211
Author: Nate Fischer <ntfschr@google.com>
Date: Fri Jan 9 11:03:12 2026 -0800
Android: remove unused monochrome targets
This removes more build targets which were previously used by
monochrome, however these are now dead code because the top-level
monochrome targets have been removed. This removes the corresponding
monochrome-specific Java code.
Bug: 434045992
Test: gn gen out/Default
Change-Id: I9c5e7188e70ef6ce5cf8ba4e621fe07269d3b9dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7411410
Commit-Queue: Nate Fischer <ntfschr@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1567064}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/1d9b855ced4c7ee53124d44af3d215789292515b
commit 1d9b855ced4c7ee53124d44af3d215789292515b
Author: Ernest Nguyen Hung <ernn@google.com>
Date: Wed Jan 7 10:43:58 2026 -0800
[DBSC] Add Mojo handler for chrome://unexportable-keys-internals
It adds a Mojo handler for `chrome://unexportable-keys-internals` to
fetch and delete keys. UI changes will be added in future CL(s).
Bug: 454585857
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/5e25e8cc98026bbc782cf7048c786f85de0595b1
commit 5e25e8cc98026bbc782cf7048c786f85de0595b1
Author: Rushan Suleymanov <rushans@google.com>
Date: Wed Jan 7 23:52:17 2026 -0800
Add scaffold for DataType::SKILL
Adds the new DataType enum value and an empty specifics proto. Generated
from components/sync/bootstrap_new_data_type.sh.
Note to sync reviewer: please verify for every touched static_assert(),
the change is fitting or has a corresponding TODO.
Bug: 471793686
Using an override for the method by copying code is not safe as it
misses upstream changed.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/961e7f0682c362f078d346556998198f6deca99c
commit 961e7f0682c362f078d346556998198f6deca99c
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date: Wed Dec 3 12:08:19 2025 -0800
[bedrock] Add BrowserManagerService::AddBrowserForTesting()
There are currently several deprecated unit tests under //chrome that
manually instantiate self-owned browsers via the
Browser::DeprecatedCreateOwnedForTesting() API.
Recent CLs have introduced the new ProfileBrowserCollection and
GlobalBrowserCollection abstractions to track application browser
objects with appropriate scope.
All code will be converted from using BrowserList to instead use
these classes for Browser-related lookups / operations.
This CL adds support for ProfileBrowserCollection to unit tests that
instantiate Browsers via the deprecated test-only API. This is done
by updating BrowserManagerService to track unowned Browser instances
created by these unit tests. This change is intended to unblock
BrowserList deprecation without requiring removal of all Browser
unit tests from the codebase.
Fixes a couple of unit tests incorrectly tearing down the Browser to
fix the dangling refs.
Bug: 431671320
This fixes the following error:
C 07:43:50.007 21.797s Main 1| java.lang.IllegalArgumentException: SemanticColorUtils requires a value for the brave.junit.tests:attr/colorSurface attribute to be set in your app theme. You can either set the attribute in your theme or update your theme to inherit from Theme.MaterialComponents (or a descendant).
C 07:43:50.007 21.797s Main 1| at com.google.android.material.resources.MaterialAttributes.resolveTypedValueOrThrow(MaterialAttributes.java:72)
C 07:43:50.007 21.797s Main 1| at com.google.android.material.color.MaterialColors.getColor(MaterialColors.java:94)
C 07:43:50.007 21.797s Main 1| at org.chromium.components.browser_ui.styles.SemanticColorUtils.resolve(SemanticColorUtils.java:33)
C 07:43:50.007 21.797s Main 1| at org.chromium.components.browser_ui.styles.SemanticColorUtils.getDefaultBgColor(SemanticColorUtils.java:43)
C 07:43:50.007 21.797s Main 1| at org.chromium.chrome.browser.ChromeBaseAppCompatActivity.initializeSystemBarColors(ChromeBaseAppCompatActivity.java:315)
C 07:43:50.007 21.797s Main 1| at org.chromium.chrome.browser.ChromeBaseAppCompatActivity.onCreate(ChromeBaseAppCompatActivity.java:251)
C 07:43:50.007 21.797s Main 1| at org.chromium.chrome.browser.init.AsyncInitializationActivity.abortLaunch(AsyncInitializationActivity.java:453)
C 07:43:50.007 21.797s Main 1| at org.chromium.chrome.browser.init.AsyncInitializationActivity.onCreateInternal(AsyncInitializationActivity.java:419)
C 07:43:50.007 21.797s Main 1| at org.chromium.chrome.browser.init.AsyncInitializationActivity.onCreate(AsyncInitializationActivity.java:344)
C 07:43:50.007 21.797s Main 1| at android.app.Activity.performCreate(Activity.java:9155)
C 07:43:50.007 21.797s Main 1| at android.app.Activity.performCreate(Activity.java:9133)
C 07:43:50.007 21.797s Main 1| at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1521)
C 07:43:50.007 21.797s Main 1| at org.robolectric.android.internal.RoboMonitoringInstrumentation.callActivityOnCreate(RoboMonitoringInstrumentation.java:377)
C 07:43:50.007 21.797s Main 1| at org.robolectric.android.controller.ActivityController.lambda$create$0(ActivityController.java:136)
C 07:43:50.007 21.797s Main 1| at org.robolectric.shadows.ShadowPausedLooper.runPaused(ShadowPausedLooper.java:264)
C 07:43:50.007 21.797s Main 1| at org.robolectric.android.controller.ActivityController.create(ActivityController.java:134)
C 07:43:50.007 21.797s Main 1| at org.robolectric.android.controller.ActivityController.create(ActivityController.java:144)
C 07:43:50.007 21.798s Main 1| at org.chromium.chrome.browser.vpn.activities.BraveVpnParentActivityTest.testShouldBringToTop_TrueForProfileActivity(BraveVpnParentActivityTest.java:26)
This change affects the use of this function in one override. This
change corrects this aspect.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/35c27e689f5eea4f4c69d62a25814ce22e6d5fd2
commit 35c27e689f5eea4f4c69d62a25814ce22e6d5fd2
Author: EmiliaPaz <emiliapaz@chromium.org>
Date: Wed Jan 7 21:19:09 2026 -0800
[Extensions] Add HostAccessRequest struct
Previously, the delegate and view classes were responsible for gathering
the necessary host access request information (extension name, icon)
from the ExtensionActionViewModel, which required passing around the WebContents.
This CL introduces a HostAccessRequest struct to encapsulate the data for an extension requesting host access in the extensions menu.
Bug: 449814184
Change-Id: Idfceedcb0c9d34a26fef13b7c0704400befc8839
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7405507
Reviewed-by: Eva Su <evasu@chromium.org>
Commit-Queue: Emilia Paz <emiliapaz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1566088}
This change also updates the version for `thiserror` v1.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/740e9bb6eda1faec82bb17e11f87b7313b46a137
commit 740e9bb6eda1faec82bb17e11f87b7313b46a137
Author: Helmut Januschka <helmut@januschka.com>
Date: Tue Dec 9 16:26:12 2025 -0800
Add jxl-rs pure Rust JPEG XL decoder to third_party
This CL vendors the jxl-rs library from crates.io as a third-party
dependency in Chromium. jxl-rs is a pure Rust implementation of a JPEG
XL decoder from the official libjxl organization.
The CL has been generated semi-automatically:
* Manual edits:
* //BUILD.gn
* //infra/inclusive_language_presubmit_exempt_dirs.txt
* //third_party/rust/chromium_crates_io/Cargo.toml
* //third_party/rust/chromium_crates_io/gnrt_config.toml
* //third_party/rust/jxl*/OWNERS
* Rest is autogenerated by `tools/crates/run_gnrt.py`:
Bug: 462919304
Change-Id: I9d918e8594f6856d33c6214c0c6ea47d3e81d47a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7201443
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: Helmut Januschka <helmut@januschka.com>
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1556445}
A warning for namespace pollution was being triggered for the statement:
`using namespace bssl;`.
Unfortunately this warnings is triggered in the `.cc` file due to how
shadow file inclusions work in brave. This change disables the warning
for this file, as a workaround to this issue.
commit 6dbed74d9da9ac0912b3f78eb85da306063c56aa
Author: Rudolf Polzer <rpolzer@google.com>
Date: Tue Dec 30 01:58:07 2025 -0800
Namespace crypto/curve25519's internal symbols.
Not including some asm-defined symbols for now, but marked them as
`extern "C"` explicitly.
Down from 1010 to 998 unintended exported symbols.
Bug: 42220000
Change-Id: I53af26985dc83df3e782ddd94c9fce67029b57b2
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/86328
Reviewed-by: Xiangfei Ding <xfding@google.com>
Commit-Queue: Rudolf Polzer <rpolzer@google.com>
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/6927642558f8610d2896dcac5688b64d19cba776
commit 6927642558f8610d2896dcac5688b64d19cba776
Author: Alison Gale <agale@chromium.org>
Date: Tue Jan 6 10:55:43 2026 -0800
Migrate LayoutConstant enum callers to support enum class
['chrome/browser/ui/views/bookmarks', 'chrome/browser/ui/views/omnibox', 'chrome/browser/ui/views', 'chrome/browser/ui/views/permissions', 'chrome/browser/ui/views/controls', 'chrome/browser/ui/views/extensions', 'chrome/browser/ui/views/tab_sharing', 'chrome/browser/ui/views/webauthn']
This CL was uploaded by an experimental version of git cl split
(https://crbug.com/389069356).
Bug: 40281257
This reverts commit fd4eabe2131e038a44d3626da85663c7430d2d64.
Upstream removed their test and the method it was testing.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/1aad59a6546fef10cb1cfffd53e7a40720e20224
commit 1aad59a6546fef10cb1cfffd53e7a40720e20224
Author: Deepak Ravichandran <deepakr@google.com>
Date: Tue Jan 6 11:05:52 2026 -0800
This change addresses reviewer feedback on https://crrev.com/c/7269048.
The original implementation registered the custom URI scheme (e.g.,
`google-chrome://`) during a specific post-install step in
`install_worker.cc`. The feedback suggested this logic should be part of the
central browser registration process in `shell_util.cc`'s
`RegisterChromeBrowserImpl` to ensure it happens unconditionally whenever
Chrome is registered. This CL performs that refactoring without changing the
end functionality.
Bug: b:446672134
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/2b5bd6d48edcb963a69a3b1ee6b451709129c013
commit 2b5bd6d48edcb963a69a3b1ee6b451709129c013
Author: Fred Shih <ffred@chromium.org>
Date: Tue Dec 9 15:04:35 2025 -0800
Split trusted and untrusted webui registries
This prevents cross contamination between trusted and untrusted global
WebUI binders.
Currently, there is a problem where both trusted and untrusted could
receive a registration for the same WebUI page, in which case the
trusted has precedance.
We should add a validation which checks that a webui is registered
with the correct registry based on its security context. Bug for that
work is here: crbug.com/463472166
Bug: 452389543,463472166,464033838
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e1c578333b0d5d1c5e12b3cf8ce4fa91a6793452
commit e1c578333b0d5d1c5e12b3cf8ce4fa91a6793452
Author: Alison Gale <agale@chromium.org>
Date: Tue Jan 6 09:07:39 2026 -0800
[Vertical Tabs] Set up LayoutConstant to migrate to enum class
This enum is used by ~100 files so there will be merge conflicts. To
avoid that, I'm setting up the enum so it can be called in the correct
format for an enum class. After migrating all the callers, I'll update
the enum to be an enum class and remove the old values.
Motivation is better type safety. As an example, vertical_tab_view.cc
and bookmark_bar_view.cc are updated. The later had a bug I found while
making this change.
WIP of migrating all of these to use the new values:
https://chromium-review.googlesource.com/c/chromium/src/+/7377285
Change-Id: I98a91e5de77f53955bb76ee7fd795c67334b2112
Bug: 40281257,469096429
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7380120
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: David Pennington <dpenning@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1565043}
This change moves `ShouldDrawStrokes` into `BraveBrowserView`, following
what has also been done in upstream.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a9db94dd2b7746bbbe164b65ceb150cd9c02e039
commit a9db94dd2b7746bbbe164b65ceb150cd9c02e039
Author: dljames <dljames@chromium.org>
Date: Tue Jan 6 14:31:53 2026 -0800
[Vertical Tabs] Move ShouldDrawStrokes into BrowserView
Removes ShouldDrawStrokes from the TabStripRegionView API and into
BrowserView which has access to all of the information needed to
calculate this value.
Remove duplicate implementations from other files as applicable.
Change-Id: I392825365eb637b61ddc7e7c5dfa5509026d3954
Bug: 465190040
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7398641
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1565280}
Chromium changes:
https://source.chromium.org/chromium/chromium/src/+/31394abe9a00af4fd76e901e72199bedb4dd04d6
commit 31394abe9a00af4fd76e901e72199bedb4dd04d6
Author: Atharv Maan <atharvmaan@chromium.org>
Date: Fri Dec 12 12:40:52 2025 -0800
Move metric recording logic out of DefaultBrowserInfoBarDelegate
This CL has the following changes:
- Moves the metric recording logic from DefaultBrowserInfoBarDelegate to
DefaultBrowserInfoBarManager.
- Deprecates IGNORE_INFO_BAR metric which was being recorded per-tab.
- Adds IGNORE_INFO_BAR_V2 that recordes once per browser session, based
on the last tabbed browser window closing.
- Moves user interaction logic from the delegate to the manager.
Bug: None
https://source.chromium.org/chromium/chromium/src/+/a0449084d836c7af9c16d05a44cd0269d10ab79f
commit a0449084d836c7af9c16d05a44cd0269d10ab79f
Author: Atharv Maan <atharvmaan@chromium.org>
Date: Tue Dec 16 08:33:14 2025 -0800
[Default Browser] Migrate Default Browser startup infobar
This CL migrates the Default Browser startup infobar to rely on the
Default Browser framework, conditional on the `kDefaultBrowserFramework`
feature flag.
Bug: 454597770
https://source.chromium.org/chromium/chromium/src/+/29f46678c4315c0cb0e30b76cc4b1d8941b6c354
commit 29f46678c4315c0cb0e30b76cc4b1d8941b6c354
Author: Atharv Maan <atharvmaan@chromium.org>
Date: Thu Jan 8 06:27:07 2026 -0800
[Default Browser] Migrate Default Browser settings toggle
This CL migrates the Default Browser settings toggle to rely on the
Default Browser framework, for querying and setting default browser
state.
Bug: b:454597770
The test started to fail because the below upstream change added a
change in ProfileManager::AddKeepAlive gated on
features::kDestroyProfileOnBrowserClose feature. We disable this feature
to make clear browsing data on exit work, but we may want to look into
reconsidering this deviation from upstream.
Related:
https://github.com/brave/brave-core/commit/b0e221e933b835354782a33c2a2af7e0af4477c1
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/d07ba786268512f9a6bc3bcda25bf9dbb5a1c354
commit d07ba786268512f9a6bc3bcda25bf9dbb5a1c354
Author: Ahmed Raslan <rslan@google.com>
Date: Fri Dec 12 01:34:44 2025 -0800
Don't install extensions for soon-to-be-destroyed profiles
This change modifies CrxInstaller to use
ScopedProfileKeepAlive::TryAcquire when starting an installation. If the
profile is already in the process of shutting down, TryAcquire will
fail, and the installation will be aborted with a new
CrxInstallErrorDetail::PROFILE_SHUTTING_DOWN error. A new browsertest is
added to verify this behavior.
BUG=368360956
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/416a61c418c152a7a7ae568d89302e5ecb6e4a3d
commit 416a61c418c152a7a7ae568d89302e5ecb6e4a3d
Author: Andrew Grieve <agrieve@chromium.org>
Date: Tue Dec 2 14:13:59 2025 -0800
Android: Split ObservableSupplier into Nullable / Monotonic / NonNull variants
The goal is to use proper @Nullable annotations with
ObservableSuppliers.
To achieve this, we use interfaces that define nullness:
* (Settable)NullableObservableSupplier
* (Settable)ObservableSupplier <-- monotonic
* (Settable)NonNullObservableSupplier
And we have ObservableSupplierImpl implement all of them.
In order to make this migration manageable, I've marked the interfaces
as @NullUnmarked, and will fix annotations in batches until they
can be marked @NullMarked.
This CL includes a batch in order to test out the new interfaces (and
because many were necessary to make the change).
Monotonic suppliers are by far the most common afaict, so that's why
the non-prefixed ObservableSupplier is the monotonic one (that, and
because "Monotonic" is a mouthful).
One implication of this approach is that we'll never have:
ObservableSupplier<@Nullable Foo>
We'd have instead:
NullableObservableSupplier<Foo>
Having the nullness in the interface rather than in the generic
allows for defining toNonNull() only on monotonic suppliers, and
simplifies the implementation.
Bug: 455874046
Change-Id: Id48e235b9ff16a5b21a9c1199863150d17c22736
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7206746
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1553094}
Otherwise there is a build error:
Traceback (most recent call last):
File "/mnt/wd2t/projects/brave-browser-3/src/out/android_Release_arm64/../../tools/grit/grit.py", line 17, in <module>
sys.exit(grit.grit_runner.Main(sys.argv[1:]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/wd2t/projects/brave-browser-3/src/tools/grit/grit/grit_runner.py", line 313, in Main
return toolobject.Run(options, args[1:])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/wd2t/projects/brave-browser-3/src/tools/grit/grit/tool/build.py", line 265, in Run
self.res = grd_reader.Parse(opts.input,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/wd2t/projects/brave-browser-3/src/tools/grit/grit/grd_reader.py", line 252, in Parse
handler.root.AssignFirstIds(filename_or_stream, defines)
File "/mnt/wd2t/projects/brave-browser-3/src/tools/grit/grit/node/misc.py", line 657, in AssignFirstIds
raise Exception('Please update %s and add a first id for %s (%s).' %
Exception: Please update ../../out/android_Release_arm64/gen/tools/gritsettings/default_resource_ids and add a first id for chrome/browser/glic/resources/browser_resources.grd (includes).
The removal of this accessor was causing failures to an existing
override replacing calls for `ConvertPointToTarget`, which was making
use of this accessor. This change corrects the way to how this object is
retrieved in the override.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/98134b0b68889c778dde25b32e506d3a0bb634b8
commit 98134b0b68889c778dde25b32e506d3a0bb634b8
Author: dljames <dljames@chromium.org>
Date: Mon Jan 5 12:10:46 2026 -0800
[Vertical Tabs] Remove usage of TabStrip from BrowserRootView 2
Removes usage of TabStrip from BrowserRootView entirely. The same
behavior can be achieved by using TabStripRegionView the tabstrip
agnostic interface. Making this change will utlimately remove the need
for BrowserView::tab_strip() in the future allowing the code to work
as-is when swapping between VerticalTabs and HorizontalTabs.
To achieve this, TabStripRegionView now extends
BrowserRootView::DropTarget. This allows BrowserRootView to forward drop
events through the interface and into the TabStrip implementations. This
allows tabs to appear as if they extend to the full height / width of
their container even though the bounds are stricter.
Change-Id: I1bf7948e632fe1122189eccd2dd89ea8f8679b79
Bug: 465190040
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7304863
Reviewed-by: David Pennington <dpenning@chromium.org>
Commit-Queue: Darryl James <dljames@chromium.org>
Reviewed-by: Steven Luong <stluong@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1564542}