This is overall a simplification, as the callback doesn't produce a pair
of metrics anymore, but just the desired one.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c63bd9318b07813ff357fc150ab02743e63b332c
commit c63bd9318b07813ff357fc150ab02743e63b332c
Author: Mark Pearson <mpearson@chromium.org>
Date: Mon Feb 2 12:00:02 2026 -0800
Deprecate Domain Diversity V2 metrics.
[AI generated summary]
This change removes the "V2" versions of the Domain Diversity metrics
(History.DomainCount*Day_V2) which included synced visits. The
`GetDomainDiversity` API in HistoryBackend and
`CountUniqueDomainsVisited` in HistoryDatabase are simplified to only
return results based on locally visited domains, as the V3 and V4
metrics only use local counts. The corresponding unit tests and
histogram definitions are updated accordingly.
BUG=477024476,40896778
OBSOLETE_HISTOGRAMS=Replaced with _V3 and _V4 versions of the histograms.
Change-Id: Ibf52839ab6ba8afbbdadabe6cde0b3605b6c5bf0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7528718
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Mark Pearson <mpearson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1578302}
With the base class changing the functions it now provides as pure
virtual, this change follows the new approach and sets the new APIs to
produce failures when called.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f3bc58a3baae4acd9de8f729f135fa0e7349ea4d
commit f3bc58a3baae4acd9de8f729f135fa0e7349ea4d
Author: Norge Vizcay <vizcay@google.com>
Date: Mon Feb 2 04:47:09 2026 -0800
[Wallet] Refactor WalletHttpClient to use UpsertPass
This CL refactors the WalletHttpClient interface to support both saving
and updating passes via a new UpsertPass method.
Key changes:
- Renamed SavePass to UpsertPass and added GetUnmaskedPass to the interface.
- Updated UpsertPass documentation to clarify that the presence of an ID determines whether a pass is saved as new or updated.
- Modified callbacks to return the WalletPass data model directly instead of a dedicated result struct.
- Added an optional id field to the WalletPass struct.
- Updated the ingestion controller and unit tests to match the new API.
Bug: 478783796
Change-Id: I920e39912e741e89d24285d9a79759357d7414fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7535239
Commit-Queue: Norge Vizcay <vizcay@google.com>
Reviewed-by: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1578049}
Originally `brave_unit_tests` failed with ClassNotFoundException for
org/chromium/chrome/browser/ui/browser_window/GlobalBrowserCollectionPlatformDelegate
This new class is at //chrome/browser/ui/browser_window/internal:java target.
Upstream's test depends on it:
```
gn path out/android_Static //chrome/android:chrome_public_test_apk \
//chrome/browser/ui/browser_window/internal:java
//chrome/android:chrome_public_test_apk --[private]-->
//chrome/android:chrome_all_java --[private]-->
//chrome/browser/ui/browser_window/internal:java
```
but brave_unit_tests` didn't, so added corresponding deps.
Attepts to use less scope deps
`//chrome/browser/ui/browser_window/internal:java` or
`//chrome/browser/ui/browser_window` didn't help, the 1st was rejected with
visibility error, with the 2nd there still was a crash.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/bfc09e8bb39dfa5f4bbec1d62194cef500caa184
Set up cross-platform structure for GlobalBrowserCollection.
We decided to use per-platform delegates to implement the
platform-specific behaviour, while keeping the GlobalBrowserCollection
class itself platform-agnostic.
See
https://docs.google.com/document/d/17yoOyDfHPaRo-MY4QDqvBK_adPnO2jymZbNh4JvNST8/edit?tab=t.0
for discussion and reasoning (this is "option 8").
This CL:
* removes global_browser_collection_android.cc and
global_browser_collection_non_android.cc, unifying them back into
global_browser_collection.cc
* renames global_browser_collection_non_android_browsertest.cc back to
global_browser_collection_browsertest.cc (it is not Android-compatible
yet, but the goal is to make it work on Android when the Android
implementation is ready)
* adds a shared global_browser_collection_platform_delegate.h header and
separate per-platform .cc implementations (the Android side remains
unimplemented so far - the real implementation will happen in future
CLs, but for now, at least it compiles)
* moves the BrowserCollectionObserver implementation out of
GlobalBrowserCollection and into the non-Android implementation of
GlobalBrowserCollectionPlatformDelegate - the Android implementation
will not need to be a BrowserCollectionObserver
* enables the GlobalBrowserCollection member in GlobalFeatures for
Android
Bug: 474120522
Bypass-Check-License: global_browser_collection_browsertest.cc is renamed, not new
Change-Id: I5adeb3067055b55966b717573be3e4a66a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7494036
```
https://ci.brave.com/job/brave-core-build-pr-android/job/PR-33234/86/console
23:38:46 > gn gen /home/ubuntu/workspace/e-core-build-pr-android_PR-33234/src/out/android_Static --check
23:39:42
ERROR at //brave/browser/ai_chat/ai_chat_service_factory.cc:36:11: Include not allowed.
23:39:42 #include "chrome/browser/actor/actor_keyed_service_factory.h"
23:39:42 ^-------------------------------------------------
23:39:42 It is not in any dependency of
23:39:42 //brave/browser/ai_chat:ai_chat
23:39:42 The include file is in the target(s):
23:39:42 //chrome/browser/actor:actor
23:39:42 which should somehow be reachable.
23:39:42 This might be a false alarm if you are using conditional include. See "gn help nogncheck".
```
Moved deps out of `if (enable_brave_ai_chat_agent_profile) {` guard, which is false on Android,
but gn_check can't process `#if BUILDFLAG(ENABLE_BRAVE_AI_CHAT_AGENT_PROFILE)` guard at .cc file
There is a free function that should be used in place of the previous
member function.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/2859095334d41f496f576cc45478a6231b2ed99b
commit 2859095334d41f496f576cc45478a6231b2ed99b
Author: David Bokan <bokan@chromium.org>
Date: Fri Jan 30 21:10:30 2026 -0800
Actor: Refactor SitePolicy's use of ActorPolicyChecker
This CL is a non-functional refactor.
Currently site policy checks are expected to flow through
ActorPolicyChecker. This CL flips the dependency so that clients call
the site policy functions and pass in an ActorPolicyChecker via an
interface which implements enterprise-specific checks.
This allows ActorPolicyChecker to be re-implemented for non-Glic clients
and will allow ActorPolicyChecker to be moved out of actor/ and into
glic/ where it belongs.
Change-Id: I4789aa391f4605bd44f4697a7a3c06fee2c50b70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7535818
Reviewed-by: Kevin McNee <mcnee@chromium.org>
Commit-Queue: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1577683}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/90bbbf8c22d3727c3f35756a863dc1bb222db2d0
[BrowserControls] Defer lock status change during DTC transition
TopControlsStacker calculates the layer offset assuming they keep a
consistent height and min height during transitions. As a result, if we
change the top control lock status, which would change whether layers
contribute to minHeight, would cause unexpected behaviors for browser
driven offset calculations.
This CL lets TabStripTopControlLayer uses the TokenHolder provided by
TopControlLockCoordinator to prevent the lock status from changing, to
ensure layers can maintain a consistently state whether they contribute
to minHeight during tab strip transition.
Bug: 469484975
Change-Id: I57b55604c062940bcc120788f0b0764c244bd292
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7355240
This argument was just being passed along by the overriden class.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/39d901b3e64ec2b6e255e394eb0d7a1b29a1635c
commit 39d901b3e64ec2b6e255e394eb0d7a1b29a1635c
Author: Kaan Alsan <alsan@chromium.org>
Date: Thu Jan 29 11:49:10 2026 -0800
Move drag offset data into DragSessionData
This is a refactoring with no changes in logic.
This moves the offset out of TabDragController and into DragSessionData.
This will allow clients (e.g. TabDragContext or TabDragTarget) to access
it and use it for layout calculations.
Change-Id: I12c48932651b806d5bc38987828f24a10aa67513
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7532031
Commit-Queue: Kaan Alsan <alsan@chromium.org>
Reviewed-by: Alison Gale <agale@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1576761}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/93d7cdf927a4cb81327613abbcfb66ddff0ab330
commit 93d7cdf927a4cb81327613abbcfb66ddff0ab330
Author: Brian Bondy <brian@brave.com>
Date: Tue Jan 20 22:49:30 2026 -0800
Fix buildflag_header template to support invoker's public_deps
The template was forwarding public_deps from the invoker via
forward_variables_from(), but then unconditionally assigning to it.
This is incompatible - you can't forward a variable and also directly
assign to it.
The fix removes public_deps from forward_variables_from and explicitly
checks for invoker.public_deps after initializing the required
//build:buildflag_header_h dependency.
Bug: 476399185
Change-Id: I1dfd5bffd589c92088939540ec8d41978281d617
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7486518
Reviewed-by: Claudio DeSouza <cdesouza@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Philipp Wollermann <philwo@google.com>
Auto-Submit: Brian Bondy <brian@brave.com>
Commit-Queue: Philipp Wollermann <philwo@google.com>
Cr-Commit-Position: refs/heads/main@{#1572085}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/23c8fddd48102899160ce4d71b1ab1949c88a248
[Theme] Add NtpCustomizationPolicyManager.
In this CL, we add NtpCustomizationPolicyManager which listens to
Pref.NTP_CUSTOM_BACKGROUND_DICT changes.
1) Pref.NTP_CUSTOM_BACKGROUND_DICT being managed means the
policy::key::NTPCustomBackgroundEnabled is disabled.
2) When the policy NTPCustomBackgroundEnabled changes,
NtpCustomizationPolicyManager saves the latest policy value to the
shared preference. It will apply after relaunch chrome. This allows
the UI correct when CTA isn't recreated.
Demo: http://shortn/_nBBqRNFS3N
Bug: 467029432
Change-Id: I04a50d0d814802fbd3ef8be29414a17181adae98
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7500251
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3ed3758939d175c173d16090cb2e0eafd9583fe4
commit 3ed3758939d175c173d16090cb2e0eafd9583fe4
Author: Norge Vizcay <vizcay@google.com>
Date: Wed Jan 28 01:30:02 2026 -0800
Rename WalletablePass to WalletPass in the wallet data model.
This change renames the WalletablePass struct to WalletPass and updates
its associated files and references across the wallet component. It also
simplifies the request building logic in WalletHttpClientImpl as part of
the transition to a more generic data model for Google Wallet passes.
Bypass-Check-License: Files were moved.
Bug: 478783796
Change-Id: I94d65f6a78a439901d1fbec4707ccf645446023d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7520530
Commit-Queue: Norge Vizcay <vizcay@google.com>
Reviewed-by: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1575789}
This new optional argument has been added to this constructor, and
passing `nullptr` suffices for our usecase.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/aa20421f6ed5fccebeffefd43aff3aa7ef00196a
commit aa20421f6ed5fccebeffefd43aff3aa7ef00196a
Author: Andrea Orru <andreaorru@chromium.org>
Date: Wed Jan 28 08:23:46 2026 -0800
[Extensions] Refactor WebRequest listener registration via EventRouter
This change introduces an alternative path for registering webRequest
event listeners, guarded by the WebRequestAlternativeAddListener feature
flag. This approach leverages the standard EventRouter observer pattern
instead of the custom webRequestInternal API.
This change adds support for passing an `options` object through the
standard registration pipeline as an extra argument to `addListener`.
This is in preparation to moving the custom persisted listener logic
from WebRequest to EventRouter.
There's no expected behavior change from this CL, since it's gated by a
disabled feature flag.
Bug: 474558883
Change-Id: I4c40c7cfb15bf5e4dfdff1c884ad44dee686e1a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7419247
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Andrea Orru <andreaorru@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1575969}
This chage corrects several places where `BrowserList::begin()/end()`
were being used to iterate over the existing browsers, and replaces it
with `GlobalBrowserCollection::GetInstance()->ForEach`. This is a crude
fix, and there are possibly better ways to approach some of these
problems.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c109836647bb0459d8076484ba1b1cc5b5b44b4d
commit c109836647bb0459d8076484ba1b1cc5b5b44b4d
Author: Qikai <qikaizhong@microsoft.com>
Date: Thu Jan 29 00:51:37 2026 -0800
[bedrock] Migrate last BrowserList begin/end usages
Migrate BrowserList::begin()/end() to GlobalBrowserCollection and
BrowserListObserver to BrowserCollectionObserver where appropriate.
Changes:
- Update callers of begin()/end() to use GlobalBrowserCollection::ForEach()
- Migrate BrowserListObserver to BrowserCollectionObserver
- Move BrowserList::begin()/end() to private section
- Remove deprecated BrowserList apis
Bug: 431671320
Change-Id: I8b1b1556081590df2f0a02796452be53dd5d28ca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7508892
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Commit-Queue: Qikai Zhong <qikaizhong@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1576420}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/800bcec4216aaa7dd4df9f86af6e9804d760c8ec
actions revamp: Extract DragTouchHandler from RecyclerViewAdapter
This CL extracts `DragTouchHandler` from
`DragReorderableRecyclerViewAdapter` for better separation of concerns
and better customizability of the class.
This is in preparation of implementing custom behaviors for the toolbar
actions. The plan is inject a customized `DragTouchHandler` with some
overriding methods. These will come in following CLs.
This is a pure refactor and there should be no functional change with
this CL.
Bypass-Check-License: Renamed file in parent CL
Bug: 477519777
Change-Id: I55dff45b4664d77eb74bdd37c8c18dce74ce7680
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7500135
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f091fde2a67c7dfb248d4284346808343b180e12
commit f091fde2a67c7dfb248d4284346808343b180e12
Author: Kent Tamura <tkent@chromium.org>
Date: Tue Jan 27 04:37:04 2026 -0800
Remove blink::String::Split(StringView, Vector)
This change removes the `String::Split(const StringView&,
Vector<String>&)` method overload as an API simplification.
To achieve this, call sites were updated to use other `Split()`
overloads or switched to `StringView::Split*()`.
In some function signatures, `const String&` parameters were changed to
`const StringView&` to accommodate the new splitting method.
Bug: 473854537
Change-Id: Iefd4ee8ec50b4e1935b90dacac77ccbd497460a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7519604
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/main@{#1575134}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/97b35f324629e1c84577db7a7c625213ecb24bf7
commit 97b35f324629e1c84577db7a7c625213ecb24bf7
Author: Tomek Jurkiewicz <tju@google.com>
Date: Tue Jan 20 05:14:00 2026 -0800
Rename Supervised User settings service and data type to family link.
This renaming aims at better reflecting service's function in the wake
of multiple user supervision systems: this service exclusively handles
supervision settings related to family link users.
"Supervised user" relates to any parental controls type, and "Family
Link" is a specific one.
Minor: declare supervised_user namespace for the service and its
factory.
BYPASS_LARGE_CHANGE_WARNING=Gerrit is not picking up renaming
Bug: 475731719
Bypass-Check-License: Renaming
Change-Id: Icc59347f6e1a515db6fb1d53d2f7b60adba32089
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7493784
Reviewed-by: Mark Cogan <marq@chromium.org>
Reviewed-by: Rushan Suleymanov <rushans@google.com>
Commit-Queue: Tomek Jurkiewicz <tju@google.com>
Cr-Commit-Position: refs/heads/main@{#1571571}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/a41e19ef052b11e14784d8fd9eaa995f2fc4f6af
[Android] Implement ViewFinder#waitForView()
This is intended to replace the ViewUtils helpers:
* onViewWaiting()
* waitforView()
* waitForViewCheckingState()
* waitForVisibleView()
* waitForDialogViewCheckingState()
Migrate two usages as a start.
ViewFinder uses ViewCarryOn, which:
* Avoids the RootViewWithoutFocusException hangs in Espresso.
* Supports scoping searches to specific Activities avoiding
AmbiguousViewMatcherException.
* Provides history of the View state as it polled (including displayed rectangle and percentage, and ancestor visibility)
Bug: 428000595
Change-Id: I3efe6508113d04210588a6478cd7d179b9151cb6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7253845
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/62be9fed82911e8e37c4ef6a926590203fef434a
Reland "[permissions] Plumb PromptOptions through PermissionRequestManager"
This is a reland of commit 7688ee13bc24db46228f4873ecb27f0e9263a315. The cause of the failing test was actually tangential to this CL and is resolved by https://crrev.com/c/7484754.
Original change's description:
> [permissions] Plumb PromptOptions through PermissionRequestManager
>
> This is the last of a series of CLs that remove PromptOptions from
> PermissionRequest and instead plumb it through the code, see
> https://crbug.com/450752868 for more context.
>
> This CL removes prompt_options from the PermissionRequest and instead
> modifies the various methods Accept, AcceptThisTime, Deny, Dismiss and
> Ignore of PermissionRequestManager to get a PromptOptions parameter.
>
> Bug: 450752868, 469397053
> Change-Id: I145fa50b69596c744be4751d1b8d441573db0379
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7415427
> Reviewed-by: Andy Paicu <andypaicu@chromium.org>
> Reviewed-by: Marc Treib <treib@chromium.org>
> Commit-Queue: Antonio Sartori <antoniosartori@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1570263}
Bug: 450752868, 469397053
Change-Id: Ibf876e0dbc2cda765b9ed8237faff441874ce360
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7486896