512c53c2e6f7104bce88f9563f439a8eb6032f01
77947
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1e04a8434c |
Add SERP metrics to DAU ping (#35955)
The PR adds SERP metrics counts in the DAU ping when the SERP metrics feature is enabled. Also clears SERP metrics history when the user clears browser history. |
||
|
|
8fcf8d8dfc | 1.91.125 | ||
|
|
3d08742da6 |
[Wallet] fix accesses to non-existent data member (#35984)
We no longer use a TxStorageDelegate in Wallet. This stray data member access was left in because asan builds aren't common for developers or CI on PRs. Updates the code to use the new proper data member which carries the same member function. |
||
|
|
3bb82b9e52 |
[plaster] PermissionContextBase migration (#35907)
[plaster] `PermissionContextBase` migration The introduction of plasters for `PermissionContextBase` gets rid of a lot of replacement cruft that was really difficult to make sense of. This change also tweaks the interface for `BraveCanBypassEmbeddingOriginCheck`, so it can make the plaster simpler for this substitution too. The core of this change is to move `PermissionContextBase` in upstream into `chromium_impl::`, and derive our own implementatiom from that, which simplifies a lot of the issues with naming replacement everywhere. Resolves https://github.com/brave/brave-browser/issues/54952 |
||
|
|
4d70eeff99 |
Account: unblocks AuthenticationObserver usage in iOS Settings (#35925)
|
||
|
|
a78dc42b6a |
Fix macOS deprecation infobar message to reference macOS 13 instead o… (#35791)
Fix macOS deprecation infobar message to reference macOS 13 instead of 10.15 The warning message shown when dismissing the OS deprecation infobar incorrectly referenced macOS 10.15. Since Chromium 150 is dropping support for macOS 13.x (Ventura) or later, update the string to reflect 13.x. Resolves brave/brave-browser#54848 |
||
|
|
8316cb0dc1 | 1.91.124 | ||
|
|
d5f5a2ecc4 |
Switch Serp Metrics daily boundary calculations to UTC (#35829)
Replace local-midnight timestamps with UTC midnight throughout `SerpMetrics` and `SerpMetricsTimePeriodStorage` so daily report windows are always exactly 24 hours and unaffected by DST transitions. Add a `kLastReportedAt` preference to store the timestamp of each successful daily ping, giving `GetStartOfStalePeriod` a UTC-aligned starting point. Existing profiles that have no `kLastReportedAt` value continue migrating from the legacy local-date string in `kLastCheckYMD` until they send their first report under the new scheme. Remove the DST-specific test files since UTC boundaries need no DST correction. |
||
|
|
e9f4285068 |
[iOS] Avoid continuation misuse in Leo WebUI photo picker (#35974)
This is a speculative fix for the Photos picker calling the `didFinishPicking` delegate method more than once by ensuring that the continuation is niled out after a single use. |
||
|
|
a6b9c94ec8 |
[ads][CodeHealth] Extract data-mapping layer from all database tables (#35917)
[ads][CodeHealth] Extract database row mapping and helpers into dedicated util files Extracts mojom row mapping (FromMojomRow) and serialization helpers (Save, Purge, ConditionMatchersToString/StringToConditionMatchers) from database table classes into dedicated *_database_table_util and *_database_util files, following the existing deposits pattern. Covers transactions, creative set conversions, ad history, ad events, confirmation queue, confirmation tokens, payment tokens, creative ads, notification ads, new tab page ads, and condition matchers. Adds unit tests for every extracted function. |
||
|
|
809d5988bf |
[ads] Securely wipe payment id and recovery seed (#35898)
Overwrite the decoded recovery seed and derived key with zeros immediately after use during wallet construction, and zero all WalletInfo string fields in the destructor, so sensitive data cannot be recovered from freed memory. |
||
|
|
f739e2623c |
[ads][CodeHealth] Reduce cognitive complexity of BuildCreatives (#35923)
Resolves https://github.com/brave/brave-browser/issues/24938 by extracting BuildGeoTargets, BuildDayparts, BuildNotificationAdsFromCreativeSet, and BuildConversionsFromCreativeSet as anonymous-namespace helpers, flattening the nested loop structure in BuildCreatives. Adds unit tests covering the happy path, per-segment ad expansion, OS filtering, empty creative sets, and conversion validity. |
||
|
|
b1668ba27d |
[ads][CodeHealth] Replace *_alias.h files with types inline in their natural owners (#35922)
[ads][CodeHealth] Replace *_alias.h files with dedicated *_types.h headers Renames five alias headers to *_types.h: diagnostic_alias.h, segment_alias.h, purchase_intent_keyphrase_alias.h, text_classification_alias.h (relocated from model/), and ml_alias.h (relocated into transformation/). |
||
|
|
20c848a1f5 |
[ads][CodeHealth] Replace ScopedBrowserVersionNumberForTesting with BrowserVersion + FakeBrowserVersion (#35915)
Introduces `BrowserVersion`, a virtual singleton that delegates to `version_info::GetBraveChromiumVersionNumber()` in production and can be swapped in tests via `SetForTesting`. `FakeBrowserVersion` auto-installs itself on construction and restores the real instance on destruction, giving each test full control over the reported version without hardcoded strings. Removes `ScopedBrowserVersionNumberForTesting` and the associated bool flag in `browser_util.cc`. Promotes the `WasBrowserUpgraded` result cache from a static local to a resettable file-scope global so `FakeBrowserVersion` can clear it between tests. |
||
|
|
ec2c7ec26c | [iOS] Re-land Disable measured pre-boot in test runner (#35972) | ||
|
|
39fc9c7d94 |
Gate Playlist UI on BravePlaylistEnabled policy (#35823)
* Gate Playlist UI on BravePlaylistEnabled policy Complements #35732, which hides Playlist via the enable_playlist buildflag in is_brave_origin_branded=true builds, by also hiding the Playlist UI in is_brave_origin_branded=false builds when an administrator disables it via the BravePlaylistEnabled policy (kPlaylistEnabledPref managed=false). Adds playlist::IsPlaylistEnabled(prefs) / IsDisabledByPolicy(prefs) helpers alongside existing features.h / pref_names.h, mirroring the iOS PrefService.isPlaylistAvailable check and the ai_chat::IsAIChatEnabled pattern. The helper is used to gate the sidebar item, side panel coordinator and entry, browser action, playlist command, tab helper, page action icon, and the chrome-untrusted://playlist WebUI. The SidebarService now observes kPlaylistEnabledPref so the item appears and disappears when policy changes at runtime. User-driven pref toggles from settings keep their existing behaviour (UI stays reachable so the user can flip the pref back); only a managed pref forced off hides the UI. Fixes brave/brave-browser#50156 * Address review: move IsPlaylistAllowed out of common, simplify settings bools - Relocate playlist::IsPlaylistEnabled from components/playlist/core/common (which is reachable from any process) to a new components/playlist/core/browser target, since the helper depends on PrefService (browser-only). Rename the function to IsPlaylistAllowed to match its semantics (feature flag is enabled and the pref is not policy-disabled), matching bridiver's suggestion that "allowed" = managed+feature, "enabled" = user toggle. - Update all callers and BUILD/DEPS wiring for the new location. - In brave_settings_ui.cc, stop combining the feature flag and the user pref into a single isPlaylistAllowed loadTimeData bool. Instead expose isPlaylistFeatureEnabled and isPlaylistDisabledByPolicy (the Tor pattern), and let settings page code consult the pref directly via the prefs mixin when it needs the managed state. page_visibility.ts now computes playlist visibility from the two building blocks. |
||
|
|
3482487138 |
[PSST] Add consent dialog back-end (#35931)
* consent dialog backend Signed-off-by: Vadym Struts <vstruts@brave.com> * fix browser test Signed-off-by: Vadym Struts <vstruts@brave.com> * fix browser test Signed-off-by: Vadym Struts <vstruts@brave.com> * fix unit test Signed-off-by: Vadym Struts <vstruts@brave.com> * fix dependency Signed-off-by: Vadym Struts <vstruts@brave.com> * review Signed-off-by: Vadym Struts <vstruts@brave.com> * review Signed-off-by: Vadym Struts <vstruts@brave.com> * review Signed-off-by: Vadym Struts <vstruts@brave.com> * fix build Signed-off-by: Vadym Struts <vstruts@brave.com> * review Signed-off-by: Vadym Struts <vstruts@brave.com> * review Signed-off-by: Vadym Struts <vstruts@brave.com> * review Signed-off-by: Vadym Struts <vstruts@brave.com> --------- Signed-off-by: Vadym Struts <vstruts@brave.com> |
||
|
|
547affbc8d | 1.91.123 | ||
|
|
cbb092dc2f |
[iOS] Disable privacy reports & other notifications with Origin (#35937)
This avoids scheduling the privacy reports & default browser notifications when the user has Brave Origin purchased |
||
|
|
e7b7b994fb | 1.91.122 | ||
|
|
17003a1a7c | 1.91.121 | ||
|
|
337bdcb2a6 | [Rewards] Migrate OSCrypt from sync to async API (#35935) | ||
|
|
bee0e4e7d3 |
Delegate pinned tab width to Chromium when horizontal tabs update is off (#35929)
* Delegate pinned tab width to Chromium when horizontal tabs update is off When kBraveHorizontalTabsUpdate is disabled, BraveTabStyle::GetPinnedWidth still returned the compact new-design width (~38 DIP). Upstream tab painting insets the path by the bottom corner radius on each side, so pinned tabs looked like a ~14 DIP strip (brave-browser#54972). Delegate to TabStyle::GetPinnedWidth when the flag is off so layout matches classic painting. Add a BraveTabTest that asserts the upstream formula and a favicon-size sanity check when the feature is disabled. |
||
|
|
095628a834 | [Wallet] Refactor TxStorageDelegateImpl (#35426) | ||
|
|
858898d99a | 1.91.120 | ||
|
|
6d4290917d |
[plaster] Migration and fixes for request type customisations (#35903)
This PR migrates all macros in `components/permissions/request_type.cc` to plaster. The use of macros here particularly hid the fact that we failed to override the correct functions, in particular the way we were treating brave keys for `RequestTypeToContentSettingsType` and `IsRequestablePermissionType` was incorrect as both these functions are callers of `ContentSettingsTypeToRequestTypeIfExists`, and this fucntion has been slipping through all this time. Resolves https://github.com/brave/brave-browser/issues/54949 |
||
|
|
d72d27ea10 | 1.91.119 | ||
|
|
bea10ce5a0 |
[brockit] Conflict-resolved dev cycles patches just fixup! (#35941)
Patch files flagged for conflict resolution in most cases will end up committed by `brockit` in a "Conflict-Resolved" change. These "Conflict-Resolved" commits tend to occur daily with brockit, and they eventually get squashed when calling `rebase --squash-minor-bumps`. The issue this PR solves, is that when a patch is added/changed during the `cr` development cycle, that patch may end up becoming a conflict resolution candidate, and added to a "Conflict-Resolved" commit, which will eventually be picked up with `rebase --squash-minor-bumps` for squashing, and this will cause the commit to be moved prior to the patch being added/modified, resulting in a rebase conflict. This PR adds additional handling committing conflict-resolved patches, where a lookup for the patch in the branch history is carried out, to verify if any changes in the branch dev cycle are relevant for that patch, and if so, to commit the conflict-resolved patch as a `fixup!` for that change. This way, the next `rebase --squash-minor-bumps` squahses the fixup to the relevant changes, and no conflicts arise from having a "Conflict-resolved" patch being squashed with changes that have not been introduced yet. This approach is only employed for lifts in branches doing major version upgrades, as these branches are worked on an incremental schedule, where the need for this type of handling becomes apparent. Resolves https://github.com/brave/brave-browser/issues/54994 |
||
|
|
bb8afc75e0 |
[brockit] Provide logs for temp_dir.cleanup() failure (#35954)
This chnage is adding logs to this `temp_dir.cleanup()` call, to provide more detailed errors when this call fails. This call has started failing recently on TeamCity, and it is not very clear why. Bug https://github.com/brave/brave-browser/issues/55013 |
||
|
|
55bfeb4872 |
[brockit] Auto-detect vscode terminal (#35934)
This change drops the `--vscode` from `brockit lift` and introduces an auto-detect approach that checks for the presence of a vscode terminal session socket, and uses that socket to open files if detected as opening sources that require conflict attention is most likely always desired. This change also abandons the use of `code` command call to open sources, and uses the socket for that. This fixes the problem that code would send the command to open the sources to whatever was the foreground vscode window the user had, which would be the wrong one when multitasking. Resolves https://github.com/brave/brave-browser/issues/54989 |
||
|
|
2d5f19b071 |
[Sidebar V2] Manage side panel border and resize area based on rounded corners pref (#35768)
Resolves brave/brave-browser#54735 With this PR, side panel's padding is toggled per rounded corners setting. Introduces BraveSidePanelResizeArea, a SidePanelResizeArea subclass that adapts its layout based on whether the panel has a border: - With border (rounded corners on): delegates to the upstream layout so the resize strip sits inside the existing border gap. - Without border (rounded corners off): positions itself as a 5 px strip at the inner panel edge, overlapping the content area and sitting above it in z-order to win hit-testing. Adds SidePanel::SetBorderEnabled() via chromium_src macro injection to toggle the border at runtime. When disabled, the panel's views::Border is removed so content fills the full panel area. UpdateBorder() centralises the state management and is called from a wrapped Open() to undo the unconditional border_view_ re-show that upstream's UpdateVisibility() performs. The border insets are also corrected: upstream's negative top inset (meant to overlap the toolbar) is zeroed out because Brave does not need that overlap. Fixes the side panel's vertical position: the upstream layout places contents_height_side_panel 1 px above visual_client_area.y() to overlap the toolbar separator. CalculateSideBarLayout now aligns the panel's y and height with the contents container so the top separator remains fully visible when rounded corners are off. BraveBrowserView::UpdateSidebarBorder() calls SetBorderEnabled() based on ShouldUseBraveWebViewRoundedCornersForContents(), and BraveSidePanelResizeArea is installed via SetResizeArea() during sidebar setup. TEST=SidebarBrowserTest.SidebarV2ResizeAreaPositionMatchesBorderState |
||
|
|
fc934d942f |
[VPN 2.0] Add WinTun 3p dependency (#35828)
* [VPN 2.0] Add WinTun 3p dependency Add WinTun dependency to the brave-core, to be used later in the VPN 2.0 architecture by a privileged helper on desktop OSes, on Windows only. Since it's a prebuilt binary dependency, we don't add it as an existing build dependency, as we don't have to build it. * [VPN 2.0] WinTun vendoring - review fixes. |
||
|
|
d77778a6c3 |
Account: replace test-only OSCryptCallback ctor with SetOSCryptCallbacksForTesting (#35948)
|
||
|
|
baee47957f |
[iOS] Handle purchase flow cancellation in Origin paywall correctly (#35949)
This fixes a bug where if you cancelled the payment flow on the Origin paywall it would still dismiss the paywall and send you to the Origin settings page |
||
|
|
f8bfb24d84 | [Wallet] Skip ETH NFT owner lookup for non-EVM NFTs (#35942) | ||
|
|
fd28b5f240 |
Upgrade from Chromium 147 to Chromium 148 (#34644)
* Update from Chromium 147.0.7727.117 to Chromium 148.0.7778.60.
* Conflict-resolved patches from Chromium 147.0.7727.102 to Chromium 148.0.7778.48.
* [cr148] `gnrt` run for Chromium 148.0.7765.1.
* [cr148] `BookmarkContextMenuController` added `can_paste`
This requires adding extra atgs on our own overrides of these classes.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bca4b0a240b3c641d10a1518b232bc432c9f7472
commit bca4b0a240b3c641d10a1518b232bc432c9f7472
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Mon Mar 9 14:47:10 2026 -0700
[Reland] Fix BookmarkContextMenu paste menu enabled state
BookmarkContextMenu::BookmarkContextMenu indirectly called
BookmarkContextMenuController::IsCommandIdEnabled for IDC_PASTE. This
breaks since can_paste_ is only set when showing the menu. This CL fixes
the issue by passing can_paste to BookmarkContextMenu().
R=avi
Bug: 40398800
Change-Id: I130da5d5fca333508bbde8e0b02c57f03adb5e78
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7640749
Reviewed-by: David Yeung <dayeung@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1596622}
* [cr148] `ShowTabSearchBubble` dropped `section` arg
This argument was not being used in Brave, so it is of no consequence.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bb4630838cd0fd2567b306b6c481750fdf2b95dd
commit bb4630838cd0fd2567b306b6c481750fdf2b95dd
Author: Emily Shack <emshack@chromium.org>
Date: Mon Mar 9 16:23:28 2026 -0700
[TabOrganization] Deprecate tab index pref
Deprecates kTabSearchTabIndex and any reference to tab search sections,
following up to the removal of auto tab groups and declutter from tab
search.
Bug: 488463961
Change-Id: I5c9ecc7024e2125ddd524f381451c59a8cda1ee2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7630127
Reviewed-by: Alex Gough <ajgo@chromium.org>
Commit-Queue: Emily Shack <emshack@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1596690}
* [cr148] `SidePanelUtil` renamed to `SidePanelHelper`
This change corrects all uses and override for this class to use the new
path and refer to the new name. It is important to notice though that
upstream has introduced a new `SidePanelUtil`, and
`GetSidePanelContentProxy` was subsequently moved out of
`SidePanelHelper` and into the new `SidePanelUtil`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f1041bd627b995b8c64f3738472a4c16768e8488
https://chromium.googlesource.com/chromium/src/+/2af163009adf96c9bfd7b7918dd6ed32dc08f1b8
commit f1041bd627b995b8c64f3738472a4c16768e8488
Author: Mark Schillaci <mschillaci@google.com>
Date: Mon Mar 9 17:53:26 2026 -0700
[Side Panel Infra] Make the SidePanelContentProxy platform agnostic
This CL continues the work to prepare the Side Panel to be built on
Android. We make the SidePanelContentProxy generalized so that we can
include the SidePanelEntryWaiter on Android without having to add
many special-case #ifdef's for it. We move the remaining utility method
out of the views package to be in the platform agnostic package, and
move the content proxy files and update BUILD files as needed.
Bypass-Check-License: This is a moved file, not a new file or content.
Bug: 489780669
Change-Id: Ib69ffd474c62201276916de031d7741661cfccb2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7644871
Reviewed-by: Caroline Rising <corising@chromium.org>
Commit-Queue: Mark Schillaci <mschillaci@google.com>
Cr-Commit-Position: refs/heads/main@{#1596748}
commit 2af163009adf96c9bfd7b7918dd6ed32dc08f1b8
Author: Mark Schillaci <mschillaci@google.com>
Date: Mon Mar 9 17:52:12 2026 -0700
[Side Panel Intra] Rename SidePanelUtil to SidePanelHelper
This CL is a simple rename of an existing class. We rename the utils to
be clear that it is specifically for views::View related methods. In
upcoming CLs we will split the non-views related code out of this file
so that we can generalize the SidePanelContentProxy class to be
platform agnostic.
Bypass-Check-License: We are renaming files, not creating new ones.
Bug: 489780669
Change-Id: Icaed502e09e06f394fd4ad5f8cb960bb0395a490
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7644629
Reviewed-by: Caroline Rising <corising@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Mark Schillaci <mschillaci@google.com>
Cr-Commit-Position: refs/heads/main@{#1596746}
* [cr148] `BrowserAppMenuButton` icon override dropped
The override being removed was introduced to make sure taht
`GetIconSize()` was passed into `FromVectorIcon`. This is now being done
by upstream, making the override obsolete.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f3170a166a701d5b7d29130f44dfb407eeab3837
commit f3170a166a701d5b7d29130f44dfb407eeab3837
Author: Emily Shack <emshack@chromium.org>
Date: Tue Mar 10 15:59:39 2026 -0700
[GlowUp] Animate the app menu icon on hover
Adds a Lottie animation so that the app menu transforms into the Chrome
logo when hovered. This is implemented behind the kTabStripDeclutter
flag.
Also updates the app menu icon (not behind a flag), which didn't match
the latest UX mocks
Bug: 486253264
Change-Id: I040f74e60bfae26ff87ac8245a7b0d1d00f23fc9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7649384
Reviewed-by: David Pennington <dpenning@chromium.org>
Commit-Queue: Emily Shack <emshack@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597385}
* [cr148] Fixing `ad_tracker` inclusion
This header has been moved and this has to be corrected on our use of
it.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/1eb011788b5d7286578552bd807a588de4f5218a
commit 1eb011788b5d7286578552bd807a588de4f5218a
Author: Josh Karlin <jkarlin@chromium.org>
Date: Mon Mar 9 14:44:08 2026 -0700
Move the AdTracker into its own directory
Bug: 435683890
Change-Id: Ic243ac8c7a114d613777a2b788b631251696c84f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7639470
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Nate Chapin <japhet@chromium.org>
Commit-Queue: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1596619}
* [cr148][ios] `TargetDeviceInfo` no longer includes `full_name` and `short_name` fields
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c9dcfbf7aa3318b019a3802c0bdc0f7ee452c731
commit c9dcfbf7aa3318b019a3802c0bdc0f7ee452c731
Author: Michael Tatarski <mtatarski@google.com>
Date: Tue Mar 10 08:07:45 2026 -0700
Consolidate device name resolution logic into sync_device_info
Building on the previous extraction of `GetDeviceDisplayNames`
(https://crrev.com/c/7638170), this CL further centralizes device naming
logic by introducing `GetDeviceDisplayNamesForList()`.
Previously, both Send Tab to Self and Sharing Message independently
implemented logic to deduplicate device lists, filter out the local
device, and choose between short and full device names based on name
collisions. This logic is now unified within `sync_device_info`.
This is a pure refactoring and introduces no functional changes to the
generated device lists or names.
Bug: 485549442
Change-Id: Ib1f2c020386f23306edc35b43b9521027b9624ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7645592
Commit-Queue: Michael Tatarski <mtatarski@google.com>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597067}
* [cr148] `kSyncAutofillLoyaltyCard` deleted and made default
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ba1bc87f5b13d8446edbd4d30013806bd4ce2d41
commit ba1bc87f5b13d8446edbd4d30013806bd4ce2d41
Author: Norge Vizcay <vizcay@google.com>
Date: Wed Mar 11 00:42:18 2026 -0700
Remove kSyncAutofillLoyaltyCard feature flag
The kSyncAutofillLoyaltyCard feature has been launched. This CL removes
the feature flag and its associated conditional logic, making the
syncing of loyalty cards from Google Wallet enabled by default.
Bug: b:393119606
Test: components_unittests --gtest_filter=ValuablesDataManagerTest.*
Test: sync_integration_tests --gtest_filter=SingleClientValuablesSyncTest.*
Test: unit_tests --gtest_filter=SyncServiceFactoryTest.*
Change-Id: I63f09797a9cab0c28edb0f0439c7d1ef130e4fbb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7654135
Commit-Queue: Norge Vizcay <vizcay@google.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Etienne Bergeron <etienneb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597558}
* [cr148] `SidePanelRegistry` now retrieved as unowned data
This instance used to be retrieved through the tab features instance.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/2970137b00570120a51fea804f2c54e3a2f15f87
commit 2970137b00570120a51fea804f2c54e3a2f15f87
Author: Mark Schillaci <mschillaci@google.com>
Date: Wed Mar 11 06:02:38 2026 -0700
[Side Panel Infra] Move SidePanelRegistry for tabs to unowned user data
This CL updates the SidePanelRegistry to have a new From methods that
takes a TabInterface and uses unowned user data to fetch the registry.
We do this so that we can break the dependency on Browser* for clients
of the SidePanelRegistry, which will allow porting of the code to
Android. We add SidePanelRegistry as a tab scoped unowned data, and
update all callsites. The GetDeprecated method is still included but
future CLs can refactor those call sites to use this new approach.
Bug: 491476669
Change-Id: I88f94c7c7c5c62e9a4a16b35b2917902d9eba59b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7653790
Auto-Submit: Mark Schillaci <mschillaci@google.com>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Commit-Queue: Caroline Rising <corising@chromium.org>
Reviewed-by: Bryant Chandler <bryantchandler@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597683}
* [cr148] `PerformActionsCallback` dropped args
This callback now only passes the `action_results` vector, from which
the information contained on the dropped args should be retrieved with.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0b4371bdac738a1d3694383d097bfb3f1962c8ab
commit 0b4371bdac738a1d3694383d097bfb3f1962c8ab
Author: mark a. foltz <mfoltz@chromium.org>
Date: Tue Mar 10 18:33:33 2026 -0700
[actor] simplify PerformActions API
This CL removes result_code and index_of_failed_action from the
actor::PerformActionsCallback and related Act callbacks.
These values are now derived from the action_results vector:
- If all results are kOk, the task is successful.
- Otherwise, the first non-kOk result determines the result_code and
index_of_failed_action.
Bug: 490381613
Change-Id: Ic2cb372f425ffada667096b0678aebc74a85a433
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7644888
Reviewed-by: Rodney Ding <rodneyding@google.com>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597461}
* [cr148] Fix `PermissionPrompt::Delegate` mock class
A new pure virtual method was added to this delegate, namely,
`ShouldShowLocationPrecisionSelector`, and therefore a stub for it is
required in `MockPermissionPromptDelegate`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/03df9c4b7a0c4d970594c7966ce8857b5bb717c4
commit 03df9c4b7a0c4d970594c7966ce8857b5bb717c4
Author: Tom Van Goethem <tov@chromium.org>
Date: Wed Mar 11 08:05:20 2026 -0700
Add support for approximate-only geolocation prompts.
This CL introduces support for the approximate-only geolocation prompts
that can be requested through the <geolocation> element and the API. In
this CL, only the prompt string and the decision of when to trigger the
approximate-only prompt based on the permission request are added. The
connection to the API or <geolocation> element are not added yet. These
still need to be added in order to display the approximate-only prompts.
Bug: 483114849
Change-Id: I3b4e4c5186f4af5c3997e781d13426d42754331c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7559277
Reviewed-by: Antonio Sartori <antoniosartori@chromium.org>
Commit-Queue: Tom Van Goethem <tov@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597751}
* [cr148] Use spanified `WriteAtCurrentPos`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/42d167bff187e08502aeab99bc9ec8fe81e0d233
commit 42d167bff187e08502aeab99bc9ec8fe81e0d233
Author: Andrew Paseltiner <apaseltiner@chromium.org>
Date: Wed Mar 11 05:24:26 2026 -0700
Make non-spanified base::File::WriteAtCurrentPos overload private
Bug: 435317390
Change-Id: Iab79430a615d36c1a528a3cd4f96bca1cd38bec3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7653098
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Petr Cermak <petrcermak@chromium.org>
Commit-Queue: Andrew Paseltiner <apaseltiner@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597668}
* [cr148] `ProfileMetricsService` required by `PrimaryAccountManager`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/de412c3b43b45b5d201a968f8e1266de89d72475
commit de412c3b43b45b5d201a968f8e1266de89d72475
Author: Ryan Sultanem <rsult@google.com>
Date: Wed Mar 11 14:31:56 2026 -0700
[PerProfileMetrics] Implement metric for SignIn/Out.Completed
Bug: 417921579
Change-Id: I4210b45c70759dc79c2304eac30cb2cfc78f0048
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7637630
Reviewed-by: David Roger <droger@chromium.org>
Commit-Queue: Ryan Sultanem <rsult@google.com>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Jérôme Lebel <jlebel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597997}
* [cr148][Android] FragmentDependencyProvider.ctor windowAndroidSupplierarg changed
From `MonotonicObservableSupplier` to `OneshotSupplier`
Chromim change:
https://source.chromium.org/chromium/chromium/src/+/1886db4b40ccf9dfad5270be7861fefbb44c5ed3
commit 1886db4b40ccf9dfad5270be7861fefbb44c5ed3
Author: Anton Goncharenko <agonch@google.com>
Date: Tue Mar 10 17:49:16 2026 -0700
[Signin][Android] SafetyHub: Wait for UI dependencies before initializing sign-in coordinator.
For consistency with other fragments' provided dependencies, pass
Suppliers to SafetyHubModuleDelegateImpl rather than assuming the
Suppliers have already been initialized. Able to repro a
NullPointerException (WindowAndroid not being initialized) during
Activity recreation when killing Chrome during the "add new account"
sign-in flow (see repro steps in crbug.com/479179162).
Bug: 479179162
Change-Id: I8a37a6a532cf5d4650849ec86151e1ee9c9ee0f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7642808
Reviewed-by: Menghan Yang <myuu@google.com>
Commit-Queue: Anton Goncharenko <agonch@google.com>
Reviewed-by: Zaina Al-Mashni <zalmashni@google.com>
Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597438}
* [AI Chat] [Tab Focus] Decouple tab focus UI from removed upstream tab organization (#34637)
[AI Chat] [Tab Focus] Decouple tab focus UI from removed upstream tab organization
Upstream (549edd60fe) removed their tab organization UI in CR147,
leaving the tab search bubble as a plain search list. To prepare
for this change, this PR updates how we hook into upstream tab
search UI, and decouples our pref change notification methods and
method to open learn more page to our own instead of overriding
upstream's.
Main changes:
Restore the deleted auto_tab_groups WebUI under
browser/resources/tab_search/tab_focus/ with Brave naming
(TabFocusPageElement / 'tab-focus-page'), since our Leo-based
tab focus feature uses a customized version that doesn't depend
on upstream.
Wrap the upstream app with <brave-tab-search-app> that adds
cr-tabs navigation between "Tab Search" and "Tab Focus",
conditionally showing the tab organization page based on the
AI Chat feature flag and user pref, falling back to search-only
when disabled.
Add Brave Page callbacks (TabFocusEnabledChanged,
TabFocusShowFREChanged) via BraveExtend on the Page interface
for live pref updates, and add OpenLearnMorePage to PageHandler
for the tab focus learn more link.
Fix friend declaration hook to match an upstream private method
that still exists in CR147, and fix unit test by injecting
MOCK_METHODs into upstream MockPage via BindNewPipeAndPassRemote()
hook.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/549edd60fee41974de823b6bc2b4a715a526cb66
commit 549edd60fee41974de823b6bc2b4a715a526cb66
Author: Emily Shack <emshack@chromium.org>
Date: Fri Mar 6 13:08:50 2026 -0800
[TabOrganization] Remove ATG WebUI code
Auto tab groups has been deprecated, this removes all associated WebUI
code. Mojom/page handler code will be handled in a follow-up to minimize
CL size.
Bug: 488463961
Change-Id: Idb49a5303953194c53b5ed2a12ec4132ca037918
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7629718
Reviewed-by: Alison Gale <agale@chromium.org>
Commit-Queue: Emily Shack <emshack@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1595647}
* [cr147] Fixes for the deletion of ATG webui code
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/549edd60fee41974de823b6bc2b4a715a526cb66
commit 549edd60fee41974de823b6bc2b4a715a526cb66
Author: Emily Shack <emshack@chromium.org>
Date: Fri Mar 6 13:08:50 2026 -0800
[TabOrganization] Remove ATG WebUI code
Auto tab groups has been deprecated, this removes all associated WebUI
code. Mojom/page handler code will be handled in a follow-up to minimize
CL size.
Bug: 488463961
Change-Id: Idb49a5303953194c53b5ed2a12ec4132ca037918
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7629718
Reviewed-by: Alison Gale <agale@chromium.org>
Commit-Queue: Emily Shack <emshack@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1595647}
* [cr148] Add our own `PrefChangeRegistrar` for `TabSearchPageHandler` since upstream has eliminated theirs
Upstream no longer initializes or otherwise uses `pref_change_registrar_` in
`TabSearchPageHandler` but they forgot to remove it. Since we still need to
monitor pref changes, add our own to our override of their class.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bb4630838cd0fd2567b306b6c481750fdf2b95dd
commit bb4630838cd0fd2567b306b6c481750fdf2b95dd
Author: Emily Shack <emshack@chromium.org>
Date: Mon Mar 9 16:23:28 2026 -0700
[TabOrganization] Deprecate tab index pref
Deprecates kTabSearchTabIndex and any reference to tab search sections,
following up to the removal of auto tab groups and declutter from tab
search.
Bug: 488463961
Change-Id: I5c9ecc7024e2125ddd524f381451c59a8cda1ee2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7630127
Reviewed-by: Alex Gough <ajgo@chromium.org>
Commit-Queue: Emily Shack <emshack@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1596690}
* [cr148] `kSideBySide` feature flag deleted
Since upstream deleted the related user education badges, we no longer need to
suppress those.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/13f2ce9b0bb3e2dc58238a7ac69a2f009b5b6a18
commit 13f2ce9b0bb3e2dc58238a7ac69a2f009b5b6a18
Author: Alison Gale <agale@chromium.org>
Date: Thu Mar 12 09:08:54 2026 -0700
[SxS] Clean up split view flags
The bulk of the cleanup was done previously. This just removes the new
badge.
Bug: 473848046
Change-Id: I83c89e1ce5184b371f518003438235a95a4030ea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7658827
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: David Pennington <dpenning@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1598469}
* [cr148] Reanchor `BraveTabSearchButton` override
Upstream removed `TabSearchContainer`, so we need to move our override of
`BraveTabSearchButton` to the class where `TabSearchButton` is constructed
now (`HorizontalTabvStripRegionView`)
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d43a49df6f998a2e3828a410402cc46d41fae43a
commit d43a49df6f998a2e3828a410402cc46d41fae43a
Author: Emily Shack <emshack@chromium.org>
Date: Wed Mar 11 16:17:46 2026 -0700
[TabOrganization] Remove TabSearchContainer
Removes the auto tab groups nudge button, which in turn makes
TabSearchContainer obsolete. Replaces TabSearchContainer with a direct
reference to the tab search button itself.
Bug: 488463961
Change-Id: Ib1941ceabe6bccf6835c47561f9bff2a9d810bac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7651705
Reviewed-by: Darryl James <dljames@chromium.org>
Commit-Queue: Emily Shack <emshack@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1598058}
* [cr148] Deps fixes
* [cr148][ios] Use spanified version of `WriteAtCurrentPos`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/42d167bff187e08502aeab99bc9ec8fe81e0d233
commit 42d167bff187e08502aeab99bc9ec8fe81e0d233
Author: Andrew Paseltiner <apaseltiner@chromium.org>
Date: Wed Mar 11 05:24:26 2026 -0700
Make non-spanified base::File::WriteAtCurrentPos overload private
Bug: 435317390
Change-Id: Iab79430a615d36c1a528a3cd4f96bca1cd38bec3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7653098
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Petr Cermak <petrcermak@chromium.org>
Commit-Queue: Andrew Paseltiner <apaseltiner@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1597668}
* [cr148] Filter upstream tests as needed
* [cr148] `is_paste_and_match_style_enabled` plumbed into context menu
This argument only gets passed along for our purposes.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/54777b8f87dcd034f40ffa2bae1ffe0e5b59d321
commit 54777b8f87dcd034f40ffa2bae1ffe0e5b59d321
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Thu Mar 12 20:04:07 2026 -0700
[Clipboard] Async GetAllAvailableFormats replaces sync IsFormatAvailable
This change replaces the synchronous IsFormatAvailable method in
ui::Clipboard with an asynchronous GetAllAvailableFormats method. The
new method takes a callback and returns a set of all available formats.
All platform implementations (Android, Windows, Mac, Ozone, iOS, and the
non-backed implementation) have been updated. Callers across the
codebase have been refactored to use the new asynchronous API, often
utilizing a pseudo-synchronous pattern where acceptable or updating to
full async.
Synchronous convenience functions were added to clipboard_test_util to
facilitate the update of the extensive test suite.
IsFormatAvailable is most commonly used to enable the "Paste" menu item
in context menus. The strategy is to obtain this state before the menu
is created, since the menu delegate interface for determining if a
command is enabled should remain synchronous.
Behavior is preserved by this change except for a change in Textfield
(and it's subclass OmniboxViewViews): when pasting, the clipboard is
assumed to contain content. The consequence of this is event propagation
of Ctrl-V keypresses will stop on the Textfield when it may otherwise
have been propagated to parent views. This is deemed an acceptable
tradeoff for the async migration since this behavior is unlikely to ever
get hit.
Bug: 40398800
Change-Id: Ibc005d100d9cfd21cb9f06c758ce0a98282fdb97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7631097
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Mike Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1598848}
* [cr148] `TabCardView` created from `TabHoverCardBubbleView`
Several of the members from `TabHoverCardBubbleView` are now part of
`TabCardView`. This change corrects our override for this class and
several places where the interface was being used and needs to be
corrected.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/56e1946e9a5ef3f98eb5988bcf76292174df7860
commit 56e1946e9a5ef3f98eb5988bcf76292174df7860
Author: Dominic Austria <dominicaustria@google.com>
Date: Thu Mar 12 21:41:50 2026 -0700
Wrap TabHoverCardBubbleView child views
We put the child views of TabHoverCardBubbleView into a single view. Later on we will implement a view for tab group headers, called GroupCardView. This will have two child views, one to hold the title of the tab groups, and the other to hold the title of the tabs in the corresponding tab group. Having two wrapper child views for the hover card content will make it easier to implement cross fading when the hovercard moves from tab group to tab.
Bug: 481392191
Change-Id: I953282830c0849bad9b046f85603ab6f1112df55
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7630129
Reviewed-by: Emily Shack <emshack@chromium.org>
Commit-Queue: Dominic Austria <dominicaustria@google.com>
Cr-Commit-Position: refs/heads/main@{#1598874}
* [cr148] `AtomicString::LowerASCII` deleted
There's a new method to beused called `ToAsciiLower`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/fcbc3d11008b8ba6c1a2e18a962e5a3f5333295d
commit fcbc3d11008b8ba6c1a2e18a962e5a3f5333295d
Author: Kent Tamura <tkent@chromium.org>
Date: Fri Mar 13 02:54:54 2026 -0700
WTF: Remove LowerASCII() methods of String and AtomicString
We prefer ToAsciiLower().
This CL has no behavior changes.
Change-Id: I28ccfc28722922c86e1410b2dad167d7b6e222c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7657126
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1598954}
* [cr148] Tab strip model shadow files moved
These sources are moved on upstream and this change corrects their
location in Brave as well.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c9b4d76b7163c9c52a2742824dcf98230b7dee85
commit c9b4d76b7163c9c52a2742824dcf98230b7dee85
Author: Fred Shih <ffred@chromium.org>
Date: Fri Mar 13 11:28:57 2026 -0700
Make tab strip service truly platform agnostic
While the core logic of the service was (mostly) platform agnostic, some
of the components still had hard dependencies on TSM. This change
removes those hard dependency in subcomponents.
tl;dr start --
Move all TSM related stuff into tab_strip_model_impl folder. Remove all
TSM includes from all other files outside of that package.
Potential followup work: move all the non-tab_strip_model_impl package
outside of the chrome/browser/ui/tabs directory to prevent confusion.
-- end tl;dr
Overall, with the exception of some book keeping, it wasn't too
terrible, because most of the TSM language is already translated to an
internal language past the integration points. Most of the work was just
updating the includes and namespacing.
We did have two instances where TSM concepts bled into the service, but
they were reasonably easy to remove.
The configuration for the adapters is sufficiently complex enough that I
introduced a PlatformAdaptersProvider object to hold onto the different
pieces needed by the service. This should prevent future churn when
adding new dependencies, as it won't trigger a massive refactoring to
add new dependencies or to change interfaces.
Change-Id: Ieaf575de81f2b2fe51a7a5ab590a0c52f16a8b9c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7652133
Commit-Queue: Fred Shih <ffred@chromium.org>
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Reviewed-by: David Yeung <dayeung@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599199}
* [cr148] Support new `ProtectionLevel` in `ElevationService`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0fdbaef65b9ade5730c98d5af4fe57ece28f3341
commit 0fdbaef65b9ade5730c98d5af4fe57ece28f3341
Author: Will Harris <wfh@chromium.org>
Date: Fri Mar 13 10:35:06 2026 -0700
Add new app-bound validation type for isolated data
Data encrypted by a process running isolated cannot be decrypted by a
process not running isolated.
However, isolated processes can decrypt data from both isolated or
unisolated processes, which enables data security upgrade scenarios for
when a process becomes isolated.
SetIsolationState is extended to re-encrypt data to an unisolated state
if downgrading protection. This ensures the data remains accessible when
running unisolated. To achieve this, App-Bound takes an option to force
a re-encrypt to a particular protection level, and this is also exposed
via the App-Bound key provider.
Tests are added for all of this new behavior.
BUG=433545123
Change-Id: Ibff7119ec151f5ef11a7d5091b5360709db787ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7644512
Commit-Queue: Will Harris <wfh@chromium.org>
Reviewed-by: Greg Thompson <grt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599157}
* [cr148][Android] SyncServiceAndroidBridge methods signature changed
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/7555add0775582ef4c8b7458f4e95f7493c80d9e
commit 7555add0775582ef4c8b7458f4e95f7493c80d9e
Author: Andrew Grieve <agrieve@chromium.org>
Date: Wed Mar 11 17:24:07 2026 -0700
Add @JniType to a batch of files in //components (#4)
Bug: 491444984
Change-Id: I14feaa20d1cde9479f5742c171e955d504fd3f05
Cq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7654452
Reviewed-by: Peter Wen <wnwen@chromium.org>
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1598092}
* [cr148][Android] Move SigninManagerImpl to signin.services target
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/737d3e35abb1641430e6aed3f1b9d7bac36fd9c1
commit 737d3e35abb1641430e6aed3f1b9d7bac36fd9c1
Author: Liza Bipin <mlbipin@google.com>
Date: Thu Mar 12 03:02:24 2026 -0700
[Signin][Android] Move SigninManagerImpl to signin.services target
Fixed: 40163288
Bypass-Check-License: Files were moved and so contain an older licence date.
Change-Id: I99d2710096ce9e918995038d9834038adba28048
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7633764
Reviewed-by: Menghan Yang <myuu@google.com>
Commit-Queue: Liza Bipin <mlbipin@google.com>
Cr-Commit-Position: refs/heads/main@{#1598309}
* [cr148][Android] FeedSurfaceMediator.ctor changed
Removed:
- headerModel;
- openingTabId;
- optionsCoordinator;
- uiConfig.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/c65d635f364e1be31350bce04819b1e0a1465425
commit c65d635f364e1be31350bce04819b1e0a1465425
Author: Yanling <yanlinghu@google.com>
Date: Thu Mar 12 12:33:33 2026 -0700
[Feed] Reland: Removes feed header related code
This CL is a reland of
https://www.google.com/search?q=https://chromium-review.git.corp.google.com/c/chromium/src/%2B/7620591
The code in this CL is identical to the original. The previous CL was
reverted because the feed header tests were not completely removed in
Clank. Those tests have now been cleaned up, making it safe to land this
CL.
Bug: 407797637
Change-Id: I06b6481b0f998a811d1498e8d790e3c6f82d9c4c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7620591
Reviewed-by: Xi Han <hanxi@chromium.org>
Commit-Queue: Yanling Hu <yanlinghu@google.com>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1597904}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7661925
Cr-Commit-Position: refs/heads/main@{#1598611}
* [cr148][Android] SnapScrollHelperImpl.ctor takes NewTabPageCoordinator now
SnapScrollHelperImpl constructor changed to accept NewTabPageCoordinator
instead of NewTabPageLayout. Added mNewTabPageCoordinator shadow field to
BraveNewTabPage and create it in initializeMainView after inflating the
layout.
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}
* [cr148][Android] ToolbarManager.ctor gained ActivityResultTracker and DeviceLockActivityLauncher
Two new parameters added to ToolbarManager constructor between
WindowAndroid and OneshotSupplier<ChromeAndroidTask>:
- ActivityResultTracker
- DeviceLockActivityLauncher
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/c0e37322747db4f16956a53ff936c85905593c3b
commit c0e37322747db4f16956a53ff936c85905593c3b
Author: Sophie Crowley <crowleso@google.com>
Date: Wed Mar 11 10:30:11 2026 -0700
[Signin][Android] Add piping for Signin button onclick functionality
This will be immediately followed by its child CL
https://crrev.com/c/7604273 which uses all of these dependencies in
adding Seamless Signin + settings onclick functionality for this Signin
button. Split CL for ease of review. Adapted from
IdentityDiscController.java
Bug: 478828569
Change-Id: I600617b391ac061000998b1820ba573a57079e86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7600378
Commit-Queue: Sophie Crowley <crowleso@google.com>
Reviewed-by: Liza Bipin <mlbipin@google.com>
Cr-Commit-Position: refs/heads/main@{#1597857}
* [cr148][Android] TopToolbarCoordinator.ctor gained 7 new parameters
Seven new parameters added to TopToolbarCoordinator constructor after
MonotonicObservableSupplier<Profile>:
- SigninAndHistorySyncActivityLauncher
- WindowAndroid
- ActivityResultTracker
- DeviceLockActivityLauncher
- BottomSheetController
- ModalDialogManager
- SnackbarManager
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/c0e37322747db4f16956a53ff936c85905593c3b
commit c0e37322747db4f16956a53ff936c85905593c3b
Author: Sophie Crowley <crowleso@google.com>
Date: Wed Mar 11 10:30:11 2026 -0700
[Signin][Android] Add piping for Signin button onclick functionality
This will be immediately followed by its child CL
https://crrev.com/c/7604273 which uses all of these dependencies in
adding Seamless Signin + settings onclick functionality for this Signin
button. Split CL for ease of review. Adapted from
IdentityDiscController.java
Bug: 478828569
Change-Id: I600617b391ac061000998b1820ba573a57079e86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7600378
Commit-Queue: Sophie Crowley <crowleso@google.com>
Reviewed-by: Liza Bipin <mlbipin@google.com>
Cr-Commit-Position: refs/heads/main@{#1597857}
* [cr148][Android] ResourceButtonData moved to ui/actions package
Update import for ResourceButtonData which was moved from
org.chromium.chrome.browser.hub to org.chromium.chrome.browser.ui.actions.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/d364b657773ea7874b8ba6781d44cb9c2e54f55f
commit d364b657773ea7874b8ba6781d44cb9c2e54f55f
Author: Dan Polanco <polardz@google.com>
Date: Wed Mar 11 15:05:22 2026 -0700
Create ui/actions and move generic ButtonData
Moves DisplayButtonData, FullButtonData, and their generic
implementations out of the hub package into
chrome/browser/ui/android/actions.
Bug: 483096892
Bypass-Check-License: Rename/move files.
Change-Id: I9701129bf1d86ea20ac2786c9c66aa9778f1c64a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7654411
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Auto-Submit: Dan Polanco <polardz@google.com>
Commit-Queue: Dan Polanco <polardz@google.com>
Cr-Commit-Position: refs/heads/main@{#1598021}
* [cr148][Android] bottom_controls_stub renamed to tab_group_ui_container_stub
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/7f45d5ea69f24f70aa752408de0b2918d09b09c5
commit 7f45d5ea69f24f70aa752408de0b2918d09b09c5
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Fri Mar 13 10:44:30 2026 -0700
[BottomControls] More renames in preparation for bottom app bar
Bug: 492262214
Change-Id: I6cd721bdb6b403d5ebf608d8509bb30e074ed69d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7666737
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599164}
* [cr148][Android] BottomControlsMediator/Coordinator gained layerType param
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/d0dca8d3d103b066d551f6713a3ab53b1072ee51
commit d0dca8d3d103b066d551f6713a3ab53b1072ee51
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Fri Mar 13 10:44:15 2026 -0700
[BottomControls] Make bottom controls more generic
* Simplify back press logic.
* Extract LayerType so the component can be reused for multiple layers.
* Misc. cleanup and reorganization.
Bug: 492262214
Change-Id: Ic35a7613f950d73470471b4b5c8b62497c535cee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665618
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Reviewed-by: Dan Polanco <polardz@google.com>
Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599163}
* [cr148] `//third_party/mock` removed from gsutil third_party code
`//third_party/mock` was removed from the gsutil third_party code. We were
previously touching the Changelog file in this directory because it was needed
for our test suites to run properly on Android (see
https://github.com/brave/brave-browser/issues/31641). However, we can no longer
do that so removed that code (there was no adverse effect after removing it).
Chromium changes:
https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+/ac70fe6a2cd8d142ff08e4692fa3230fb954a211
commit ac70fe6a2cd8d142ff08e4692fa3230fb954a211
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu Mar 12 14:36:11 2026 -0400
Roll //third_party/gsutil 5.29 -> 5.36
And also set "Shipped: No" in the README.chromium
Required to support python3. Currently, I'm seeing:
>>> from devil.android import device_utils
>>> d = device_utils.DeviceUtils.HealthyDevices()
<snip>
File "/usr/local/google/code/clankium-rebaser/src/third_party/catapult/third_party/gsutil/third_party/apitools/apitools/base/protorpclite/messages.py", line 319, in __init__
raise EnumDefinitionError(
...<2 lines>...
(attribute, value))
apitools.base.protorpclite.messages.EnumDefinitionError: May only use integers in Enum definitions. Found: __static_attributes__ = ()
Change-Id: Ieb949db930984a1a84061b3a0a2159b12e5c0e30
Reviewed-on: https://chromium-review.googlesource.com/c/catapult/+/7658464
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Haiyang Pan <hypan@google.com>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
* [cr148] `chrome_select_file_policy.h` moved
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/74754be9d4550a487df006a51a33318245d37301
commit 74754be9d4550a487df006a51a33318245d37301
Author: Andrii Natiahlyi <natiahlyi@google.com>
Date: Mon Mar 16 07:03:16 2026 -0700
Componentize ChromeSelectFilePolicy to fix circular dependency
Extract ChromeSelectFilePolicy and its unit tests from the monolithic
//chrome/browser/ui target into a standalone source_set under
//chrome/browser/ui/select_file_policy/.
This refactoring breaks a circular dependency between
//chrome/browser/ui and //chrome/browser/ui/passwords/settings:impl.
BUILD files and includes have been updated across the codebase to
reflect the new location.
Bug: 437811373
Bypass-Check-License: Files were moved to a sub-folder.
Change-Id: I7ce28ca446211f5f6fe6dafab71c19b20bf18d18
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665700
Reviewed-by: Marc Treib <treib@chromium.org>
Auto-Submit: Andrii Natiahlyi <natiahlyi@google.com>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Commit-Queue: Hidehiko Abe <hidehiko@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599862}
* [cr148] Replace `SetCrashedOverlayView` with `TakeCrashedOverlayView` for shared pinned tab dummy view
Upstream removed `WebView::SetCrashedOverlayView()` (the borrow variant) in
favour of `TakeCrashedOverlayView()`, which takes ownership of the overlay view
via unique_ptr.
Update `SharedPinnedTabDummyViewViews::Install()` to transfer ownership to the
WebView using `TakeCrashedOverlayView()`. The `Install()` signature now accepts
`std::unique_ptr<SharedPinnedTabDummyView>` so the caller can hand off ownership
at the call site. `SetVisible(true)` is still required to force the overlay
visible: the dummy `WebContents` is created with `kNoRendererProcess` so
`UpdateCrashedOverlayView()` is not called again after installation, but it runs
once inside `TakeCrashedOverlayView()` and hides the overlay (since the contents
is not in a crashed state).
Note: AI-assisted: requires thorough review
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/cbbb5425a554127e6b5b69bdb180274c0fccfdd1
https://chromium.googlesource.com/chromium/src/+/b5d130cdc7fdd3b744f1ac723ce09111184f3ef3
commit cbbb5425a554127e6b5b69bdb180274c0fccfdd1
Author: Robert Liao <robliao@chromium.org>
Date: Mon Mar 16 15:11:52 2026 -0700
Remove WebView::SetCrashedOverlayView
This concludes the SadTab set_owned_by_client() removal.
Fixed: 486052969
Change-Id: I8996b978c265a1ea6f0be894c80a7a9edce3cae3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7670120
Auto-Submit: Robert Liao <robliao@chromium.org>
Commit-Queue: Allen Bauer <kylixrd@chromium.org>
Reviewed-by: Allen Bauer <kylixrd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600154}
commit b5d130cdc7fdd3b744f1ac723ce09111184f3ef3
Author: Robert Liao <robliao@chromium.org>
Date: Wed Apr 1 20:20:55 2026 -0700
Remove WebView::SetCrashedOverlayView
This concludes the SadTab set_owned_by_client() removal.
Fixed: 486052969
Change-Id: Ifcb897e910ccd2335b155cb6cb782c0d9eff844b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7722236
Commit-Queue: Robert Liao <robliao@chromium.org>
Auto-Submit: Robert Liao <robliao@chromium.org>
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1608957}
* [cr148] ESLint checks for `CrLitElement` source name
Turn off `eslint-comments/no-unlimited-disable` for chromium_src overrides, so
that we can use `// eslint-disable-next-line` in our TypeScript overrides when
necessary. There was no simpler way to avoid the original lint check, as it
would require splitting our override into multiple source files and including
those in the build.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d9c984b9e016d609c4cafbe55787123ded99ae14
commit d9c984b9e016d609c4cafbe55787123ded99ae14
Author: dpapad <dpapad@chromium.org>
Date: Fri Mar 13 18:20:00 2026 -0700
WebUI: Add ESLint check to disallow use of chrome.send in Desktop.
This is added as part of build_webui() ESLint checks and is enforcing
the updated guidance at [1]. Exceptions are added for all existing users
of chrome.send().
[1] https://chromium.googlesource.com/chromium/src/+/main/docs/webui/webui_explainer.md#Pre_Mojo-alternative_chrome_send_WebUIMessageHandler
Bug: 40245923
Change-Id: I175ce9be0f7c4ad3f280c93ee41ff54f399a18e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7662733
Auto-Submit: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599429}
* [cr148] `AccountConsistencyMethod` dropped from auth token
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/63307d4b1d2659d399b608c54ff3fa223260e711
commit 63307d4b1d2659d399b608c54ff3fa223260e711
Author: Alex Ilin <alexilin@chromium.org>
Date: Mon Mar 16 08:28:59 2026 -0700
[signin] Deprecate account_consistency in MutablePO2TSDelegate
This CL removes the account_consistency parameter from the
IdentityManager initialization flow and specifically from the
MutableProfileOAuth2TokenServiceDelegate.
MutableProfileOAuth2TokenServiceDelegate is only used on Desktop
platforms that use kDice account consistency, so the code can always
assume that kDice is being used.
account_consistency could be set to `kDisabled` when Chrome sign-in
isn't allowed. However, in this case Chrome will automatically remove
all accounts [1] so there is no point for
MutableProfileOAuth2TokenServiceDelegate to have an extra logic
preserving only primary but not secondary accounts in this case.
[1] https://crsrc.org/c/chrome/browser/signin/accounts_policy_manager.cc;drc=75bd37cd98d8654e740d5b267c1be6fbf81c6ede;l=279
Fixed: 487335996
Change-Id: I0dc317f40a384b0db0c5b2511ba9182a5663ad4b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7654078
Reviewed-by: Monica Salama <msalama@chromium.org>
Auto-Submit: Alex Ilin <alexilin@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1599910}
* [cr148][Android] New arg contentDelegateSupplier at BottomControlsMediator.ctor
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/5214142978dc8e29bf94564a9949636c987a1d4c
commit 5214142978dc8e29bf94564a9949636c987a1d4c
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Mon Mar 16 12:17:37 2026 -0700
[BottomBar] Expose capability to control the color and scroll behavior
Per comments on BottomControlsLayer interface it is already possible to dynamically update the color and scroll behavior, then make a call to request an update.
This CL exposes mechanisms to control the BottomControlsContentDelegate implementation and provides a callback to BottomBarContainerCoordinator to update the render state.
Bug: 492262214
Change-Id: I31d265c95b5771c121e120d2bdf1c4cd096c8a1e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7664742
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Madhav Pruthi <madhavpruthi@google.com>
Reviewed-by: Dan Polanco <polardz@google.com>
Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Madhav Pruthi <madhavpruthi@google.com>
Cr-Commit-Position: refs/heads/main@{#1600048}
* [cr148][Android] Delete TinkerTank
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/4783f6f061ceee0788a1d52ab273510ffa42f19a
commit 4783f6f061ceee0788a1d52ab273510ffa42f19a
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Mon Mar 16 10:45:32 2026 -0700
Delete TinkerTank
- Delegate is kept until downstream use is cleaned up.
Bug: None
Change-Id: I32692bdf3e76a8ba4645555dd1a3ff5ac1bb42a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7669831
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600003}
* Reapply "[cr148] `Tab::SetData` dropped"
This reverts commit 424e2e5e76fe01a450f7002e456639f9b8c7ce2b.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6f42aa179cbcfdb3dc07de43809701f59479071c
commit 6f42aa179cbcfdb3dc07de43809701f59479071c
Author: Steven Luong <stluong@chromium.org>
Date: Tue Mar 17 12:59:15 2026 -0700
[TabData] Reland Tab sets data from TabDataObserver
This CL has the tab directly subscribe for tab data updates from the
TabDataObserver instead of relying on other classes to set its data.
The original CL was reverted because a crash occurs when the
ThumbnailImage::Subscribe() is invoked, but the ThumbnailImage's
delegate is null. The delegate is the TabThumbnailHelper and this
can be null when the WebContents is destroyed. This implies that the
hover card is trying to update with stale TabData after the tab's
web contents is destroyed, but before the tab is destroyed.
Therefore, this CL attempts to fix this crash by clearing out the
thumbnail data when the TabInterface is deleted to avoid this case.
Bug: 447214891
Change-Id: Ifc9e6146d932e8d04af735a31e876945901c0b8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7666899
Commit-Queue: Steven Luong <stluong@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600750}
* [cr148] `kSCTAuditing` feature flag deleted
Since this feature flag is deleted, the Brave security team recommended
disabling `features::kSCTAuditingHashdance` (done) and
`prefs::kSafeBrowsingScoutReportingEnabled` (already was in place for Android,
so this commit moves it to a common area for Android and desktop both).
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/24258bf7bdd67889b7bcdaf5dfa7abce5eccf18b
commit 24258bf7bdd67889b7bcdaf5dfa7abce5eccf18b
Author: Joe DeBlasio <jdeblasio@chromium.org>
Date: Mon Mar 16 21:58:39 2026 -0700
[SCT Auditing] Remove sct-auditing flag and kSCTAuditing feature
The 'sct-auditing' chrome://flags entry and the 'kSCTAuditing' feature
flag are no longer needed as the feature is now permanently enabled for
Chrome-branded builds on non-Android platforms.
This CL:
- Replaces checks for features::kSCTAuditing with direct checks for
SystemNetworkContextManager::IsCertificateTransparencyEnabled() and !IS_ANDROID in SCTReportingService.
- Hard-codes the default sampling rate to 0.0001.
- Adds SCTReportingService::SetSamplingRateForTesting() to allow browser
tests to continue using deterministic sampling rates.
- Removes the 'sct-auditing' flag, its variations, descriptions, and
metadata.
- Updates sct_reporting_service_browsertests.cc to use the new testing
override and wraps tests in a branding check.
Fixed: 40258303
Change-Id: Id1a338bd83dbebbfb34cfd4417acaa9c9cac9409
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665502
Reviewed-by: Chris Thompson <cthomp@chromium.org>
Commit-Queue: Joe DeBlasio <jdeblasio@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600335}
* [cr148] `ActorTasks` require a `TaskSourceInfo`
This change adds a basic `TaskSourceInfo` instance for an experimental
actor.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f2504cdf2460473d2b2ced505f25867704ed5e4e
commit f2504cdf2460473d2b2ced505f25867704ed5e4e
Author: David Bokan <bokan@chromium.org>
Date: Tue Mar 17 10:40:42 2026 -0700
Actor: Add TaskSourceInfo to ActorTasks
Add a TaskSourceInfo struct in a new components/actor directory, usable
outside of chrome/. This enables identifying the source creating an
ActorTask which allows other features to tie actions taken by that task
to the source. For example, the chrome://history page would be able to
use the source info to group navigations (initiated by a Glic ActorTask)
by conversation.
This CL adds the struct and plumbs it into ActorTask. This requires
updating a lot of test call sites. Additionally, update the Glic test
harness to register a conversation so actor can assume a conversation id
is always available, as it would be in the real world. GlicAPI tests
were the only case that already register a conversation so these avoid
the new path.
Downstream CLs update the history service to make use of TaskSourceInfo.
Bug: b:475235393
Change-Id: I9b69beea3639da7b610b3776c186d192ffb8d07c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7634587
Commit-Queue: David Bokan <bokan@chromium.org>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: Alex Gough <ajgo@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600646}
* [cr148] Fix unwated `kMaxStarterPackId` replacement
The use of this constant for inserting a new key on the same enum class
is too fragile, and has fallen apart with with a new mention of
`kMaxStarterPackId` being introduced.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ed834a558a91d08a5a47995444a932d66b5638ad
commit ed834a558a91d08a5a47995444a932d66b5638ad
Author: Amelie Schneider <amelies@google.com>
Date: Tue Mar 17 10:54:29 2026 -0700
[Search] Refactor disabled starter pack IDs retrieval
Until now, it was determined directly in
`TemplateURLTableModel::Reload()` whether starter packs should be
disabled or not. Since we will have to use this logic directly inside
the `TemplateURLService`, move it to the `SearchEnginesHandler` instead.
Bug: 490314640
Change-Id: I0f49443617b56cfdb71124b468a39200e90312a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7670799
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Commit-Queue: Amelie Schneider <amelies@google.com>
Cr-Commit-Position: refs/heads/main@{#1600663}
* [cr148] `DeriveKeyScrypt` => `Scrypt`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/640d483f00a40ea99f9b5949ae395ac93566e050
commit 640d483f00a40ea99f9b5949ae395ac93566e050
Author: Elly <ellyjones@chromium.org>
Date: Tue Mar 17 16:14:05 2026 -0700
crypto/kdf: rename PBKDF2 and Scrypt
To match the others:
* DeriveKeyPbkdf2HmacSha1 -> Pbkdf2HmacSha1
* DeriveKeyScrypt -> Scrypt
and all clients are changed as well.
AI-Model: Gemini 3 Flash
Fixed: 430635195
Change-Id: Ifda8165bcf9985265fd4d738a05ba80097e2d387
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7674112
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Elly FJ <ellyjones@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600858}
* [cr148] Fix `ancestorOrigins` override signature
This is a simple adjustment to make the sinagtures match.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/8ab1ce0d367dc9ed4f2467374678b65792f47b56
commit 8ab1ce0d367dc9ed4f2467374678b65792f47b56
Author: Yeonghan Kim <soosungp33@gmail.com>
Date: Mon Mar 16 21:09:36 2026 -0700
Change location's ancestorOrigins to be calculated at Document creation
According to [1], the spec was changed to calculate ancestor origins at
Document creation time in order to compute them correctly. The current
implementation creates new ancestor origins every time ancestorOrigins
is called. Therefore, this patch moves ancestor origins to a Document
and changes it to be calculated only once at Document creation time.
[1] https://github.com/whatwg/html/pull/12071
Bug: 483610021
Change-Id: Ib6fc07ca5f17f6a31250cfe95ffc4991e8e48fbc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7615609
Commit-Queue: YeongHan Kim <soosungp33@gmail.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Mason Freed <masonf@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600317}
* [cr148] Add `kProcessIsolationLearnMoreUrl` to `url_constants.h` override
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ef672f4fe9e9c5b87b4a477958080b76a64d8473
commit ef672f4fe9e9c5b87b4a477958080b76a64d8473
Author: Will Harris <wfh@chromium.org>
Date: Tue Mar 17 17:08:00 2026 -0700
Settings: Add UI control for enabling Process Isolation
Add a new UI switch in chrome://settings/system for Process Isolation.
The switch is currently behind a disabled-by-default flag available from
chrome://flags UI as it is still experimental. The setting is connected
to a pref that backs the logic required to change the isolation state.
When the switch is changed, the pref is set that signals for the
`SetIsolationState` API to be called to set the isolation state, which
is an asynchronous operation as data might need to be re-encrypted to
the new state.
A WebUI test, as well as a browser test are added to verify that the
switch is wired up correctly.
Bug: 487857179
Change-Id: If19c100161c2f4546be0d1f698a3c0b2765573a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7644989
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Will Harris <wfh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600891}
* [cr148][Android] - kAutofillEnableLoyaltyCardsFilling removed
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}
* [cr148][Android] Changes around BottomBarHostManager
New arg bottomBarHostManager at:
- HubManagerImpl.ctor
- TabbedRootUiCoordinator.ctor
- ToolbarManager.ctor
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/9be4e7a3e1f68c9a7405c62e06cbe8b4ed8832d5
commit 9be4e7a3e1f68c9a7405c62e06cbe8b4ed8832d5
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Tue Mar 17 16:49:31 2026 -0700
[BottomBar] handle view ownership transfer
Bug: 491509787
Change-Id: Ia8baf8095c55fe9580d718bb8806deab9fd0f5e1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7667562
Reviewed-by: Madhav Pruthi <madhavpruthi@google.com>
Reviewed-by: Dan Polanco <polardz@google.com>
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600877}
* [cr148][Android] New arg hubManagerSupplier at TabbedAppMenuPropertiesDelegate.ctor
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/729996f4d16b4a3859c0c162623b7e1b1b1aea43
commit 729996f4d16b4a3859c0c162623b7e1b1b1aea43
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Mon Mar 16 07:51:46 2026 -0700
[Hub] Remove select_tabs from the overflow menu on non-tabs panes
This also sets us up to support other "pane specific" customizations in
the future.
Fixed: 493182478
Change-Id: Iab2f3b072ae5fffa3c55c63d8c50afe35f7285a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7667560
Reviewed-by: Madhav Pruthi <madhavpruthi@google.com>
Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Madhav Pruthi <madhavpruthi@google.com>
Reviewed-by: Dan Polanco <polardz@google.com>
Cr-Commit-Position: refs/heads/main@{#1599889}
* [cr148][ios] Add Cobalt to `brave_providers`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d496e5519d6508de272a548da0d2ce586461dd1c
commit d496e5519d6508de272a548da0d2ce586461dd1c
Author: Quentin Pubert <qpubert@google.com>
Date: Tue Mar 17 13:29:39 2026 -0700
[iOS] Add Cobalt overflow menu destination
This CL adds an overflow menu destination for the Cobalt feature. It is
only visible if `web::features::IsCobaltEnabled()` and the browser is
not managed.
NO_IFTTT=Files have been moved thus invalidating IFTTT guards
Bug: 475807780
Change-Id: I20ed089aca62c181c58666b4eaf249317c405f1a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7670757
Reviewed-by: Gauthier Ambard <gambard@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Auto-Submit: Quentin Pubert <qpubert@google.com>
Commit-Queue: Quentin Pubert <qpubert@google.com>
Cr-Commit-Position: refs/heads/main@{#1600776}
* [cr148] Fix ESLint reports for mixed imports
There's a now a check that flags the mixed imports of types and values
in the same statement.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/48ab71207d8bad222480e7fd5db54cb9120b391d
commit 48ab71207d8bad222480e7fd5db54cb9120b391d
Author: rbpotter <rbpotter@chromium.org>
Date: Wed Mar 18 15:34:00 2026 -0700
WebUI: Add a check for mixed type and value imports
Bug: 493319444
Change-Id: I2ddf4cb23367149deb52053cb37982a5296f33d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7671332
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601585}
* [cr148] `kShortcutsNotApps` deleted
This feature flag was being disabled in brave, but the code for it was
already completely gutted and gone.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3151653f293f62d7e812a78bda34e9a6d6526f34
commit 3151653f293f62d7e812a78bda34e9a6d6526f34
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Tue Mar 17 20:03:44 2026 -0700
Remove obsolete chrome/common feature flags
Bug: 356602087
Change-Id: Ib7c464905216473deda3c83bf2c9b3d6a9bacc76
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7671306
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600983}
* [cr148] `MultiContentsViewMiniToolbar` dropped menu model
The split view mini toolbar is now gone, remove our associated code.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a24edb79bad2baf2c6fcdb2a64d52d8f60c14004
commit a24edb79bad2baf2c6fcdb2a64d52d8f60c14004
Author: Alison Gale <agale@chromium.org>
Date: Wed Mar 18 13:23:21 2026 -0700
[SxS] Switch mini toolbar back to the close button
When finalizing the experiment in code, the wrong branch was used so the
3-dot menu was rolled out. This switches back to the original close
button implementation which had been launched via Finch originally.
https://screenshot.googleplex.com/4CfAFU3JeYqBVQz
Bug: 493229082
Change-Id: I8cf4f7e902c6464b54f7d91147fce4df5ad7df49
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7673623
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601489}
* [cr148] `LocationBarView::profile()` deleted
There's now `GetProfile`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c9f68395d9f709328031191385f3bdcd353aadb9
commit c9f68395d9f709328031191385f3bdcd353aadb9
Author: Maks Orlovich <morlovich@chromium.org>
Date: Wed Mar 18 08:12:00 2026 -0700
Add interfaces at LocationBar level needed for (webui) omnibox popup.
...As a prereq for creating it with WebUILocationBar; and
implement the new methods in WebUILocationBar.
Bug: 470042732
Change-Id: I830816a3daad56502c81a5f98ab188e371d8d09e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7674319
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Reviewed-by: Justin Donnelly <jdonnelly@chromium.org>
Commit-Queue: Maks Orlovich <morlovich@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601285}
* [cr148] `PinnedToolbarActionsContainer` access abstracted
This acccess now occurs through a an abstract call that is frendly both
to views and webui.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/9d0cfb34e94018e9780f14d7de6ed44c9293f8ff
commit 9d0cfb34e94018e9780f14d7de6ed44c9293f8ff
Author: Paul Jensen <pauljensen@chromium.org>
Date: Wed Mar 18 12:15:22 2026 -0700
More preparation for WebUI pinned toolbar actions
This change does not introduce any functional differences.
This change abstracts most of the remaining Views dependencies away
from PinnedToolbarActionsContainer so that existing UI code can work
seamlessly with either a Views or a WebUI pinned toolbar actions
implementation. Main pieces include:
- abstracting ToolbarView::GetPinnedToolbarActions()
- abstracting ToolbarButtonProvider::GetPinnedToolbarActions()
- abstracting PinnedToolbarActionsController
The major remaining steps to implementing a WebUI pinned toolbar
actions, which are left for future changes are:
- implement the WebUI component including BrowserControlsService and
ToolbarUIService support
- convert PinnedToolbarActions::Get{Download,Cast}Button() APIs to
work with WebUI buttons also
- convert ToolbarView::GetBubbleAnchor to work with WebUI
Bug: 474061420
Change-Id: I6f932a750ad7b958094ecdd9455d1494edb56c77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7669107
Commit-Queue: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Reviewed-by: Mickey Burks <mickeyburks@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601455}
* [cr148] `IsValidWebAppUrl` moved under `//components`
This function is now called `IsUrlEligibleForWebApp`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f79eb8c0c496682cea5e54a3c038b7f770a97804
commit f79eb8c0c496682cea5e54a3c038b7f770a97804
Author: Lichen Liu <lichenliu@microsoft.com>
Date: Wed Mar 18 22:54:15 2026 -0700
[PWA] Centralize URL eligibility check for web app features
Add IsUrlEligibleForWebApp() and AddValidChromeUrlHostForTesting() in
components/webapps/browser/web_app_url_config.h to centralize the logic
that determines whether a URL is eligible for web app features (banners,
installation, etc.).
Bug: 481017409
Change-Id: Iaa3d36fcbcc18677eb57073eb2d51063a30240f9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665546
Reviewed-by: Yoshiki Iguchi <yoshiki@chromium.org>
Reviewed-by: Daniel Murphy <dmurph@chromium.org>
Commit-Queue: Lichen Liu <lichenliu@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1601772}
* [cr148][Android] SidePanelUI::Toggle default empty implementation
The commit is intended to fix this build error:
../../chrome/browser/ui/side_panel/internal/android/side_panel_coordinator_android.cc:22:11: error: allocating an object of abstract class type 'SidePanelCoordinatorAndroid'
22 | new SidePanelCoordinatorAndroid(env, caller));
| ^
../../chrome/browser/ui/side_panel/side_panel_ui.h:62:16: note: unimplemented pure virtual method 'Toggle' in 'SidePanelCoordinatorAndroid'
62 | virtual void Toggle(SidePanelEntryKey key,
| ^
../../brave/chromium_src/chrome/browser/ui/side_panel/side_panel_ui.h:10:3: note: expanded from macro 'Toggle'
10 | Toggle() = 0; \
| ^
1 error generated.
* [cr148][Android] Removed tabReparentingDelegate from MultiInstanceManagerApi31.ctor
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}
* [cr148][Android] Removed moveTabsToWindowByIdChecked from MultiInstanceManagerApi31.ctor
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}
* [cr148] Google update patch file renamed
This patchfile has been made explicitly win-only.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0a9bc888a3bfa54c36d176aef7e5dc60769a344d
commit 0a9bc888a3bfa54c36d176aef7e5dc60769a344d
Author: Andrzej Fiedukowicz <afie@google.com>
Date: Thu Mar 19 08:01:13 2026 -0700
Move posix implementation of google_update_settings to chrome/installer/util
Additionally rename windows specific file to _win.cc to make it clear
how it is used.
Bypass-Check-License: The files are only moved
Bug: 494165190
Change-Id: Ie990e93635af17b90a4bb05430f8b8ab88e56a00
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7664503
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Ramon Cano Aparicio <rcanoaparicio@google.com>
Commit-Queue: Andrzej Fiedukowicz <afie@google.com>
Reviewed-by: Greg Thompson <grt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601974}
* [cr148] `kDevToolsPrivacyUI` deleted
This flag had already been gutted for a while now.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ad5ad97302ce69b8446ece7e3aa74f20dae99b74
commit ad5ad97302ce69b8446ece7e3aa74f20dae99b74
Author: Fiona Macintosh <fmacintosh@google.com>
Date: Thu Mar 19 08:15:12 2026 -0700
Delete kDevToolsPrivacyUI feature
Change-Id: I3ae100b1d4cc3382e723fb322db1904748bac076
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7681872
Commit-Queue: Fiona Macintosh <fmacintosh@google.com>
Auto-Submit: Fiona Macintosh <fmacintosh@google.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601979}
* [cr148] Rename install file override to new Windows-specific file name
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0a9bc888a3bfa54c36d176aef7e5dc60769a344d
commit 0a9bc888a3bfa54c36d176aef7e5dc60769a344d
Author: Andrzej Fiedukowicz <afie@google.com>
Date: Thu Mar 19 08:01:13 2026 -0700
Move posix implementation of google_update_settings to chrome/installer/util
Additionally rename windows specific file to _win.cc to make it clear
how it is used.
Bypass-Check-License: The files are only moved
Bug: 494165190
Change-Id: Ie990e93635af17b90a4bb05430f8b8ab88e56a00
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7664503
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Ramon Cano Aparicio <rcanoaparicio@google.com>
Commit-Queue: Andrzej Fiedukowicz <afie@google.com>
Reviewed-by: Greg Thompson <grt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601974}
* [cr148][Android] MultiWindowUtils.canEnterMultiWindowMode is now static
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/dc47bc94e21a021492a10bb6ada51f6903f9faa5
commit dc47bc94e21a021492a10bb6ada51f6903f9faa5
Author: Aishwarya Rajesh <aishwaryarj@google.com>
Date: Thu Mar 19 16:55:50 2026 -0700
[MIR] Cleanup MultiWindowUtils#canEnterMultiWindowMode()
1. Make this method static.
2. Cleanup methods aospMultiWindowModeSupported() and
customMultiWindowModeSupported() and move the implementations inline
(since these contain trivial OS/OEM checks).
3. Remove MultiWindowModeStateDispatcher#canEnterMultiWindowMode() and
replace callsites with the static method.
4. Remove MultiWindowUtils#instanceSwitcherEnabled() that performs a
trivial OS check and is redundant at callsites.
5. Remove superfluous code in TabbedAppMenuPropertiesDelegate.
Bug: 493261092
Change-Id: Ib15040a694642549b51040db68329cad64545777
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7668482
Reviewed-by: Sirisha Kavuluru <skavuluru@google.com>
Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
Commit-Queue: Aishwarya Rajesh <aishwaryarj@google.com>
Cr-Commit-Position: refs/heads/main@{#1602333}
* [cr148] Update lookalike test to respect new Unicode standard
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f72d48e70a239af8aa3f1ed603f90ad0cd9024cd
commit f72d48e70a239af8aa3f1ed603f90ad0cd9024cd
Author: Dominik Röttsches <drott@chromium.org>
Date: Thu Mar 19 04:29:17 2026 -0700
Roll ICU to 78.2
Updating Unicode data to Unicode 17 and CLDR 48.
Major changes leading to test failures and their resolutions:
* Timezone formatting: Output changed from 'GMT' to 'GMT+0' in CLDR to
enable distinguishing the timezone and daylight saving
definition. Rebaselined in some general cases, but kept hard-coded GMT
in HTTP header dates, as the RFC 7231 mandates that.
* Korean and Thai AM/PM was changing incorrectly, upstream ICU issue
reported and locally patched:
https://unicode-org.atlassian.net/browse/ICU-23332
* Date format adjustments rebaselined for Spanish ("a las"), Turkish,
and Chinese (U+2009 space) due to CLDR updates. Addressed primarily
by rebaselining.
* Various changes in IDNA processing: Unicode tightened and modified
confusables.txt and IdentifierStatus.txt definitions, leading to tight
restrictions on IDNA spoof checks. Some IDNA tests update to use new
test characters, and partially disabled or rebaselined. Required test
updates filed as https://crbug.com/492063443
* Unicode pkgdata tool required a local modification to not run out of
storage space, see ICU-23276.
* Use emoji data from ICU again, see character_emoji.cc ICU version
macro conditional.
Bug: 473861785
Binary-Size: Required data file upgrades for Unicode 17.
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel,mac15-blink-rel,win11-blink-rel
Change-Id: I81354b73ee3e698231ee31cc74764bea30d1226c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7623512
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Paul Adedeji <pauladedeji@google.com>
Reviewed-by: Mustafa Emre Acer <meacer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1601880}
* [cr148][Android] Removed search_resumption_module_layout
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/4830d983661a2b06590463a1d2dd8e10e8aa80b2
commit 4830d983661a2b06590463a1d2dd8e10e8aa80b2
Author: Xi Han <hanxi@google.com>
Date: Mon Mar 16 11:41:07 2026 -0700
[SearchResumption] Clean up search resumption module.
In this CL:
1. Remove the entire chrome/browser/search_resumption dir;
2. Clean up feature flag SearchResumptionModuleAndroid;
3. Remove the entry point from NewTabPage and new_tab_page_layout.xml.
4. Clean up strings and histograms.
Bug: 40227734
Change-Id: Ic3881a9e536ee09ad5f64efee5a0e734b9090e7f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7664722
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600031}
* [cr148][Android] Split NewTabPageLayout into NewTabPageCoordinator and layout
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}
* [cr148] Fix crash in `MockTabInterfaceWeakPtr` in `TreeTab` tests
`MockTabInterface` relies on `ui::UnownedUserDataHost` and has other lifetime
constraints imposed by upstream that make it difficult to test effectively
as-is. Instead of using the `TabInterface` version of `TreeTabNodeTabCollection`
use the `SplitTabCollection` override instead. This avoids the need to create a
MockTabInterface at all and avoids the messy lifetime issues inherent in that
approach.
* [cr148] `TaskStateChangedCallback` bundled args
This function used to take a closure with tow args, but now it bundles
all args under `ActorTask`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/24300df2dae5fbbbdd80c34b7fbed08dc807ee33
commit 24300df2dae5fbbbdd80c34b7fbed08dc807ee33
Author: Salvador Guerrero <salg@google.com>
Date: Fri Mar 20 17:13:47 2026 -0700
[Actor] fixed crash when calling getActiveTasks in a callback
This CL fixes a crash that occurs when a task is completed and
ActorKeyedService has a task state change callback that calls
getActiveTasks.
NotifyTaskStateChanged would run the callbacks before removing the
completed task from active_tasks_, so the call to getActiveTasks would
hit a CHECK as there's an inactive task in active_tasks_.
This CL fixes the crash by first removing the task from active_tasks_
before running the callbacks. It solves the availability of the task in
the callback by refactoring the callback to return a reference to the
affected task.
Additionally, this CL fixes an issue found in `IsTaskResumed` in
`password_change_from_checkup_delegate.cc`, where the wrong task state
was used to determine if a task was being resumed.
Bug: b:493610427
Change-Id: Ifdf6c23a1f48f657cbdc1818b5ba53b084af4ddd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7676998
Reviewed-by: David Trainor <dtrainor@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Salvador Guerrero Ramos <salg@google.com>
Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1602924}
* [cr148] Fixing `@typescript-eslint/no-unnecessary-type-conversion`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/9eceb536a2914a554400cce52cf3e8e6725a422d
commit 9eceb536a2914a554400cce52cf3e8e6725a422d
Author: dpapad <dpapad@chromium.org>
Date: Thu Mar 19 17:48:48 2026 -0700
WebUI: Enable @typescript-eslint/no-unnecessary-type-conversion on Desktop.
Unnecessary type conversions make it harder to reason about the code, as
they create doubt about whether the type system can be trusted. For
example converting a variable that is already declared as `string` to a
string using `.toString()` is either unnecessary or an indication that
the variable is not actually a `string` to begin with. Disallowing
unnecessary conversions improves the code by forcing developers to
accurately declare types.
The check is currently only enabled for Desktop WebUIs (aka non-CrOS)
since fixing all existing CrOS violations is not trivial and to avoid
blocking rolling out the check until CrOS violations are also fixed.
Bug: 40519637
Change-Id: I0f6000b2718a35d2c34fc49655c6363d37105fda
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7673843
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1602360}
* [cr148] Search engine using ID rather than model index
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c7ddf19f71a752bd6f0a01380026f2cb25326afa
commit c7ddf19f71a752bd6f0a01380026f2cb25326afa
Author: Amelie Schneider <amelies@google.com>
Date: Fri Mar 20 07:30:00 2026 -0700
[Search] Use ID instead of table model index for accessing TemplateURLs
In order to deprecate the use of the table model in the search engines
handler, remove the `modelIndex` parameter and migrate functions to
access TemplateURLs through their ID rather than index in the table.
Bug: 491802735
Change-Id: I81a3468e55ea38782b078ddc023621d2f832a727
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7679351
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Commit-Queue: Amelie Schneider <amelies@google.com>
Cr-Commit-Position: refs/heads/main@{#1602583}
* [cr148] `chrome::GetTabbedBrowserCount` deleted
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ebb63bfebd07fca069dcb835769790f65ee42964
commit ebb63bfebd07fca069dcb835769790f65ee42964
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date: Sun Mar 22 11:42:45 2026 -0700
[bedrock] Eliminate chrome::GetTabbedBrowserCount()
Bug: 494010890
Change-Id: Ibce74da783e434c19df3906d17be5121d05e89fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7683173
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Commit-Queue: Tom Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603190}
* [cr148] `ShowSingletonTab` migrated to BWI
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7f61ab9536e34aad9c59e1f79bd0fada6f84a16c
commit 7f61ab9536e34aad9c59e1f79bd0fada6f84a16c
Author: Yu He <yhe@microsoft.com>
Date: Sun Mar 22 11:57:30 2026 -0700
[bedrock] Migrate chrome_pages and singleton_tabs from Browser* to BrowserWindowInterface*
Migrate function signatures in chrome_pages.h/cc and singleton_tabs.h/cc
to accept BrowserWindowInterface* instead of Browser*.
This allows callers to pass a BrowserWindowInterface* directly,
eliminating intermediate GetBrowserForMigrationOnly() calls at:
extension_install_ui_desktop.cc startup_launch_infobar_manager_impl.cc
singleton_tabs.cc (internal usage) Also:
Guard desktop-only includes in notification_common.cc with #if
!BUILDFLAG(IS_ANDROID) to fix Android build. Add missing browser.h
include to inspect_ui.cc. Remove forward declaration of Browser from
chrome_pages.h and singleton_tabs.h.
Bug: 494010890
Change-Id: Ica78133224b67d439dc264fa187d261b4ee6f87c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7667947
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Auto-Submit: Yu He <yhe@microsoft.com>
Commit-Queue: Tom Lukaszewicz <tluk@chromium.org>
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603192}
* [cr148] Fix `BraveTabHoverBrowserTest.ThumbnailHelperIsAlwaysAttached`
Need to set tab data manually via `SetDataForTesting` now or we'll get a nullptr
error when trying to read it.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6f42aa179cbcfdb3dc07de43809701f59479071c
commit 6f42aa179cbcfdb3dc07de43809701f59479071c
Author: Steven Luong <stluong@chromium.org>
Date: Tue Mar 17 12:59:15 2026 -0700
[TabData] Reland Tab sets data from TabDataObserver
This CL has the tab directly subscribe for tab data updates from the
TabDataObserver instead of relying on other classes to set its data.
The original CL was reverted because a crash occurs when the
ThumbnailImage::Subscribe() is invoked, but the ThumbnailImage's
delegate is null. The delegate is the TabThumbnailHelper and this
can be null when the WebContents is destroyed. This implies that the
hover card is trying to update with stale TabData after the tab's
web contents is destroyed, but before the tab is destroyed.
Therefore, this CL attempts to fix this crash by clearing out the
thumbnail data when the TabInterface is deleted to avoid this case.
Bug: 447214891
Change-Id: Ifc9e6146d932e8d04af735a31e876945901c0b8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7666899
Commit-Queue: Steven Luong <stluong@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600750}
* [cr148][Android] Move multi-instance shared prefs to a new file and registry
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/8c70bd005c9192f75046eb8f57a513e9150a5bcc
commit 8c70bd005c9192f75046eb8f57a513e9150a5bcc
Author: Zhe Li <zheliooo@google.com>
Date: Mon Mar 16 18:27:53 2026 -0700
[SharedPrefsMigration] Move multi-instance shared prefs to a new file and registry
Bug: 438834621
Change-Id: Ic28dea4ba6dac4068bb4fccc06f31daf835575b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7669836
Reviewed-by: Aishwarya Rajesh <aishwaryarj@google.com>
Commit-Queue: Zhe Li <zheliooo@google.com>
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600256}
https://source.chromium.org/chromium/chromium/src/+/ad0d36681a0f3d4a7359244ec8b21b2b3c4a55a2
commit ad0d36681a0f3d4a7359244ec8b21b2b3c4a55a2
Author: Andrew Grieve <agrieve@chromium.org>
Date: Mon Jan 26 11:42:34 2026 -0800
Android: Convert ObservableSupplierImpl usages in misc places (3/3)
Mostly tests. A few tests tested transitions to null
on observers that are monotonic, so I removed those cases.
Bug: 467389696
Change-Id: Ia60a6c6037abdc2c571d9ffef556b7481e551868
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513947
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1574673}
* Fix TabHoverCardBubbleViewBrowserTest.ChromeSchemeUrl
As tabs::TabHandle::Get() would return nullptr, the tab data would not be
set. So we need to set the tab data manually here for testing.
* [cr148][Android] Fixed gn_check failure at playlist_service_factory.cc
Error message was:
```
ERROR at //brave/browser/playlist/playlist_service_factory.cc:52:11: Can't include this header from here.
^-------------------------------------------
The target:
//chrome/browser:browser
is including a file from the target:
//chrome/browser/ui/side_panel:side_panel_views_dependent
It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.
Dependency chain (there may also be others):
//chrome/browser:browser -->
//chrome/browser/ui/side_panel/internal:internal --[private]-->
//chrome/browser/ui/side_panel/internal/android:android --[private]-->
//chrome/browser/ui/side_panel:side_panel_views_dependent
```
* [cr148][Android] Fixed gn_check fail at host_content_settings_map_unittest.cc
Error message was:
```
ERROR at //chrome/browser/content_settings/host_content_settings_map_unittest.cc:79:11: Can't include this header from here.
^----------------------------------
The target:
//chrome/browser/content_settings:unit_tests
is including a file from the target:
//brave/extensions:common
It's usually best to depend directly on the destination target.
In some cases, the destination target is considered a subcomponent
of an intermediate target. In this case, the intermediate target
should depend publicly on the destination to forward the ability
to include headers.
Dependency chain (there may also be others):
//chrome/browser/content_settings:unit_tests -->
//chrome/browser:browser --[private]-->
//brave/extensions:common
```
In upstream Chromium, extensions/common/url_pattern_set.h
belongs to //extensions/common which is a real target.
But on Android where enable_extensions=false, that target
doesn't exist/isn't built. So effectively, on Android, the
header has no upstream owner — and Brave's source_set
//brave/extensions:common "claims" to make it available.
Source
chrome/browser/content_settings/host_content_settings_map_unittest.cc
is at
//chrome/browser/content_settings:unit_tests
but does not depend on //brave/extensions:common .
This is the complain of the gn_check.
The purpose of deprecated_visibility_allowed is only to prevent
new uses of url_pattern_set, current commit doesn't introduce that.
The upside - no need to patch chrome/browser/content_settings:unit_tests,
as depenence is visible through
//chrome/browser/content_settings:unit_tests -->
//chrome/browser:browser -->
//chrome/browser:browser_public_dependencies
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/7307848029fabb938e5cce51d0e3581d1096a58b
commit 7307848029fabb938e5cce51d0e3581d1096a58b
Author: Joel Hockey <joelhockey@chromium.org>
Date: Mon Mar 16 18:26:20 2026 -0700
Add new ExtensionInstallTimePermissionProvider
It provides the status of permissions which are enabled via
extension manifests. Current analysis shows that only
geolocation and notifications are relevant.
With support for extensions in desktop android, the SiteSettings page should show when extensions have permissions enabled. Desktop looks
up these permissions via site_settings_helper GetPermissionResultForOriginWithoutContext(), but it can be done
via HostContentsSettingsMap by adding this new provider.
Bug: 40215363
Bug: 458227842
Change-Id: I4528923a56d0d20e1ab8a166dd729d4accc50d48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7627082
Reviewed-by: Elias Klim <elklm@chromium.org>
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600254}
* [cr148] `contextual_tasks_panel_host_desktop` renamed
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/98cb12770537b455eb5a257156e12c5b29d8650f
commit 98cb12770537b455eb5a257156e12c5b29d8650f
Author: Sho Biswas <shobiz@google.com>
Date: Mon Mar 23 11:35:03 2026 -0700
Contextual Tasks: Rename ContextualTasksPanelHostDesktop{Impl,}
This matches ContextualTasksPanelHostAndroid. Also updated BUILD.gn and
all references in the codebase.
Bug: 493694586
Change-Id: Ibefe395ce1b69b53e43383caf742ac073f00d5a3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7673845
Commit-Queue: Sho Biswas <shobiz@google.com>
Reviewed-by: Yuheng Huang <yuhengh@chromium.org>
Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603608}
* [cr148] `incognito_profile.icon` made ash-only
This change simply pulls the override into our source tree, as we still use this
icon in Brave.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/1aa94c1135693d505c20ace37c4659fb7e52af63
commit 1aa94c1135693d505c20ace37c4659fb7e52af63
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Mon Mar 23 06:54:13 2026 -0700
Migrate ChromeOS-exclusive vector icons from chrome/app to ash/resources
This CL moves vector icons (.icon files) that are used exclusively in
ChromeOS specific files from chrome/app/vector_icons to
ash/resources/vector_icons.
- Moved 29 .icon files to ash/resources/vector_icons.
- Left notification_google.icon in chrome/app since it's a trademarked
image and should not be added to the public ash repo.
- Removed 1 unused .icon file (drag_handle.icon) from chrome/app/vector_icons
since it already exists in ash/resources/vector_icons.
- Updated BUILD.gn in both directories.
- Updated C++ references to use the ash:: namespace.
- Added #include "ash/resources/vector_icons/vector_icons.h" where
necessary.
- Removed #include "chrome/app/vector_icons/vector_icons.h" where no
longer needed.
- Added missing dependencies in affected targets (e.g. //chrome/browser/ash/*).
- Formatted with git cl format.
NOPRESUBMIT=true
Bypass-Check-License: Moving existing files from chrome to ash.
Bug: b:492325954
Change-Id: Ic51465ed261648db4b5182025767901f65384732
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7663588
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603430}
* [cr148] Fix for unwated substitution in `LocationIconView`
This change adds a preemtpive inclusion to prevent a an unwated
replacement to take place due to a new header being added to this class.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/8222d0be0a7be63ec535ae620078f555d1d0d2dd
commit 8222d0be0a7be63ec535ae620078f555d1d0d2dd
Author: Qingxin Wu <qingxinwu@google.com>
Date: Mon Mar 23 10:59:29 2026 -0700
[WebUI LLBC] Extract LocationIconInterface for WebUI migration
This CL implements Phase 1 of decoupling the Left-Hand Side (LHS)
location bar chips from the native Views framework, focusing on
LocationIconView.
Introduces a pure virtual LocationIconInterface to define the
presentation logic required by controllers. LocationIconView is updated
to inherit from this new interface.
Additionally, callers have been refactored to hold
LocationIconInterface* instead of the concrete View. This paves the way
for the upcoming WebUILocationBarChipsControl implementation which will
implement this interface to push state to the WebUI frontend.
Bug: 495419742
Change-Id: Ie18b401d799b1e74590e2a50e03dc9b704d17fdf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7689652
Reviewed-by: Foromo Daniel Soromou <koretadaniel@chromium.org>
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Commit-Queue: Qingxin Wu <qingxinwu@google.com>
Cr-Commit-Position: refs/heads/main@{#1603588}
* [cr148] `DeviceInfo` now using its own enum types
This class is not using prot-generated types in its interface anymore.
This means our own extended version of this class needs to be corrected,
and that callers of this contructor also need to be adjusted.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/165bf33e52b7a4b1744d405f2e430380f97be855
commit 165bf33e52b7a4b1744d405f2e430380f97be855
Author: Pengyuan Wang <pengyuanwang@microsoft.com>
Date: Tue Mar 24 02:59:58 2026 -0700
[Sync] Decouple syncer::DeviceInfo from sync protocol types
syncer::DeviceInfo currently exposes fields that use proto types
defined in components/sync/protocol (sync_pb). As a result, clients
that only need DeviceInfo must depend on the protocol layer.
Refactor DeviceInfo to use native C++ types instead. Proto conversions
are handled internally within the sync implementation, which keeps the
protocol dependency out of the public interface. This improves layering
and reduces unnecessary dependencies.
Bug: 364331851
Change-Id: I1289c5338e3490dc4c7f266e84194ad39db027e8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665692
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Commit-Queue: Marc Treib <treib@chromium.org>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603992}
* [cr148] Fix `WalletHttpClient` stubs to include consent auditor
This function is merely stubbed to make it nullopt, and this change
corrects this signature to match the override.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/140daa67c68da98cc9c0d0501143fd8ee0b2e3ef
commit 140daa67c68da98cc9c0d0501143fd8ee0b2e3ef
Author: Florian Leimgruber <fleimgruber@google.com>
Date: Mon Mar 23 02:03:05 2026 -0700
Private passes: Require a ConsentAuditor::SessionId for saves
When the user accepts saving a new private pass from Chrome, Chrome
calls a Wallet API to create the pass. Before doing so, it will call
the API from crrev.com/c/7653495 to record the consent given. This
consent will be identified by a SessionId, which needs to be included in
the Wallet API request.
For updates, no consent logging is required, since the pass already
exists in Wallet.
This CL adapts the client-side API to require a session ID when saving
a new pass. Specifically:
- Adds an optional<SessionId> parameter to
WalletHttpClient::UpsertPrivatePass(pass).
This is the components/wallet API that distinguishes between saves and
updates based on the presence of a pass.id. A CHECK enforces that
either pass.id is set or the session ID is not nullopt.
- Adds logic to UpsertPrivatePassRequest::GetRequestContent() to
populate the session ID field of the request proto field, added in
crrev.com/c/7679158.
Tested through a new unit test.
- Adds a SessionId parameter to
WalletPassAccessManager::SaveWalletEntityInstance() and forwards it
to the internal WalletHttpClient::UpsertPrivatePass() call.
WalletPassAccessManager::UpdateWalletEntityInstance() remains
unchanged.
This is tested by adapting the expected parameters that the
MockWalletHttpClient receives in
wallet_pass_access_manager_impl_unittest.cc.
- Adapts the callers of
WalletPassAccessManager::SaveWalletEntityInstance() to pass a dummy
session ID. Leaves a TODO for a follow-up CL to actually log the
consent and pass the proper session ID.
- Adds ConsentAuditor::GenerateSessionId() and uses
ConsentAuditor::SessionId everywhere, rather than the underlying Uuid
functions. This communicates the purpose of the Uuid better.
This requires adding dependencies on consent_auditor in a few places.
Bug: 478783796, 489354073
Change-Id: I8c36f00f02e15133ae9ac28b58ca4a78fb0e3370
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7680076
Commit-Queue: Florian Leimgruber <fleimgruber@google.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Norge Vizcay <vizcay@google.com>
Cr-Commit-Position: refs/heads/main@{#1603317}
* [cr148] `contextual_cueing` moved to `chrome/browser/glic`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d6e962003e4d44f1dce57b587e68c8f503400dd1
commit d6e962003e4d44f1dce57b587e68c8f503400dd1
Author: Ian Wells <iwells@chromium.org>
Date: Mon Mar 23 16:17:33 2026 -0700
Move contextual_cueing sources to chrome/browser/glic
This move is in preparation for the fresh implementation of cross-Chrome
contextual cueing in chrome/browser/contextual_cueing. Eventually glic
should migrate to using cross-Chrome cues, but for now the code will
move so that the new cue logic can be built without glic-specific logic
needing to be untangled at every step.
In this change:
* move the sources
* put everything that was in the `contextual_cueing` namespace into the `glic` namespace
* update include paths and build target paths
Bypass-Check-License: moving files
Bug: 487136801
Change-Id: Ida37ca18cc733d7713386d436215d4eedd45009e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7685955
Reviewed-by: Sophie Chang <sophiechang@chromium.org>
Commit-Queue: Ian Wells <iwells@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603775}
* [cr148] Move profile-dependent early-init calls to `PreProfileInit`
`BraveBrowserProcessImpl` previously initialized services like
`brave_referrals_service` in the constructor, which accessed `ProfileManager`
before `GlobalBrowserCollection` was ready. After cr148, this caused a startup
crash. This change moves all profile-dependent early-init calls to
`PreProfileInit`, ensuring proper initialization order.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7427fd2cb2262609e9112b71e4983ab2b28c7f6c
commit 7427fd2cb2262609e9112b71e4983ab2b28c7f6c
Author: thomas lukaszewicz <tluk@chromium.org>
Date: Mon Mar 23 10:16:57 2026 -0700
[bedrock] Migrate profile_manager.cc away from BrowserListObserver.
This migration is part of project bedrock to reduce the dependencies on
Browser and BrowserList. See https://crbug.com/431671320 for more info.
Reland of crrev.com/c/7609603 with an update to handle mac test
failures.
Bug: 459777668
Change-Id: Ic4d35c262409860a2320f9c4466f2a8d11b4d142
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7692272
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Commit-Queue: Tom Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603569}
* [cr148] `PostTaskAndReplyWithResult` unpacking tuples
This is a quality-of-life change but functionally the resulting code is
the same.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/b791274c81bf6b38b10bc61646432226e24dee80
commit b791274c81bf6b38b10bc61646432226e24dee80
Author: Evan Stade <evanstade@microsoft.com>
Date: Tue Mar 24 14:22:34 2026 -0700
Add PostTaskAndReplyWithResult support for multiple args
PostTaskAndReplyWithResult currently only works if the result is a
single value. The new version additionally works with a reply function
that takes multiple arguments, where the task function must return a
std::tuple.
This also adds support to SequenceBound, and updates a few callers that
were returning a tuple/taking a tuple response, since now the obligatory
pattern is to return a tuple/take an unwrapped tuple (fn arguments).
Before:
void DoFoo(FooCallback callback) {
Value value = ...;
Info info = ...;
Delegate delegate = ...;
std::move(callback).Run(value, info, delegate);
}
task_runner->PostTask(
FROM_HERE,
BindOnce(&DoFoo,
BindPostTaskToCurrentDefault(std::move(callback))));
Or:
std::tuple<Value, Info, Delegate> DoFoo() {
Value value = ...;
Info info = ...;
Delegate delegate = ...;
return {value, info, delegate};
}
task_runner->PostTaskAndReplyWithResult(
FROM_HERE,
BindOnce(&DoFoo),
/*a lambda that manually unwraps a tuple,
wrapping a callback*/);
After:
std::tuple<Value, Info, Delegate> DoFoo() {
Value value = ...;
Info info = ...;
Delegate delegate = ...;
return {value, info, delegate};
}
task_runner->PostTaskAndReplyWithResult(
FROM_HERE,
BindOnce(&DoFoo),
std::move(callback));
Change-Id: I85ec5a6879d62266a7cbd6e20d647f8f89ee4b55
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7664766
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Evan Stade <evanstade@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1604388}
* [cr148] `sendWithPromise` requires a type parameter
This change corrects all uses of `sendWithPromise` to apply the expected
type parameter.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7c7425f8dd87005b3ab4c3963983278c81bd5dc1
https://chromium.googlesource.com/chromium/src/+/2035199d62968c047e1b7d72b86cafe01af7d346
commit 7c7425f8dd87005b3ab4c3963983278c81bd5dc1
Author: dpapad <dpapad@chromium.org>
Date: Tue Mar 24 16:56:36 2026 -0700
WebUI: Add type parameter to sendWithPromise(), part 2.
The parameter indicates the payload type of the returned Promise as
follows: export function sendWithPromise<T>(...): Promise<T> {...}
In this part making the type parameter required by removing the "= any"
fallback.
Bug: 494464740
Change-Id: I153bd07ffcc2b16d4c5caa3c9c0730cd2177d87b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7690239
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604484}
commit 2035199d62968c047e1b7d72b86cafe01af7d346
Author: dpapad <dpapad@chromium.org>
Date: Tue Mar 24 13:41:16 2026 -0700
WebUI: Add type parameter to sendWithPromise(), part 1.
The parameter indicates the payload type of the returned Promise as
follows: export function sendWithPromise<T>(...): Promise<T> {...}
In this part fixing all newly surfaced type errors. The parameter is
kept as optional (using 'T = any') to prevent any race conditions with
other CLs that can possibly introduce violations. It will be made
required in the follow-up.
This is part of the effort to reduce and eventually ban the use of
TypeScript's 'any' across the codebase.
Bug: 494464740
Change-Id: I51025cebf857d651fb0fb813d9b63ef85d481433
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7689639
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Auto-Submit: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604358}
* [cr148] `AddTabData` dropped `TabData`
The uses we make of `AddTabsAt` are all in tests, and these cases
already relied on the use of `SetDataForTesting` for testing as well to
work.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/74da1f8342e2593df0fd30271db17987706a35a1
commit 74da1f8342e2593df0fd30271db17987706a35a1
Author: Steven Luong <stluong@chromium.org>
Date: Tue Mar 24 14:12:23 2026 -0700
Reland "[TabData] Remove TabData usage from TabStripController"
This reverts commit c5d67fe9a40ec6b08a9274c6f594e6531f6d0da4.
Reason for revert: The original CL was reverted because there was
a bug in how the TabDataObserver was handling thumbnails for
discarded tabs. Since the fix for that landed last week and crashes
have gone down. This CL can be relanded now.
Original change's description:
> Revert "[TabData] Remove TabData usage from TabStripController"
>
> This reverts commit 231ccad15761c8cba75c882e9ae0d2c7b75f303b.
>
> Reason for revert: The tab strip data is needed because
> https://chromium-review.git.corp.google.com/c/chromium/src/+/7644981
> is reverted.
>
> Original change's description:
> > [TabData] Remove TabData usage from TabStripController
> >
> > The tab can now populate its own tab data so it doesn't need to rely on
> > the BrowserTabStripController and TabStrip to pass in a TabData. Thus
> > usage of TabData is deleted in this CL.
> >
> > Bug: 447214891
> > Change-Id: Ia864e73a7b1f058e8a3da9f8911afeaa5dbfba5a
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7657233
> > Reviewed-by: Alison Gale <agale@chromium.org>
> > Commit-Queue: Steven Luong <stluong@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1598602}
>
> Bug: 447214891
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Change-Id: Ia521f463988e532fd18f7f8e122627c85553d389
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7663410
> Commit-Queue: Darryl James <dljames@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Auto-Submit: Steven Luong <stluong@chromium.org>
> Reviewed-by: Darryl James <dljames@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1598703}
Bug: 447214891
Change-Id: Iabf862532b9b3029e28f058b22fd96677240bfa4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7698715
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Steven Luong <stluong@chromium.org>
Reviewed-by: Alison Gale <agale@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604379}
* [cr148] Arg dropped from `StartAutocomplete`
This is of no consequence for our use of this funciton.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/b07f2ee9c3d9299ba92b91d4d964d949f78f8f1c
commit b07f2ee9c3d9299ba92b91d4d964d949f78f8f1c
Author: manukh <manukh@chromium.org>
Date: Wed Mar 25 17:01:14 2026 -0700
[omnibox][webui] Remove `has_selected_text` param from OmniboxEditModel
`OmniboxEditModel::UpdateInput()` &
`OmniboxEditModel::StartAutocomplete()` had 2 params:
`has_selected_text` & `prevent_inline_autocomplete`. These were used in
computing `AutocompleteInput::set_prevent_inline_autocomplete()`. The
1st param was unnecessary.
There are 3 flows into `StartAutocomplete()`.
1. When the input selection was at the end of the text,
`OmniboxViewViews::UpdatePopup()` would set both `has_selected_text`
and `prevent_inline_autocomplete` to false, and `StartAutocomplete()`
would then call `set_prevent_inline_autocomplete(false || false)`.
2. When the input selection was not at the end of the text,
`OmniboxViewViews::UpdatePopup()` would set
`prevent_inline_autocomplete` to true, and `StartAutocomplete()`
would then call `set_prevent_inline_autocomplete(unknown || true)`.
3. `OmniboxEditModel::AcceptKeyword()` would set the params to false &
true, and `StartAutocomplete()` would then call
`set_prevent_inline_autocomplete(false || true)`
In all 3 cases, the 1st param was unnecessary.
1. `false || false == false`
2. `unknown || true == true`
3. `false || true == true`
No behavior change.
Bug: 449816206
Change-Id: Id4759a74709a4b12ca501260c035c12dbbcc9c3e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7698694
Commit-Queue: Orin Jaworski <orinj@chromium.org>
Reviewed-by: Orin Jaworski <orinj@chromium.org>
Auto-Submit: manuk hovanesian <manukh@chromium.org>
Commit-Queue: manuk hovanesian <manukh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605190}
* [cr148] Hovercard sources moved into their own path
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e3daf97890c890d4843b63b3e4e6b5d738a6ae4b
commit e3daf97890c890d4843b63b3e4e6b5d738a6ae4b
Author: Eshwar Stalin <estalin@chromium.org>
Date: Thu Mar 26 11:05:06 2026 -0700
Creating a hovercard folder under c/b/ui/views/tabs
Bypass-Check-License: Moving existing files
Change-Id: Ic3aab57ddccef6a7b6aeedb508f733261d36665d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7641849
Reviewed-by: Steven Luong <stluong@chromium.org>
Commit-Queue: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605665}
* [cr148] `kDocumentProviderNoSyncRequirement` deleted
This deletion was approved by Brave's security team, as it is gated on Google
Account sign-in at the browser level.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f8a90a556ba3648b75ac49c14715540692a03c49
commit f8a90a556ba3648b75ac49c14715540692a03c49
Author: Jonathan Lee <jonathanjlee@google.com>
Date: Thu Mar 26 14:49:19 2026 -0700
[code-health] Clean up `omnibox-drive-suggestions-no-sync-requirement`
* This flag expired in M132.
* The `base::Feature` isn't listed in
go/stale-base-features-exceptions.
* The Finch configs associated with the `base::Feature` appear fully
launched.
Fixed: 335232635
Change-Id: I86a027a6869a66ec5906e5cfee9c24ea4575d582
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7701378
Reviewed-by: Justin Donnelly <jdonnelly@chromium.org>
Reviewed-by: Robbie Gibson <rkgibson@google.com>
Auto-Submit: Jonathan Lee <jonathanjlee@google.com>
Commit-Queue: Robbie Gibson <rkgibson@google.com>
Cr-Commit-Position: refs/heads/main@{#1605795}
* [cr148] `SidePanelAnimationCoordinator` deleted
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ad15e12ef0e444562253fbca3e70bd7002e9053b
commit ad15e12ef0e444562253fbca3e70bd7002e9053b
Author: Dana Fried <dfried@chromium.org>
Date: Thu Mar 26 06:12:48 2026 -0700
[Animation] Migrate side panel to new animation controller
Change-Id: I8d02f28a95256944222391c3d1fa8caa07539a61
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7681391
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Dana Fried <dfried@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605438}
* [cr148] `SearchEnginesHandler::OnModelChanged` removed
This function has been removed, however the existing override for it has
been changed to rely on `OnTemplateURLServiceChanged`, which seems to be
the equivalent now.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/654a53b920f88c183c3ad823a68df107bd4e8296
commit 654a53b920f88c183c3ad823a68df107bd4e8296
Author: Amelie Schneider <amelies@google.com>
Date: Thu Mar 26 07:26:57 2026 -0700
[Search] Observe TemplateURLService from search engines handler
Since the plan is to deprecate the use of table model in the interaction
between the WebUI, the search engines handler and the TemplateURLService
entirely, stop using the TableModelObserver and use the
TemplateURLServiceObserver instead.
Bug: 494529875
Change-Id: Iac36064cde86f3470530c9fe26f34d94c62e97e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7696763
Commit-Queue: Amelie Schneider <amelies@google.com>
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605484}
* [cr148] `CertificateManagerElement` migrated to lit
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/058f35e2f254d9c4f2d71976b864652bd8632d24
commit 058f35e2f254d9c4f2d71976b864652bd8632d24
Author: rbpotter <rbpotter@chromium.org>
Date: Thu Mar 26 15:03:36 2026 -0700
Certificate Manager: Cleanup Polymer leftovers
- Remove "_lit" suffix on style files/names
- Remove Polymer dependencies
- Remove certificate manager folders from Polymer visibility list
Bug: 40943652
Change-Id: If5663b278341cd48a205c07c4d9cbca977b79f5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7690454
Reviewed-by: Matt Mueller <mattm@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605807}
* [cr148] `CanonicalCookie::CreateForTesting` overloads deleted
This change corrects all callers to use the only remaining function.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/4cc14f685c6daaea27fbb02c5d3f110c123ad6f6
commit 4cc14f685c6daaea27fbb02c5d3f110c123ad6f6
Author: Johann Hofmann <johannhof@chromium.org>
Date: Thu Mar 26 07:39:27 2026 -0700
Remove CookieSourceType::kUnknown and clean up deprecated overloads
This CL performs the final cleanup for removing CookieSourceType::kUnknown
from the codebase.
Specifically, it:
1. Removes kUnknown from services/network/public/mojom/cookie_manager.mojom
and net/cookies/cookie_constants.h.
2. Removes deprecated overloads of CanonicalCookie::CreateUnsafeCookieForTesting
and CreateForTesting from net/cookies/canonical_cookie.h.
3. Removes the `CHECK_IS_TEST` assertion in net/cookies/cookie_monster.cc.
4. Updates mappings in services/network/public/cpp/cookie_manager_mojom_traits.cc
and sqlite_persistent_cookie_store.cc to remove the kUnknown case.
5. Maps UNKNOWN to kOther in floating_sso sync conversions and updates testing loop minimum to kHTTP.
6. Corrects argument positions in multiple test callsites (cookie_monster_unittest, cookie_util_unittest, device_bound_session_manager_unittest, etc.) to match the new signature.
Bug: 479743220
Change-Id: Ie3b50d9689af35bab9133173d9a43cd14555bbc0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7686830
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Chris Fredrickson <cfredric@chromium.org>
Commit-Queue: Johann Hofmann <johannhof@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Martin Šrámek <msramek@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605492}
* [cr148] Fix `FakeAccountFetcherFactory` ctor call
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/52b83996a2d6b9075fd6ca57afd7165ec3f55d75
commit 52b83996a2d6b9075fd6ca57afd7165ec3f55d75
Author: Boris Sazonov <bsazonov@chromium.org>
Date: Thu Mar 26 05:42:13 2026 -0700
[Signin] Move AccountInfoFetcher creation to AccountFetcherFactory
Prior to this CL, AccountFetcherService::StartFetchingUserInfo was
always creating AccountInfoFetcherGaia explicitly on all platforms.
This CL plumbs AccountInfoFetcher creation through
AccountFetcherFactory and changes all AccountFetcherFactory
implementations to instantiate AccountInfoFetcherGaia (to avoid
inadvertent behavior changes). In subsequent CLs platform-specific
AccountInfoFetcher implementations will be created and
FakeAccountFetcherFactory behavior will be revised to see whether
a test-specific implementation of AccountInfoFetcher is needed.
Bug: 449708427
Change-Id: I0e8461658de83d4ed0e1fbbcbdf534670730f65a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7613530
Auto-Submit: Boris Sazonov <bsazonov@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Reviewed-by: David Roger <droger@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605414}
* [cr148] `base::HexEncode` to use span
The deprecated variant has been deleted/
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/da12fb560afc4519dc2ae1f831714008fda90bac
commit da12fb560afc4519dc2ae1f831714008fda90bac
Author: raorui <ruirao565@gmail.com>
Date: Fri Mar 27 03:27:18 2026 -0700
Code Health: Use span in base::HexEncode
- Migrate HexEncode callers from raw pointer+length to controlled views:
- strings: std::string_view or base::as_byte_span
- IOBuffer: io_buffer()->span()
- struct bytes: reinterpret_cast + base::span<const uint8_t>
- Clamp adapter MAC length before slicing to avoid OOB when encoding
- Remove pointer-based HexEncode overload and associated TODO
- Update tests and fuzzers to new interfaces
Bug: 40284755
Change-Id: I3352bb1a795b2f10cf5a8bedb432fe7d4bdf7290
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7607319
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Owners-Override: Colin Blundell <blundell@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606068}
* [cr148] `WebAppBrowserTestBase::https_server()` deleted
The base calss to this calss also have an embedded https server for test
that can be used in its place.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d2710c87190e5b2e995b8053623cab22caa70af6
commit d2710c87190e5b2e995b8053623cab22caa70af6
Author: dmurph@chromium.org <dmurph@chromium.org>
Date: Fri Mar 27 09:21:18 2026 -0700
[PWA] Removed https_server() in favor of base class server.
The https_server() field was redundant in our browser tests, and often
caused confusion with usage of embedded_https_test_server(). This
change removes it in favor of the base class one.
Change-Id: I658830d55e74538b8445b8ca8faf73ed7373970b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7687741
Commit-Queue: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606284}
* [cr148] `blink::String::Left()` deleted
This function has been deleted in favour of view ones. However, for the
only use for this function, the replacement with substring is more
appropriate.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f72257b3f0318fef20d1d397ff36c526d411a235
commit f72257b3f0318fef20d1d397ff36c526d411a235
Author: Kent Tamura <tkent@chromium.org>
Date: Fri Mar 27 03:07:42 2026 -0700
WTF: Remove Left() and Right() of blink::String
The Left() and Right() convenience methods are removed from
blink::String. These methods were primarily maintained for historical
reasons and offer less compatibility with the standard
std::string::substr API. All existing call sites have been updated to
use substr(0, len) instead, promoting consistency and reducing the API
surface.
Bug: 473854537
Change-Id: Ied200d2c5fc0015d29992b78fe065c3559ade848
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706812
Auto-Submit: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/main@{#1606063}
* [cr148][ios] Add implementation for `CWVGlobalState::setDumpWithoutCrashingHandler`
Added implementation for new required method.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7c9a01ff3216085d9809562f93e716b624c73627
commit 7c9a01ff3216085d9809562f93e716b624c73627
Author: Anuj Kumar <anujbh@google.com>
Date: Fri Mar 13 11:28:12 2026 -0700
[ios_web_view] Expose CWVGlobalState setDumpWithoutCrashingHandler
Exposes setDumpWithoutCrashingHandler in CWVGlobalState to allow
the host application to register a custom crash handler function
for Chromium's base::debug::DumpWithoutCrashing.
Bug: 491216002
Change-Id: I864d7869ae5ace1e9ddfe58502380e609c0746a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7650095
Reviewed-by: Mike Dougherty <michaeldo@chromium.org>
Reviewed-by: Carlos Acosta <cyacosta@google.com>
Commit-Queue: Anuj Kumar <anujbh@google.com>
Cr-Commit-Position: refs/heads/main@{#1599198}
* [cr148] `TabStrip::SetTabData` deleted and `TabData` dropped
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/74da1f8342e2593df0fd30271db17987706a35a1
https://chromium.googlesource.com/chromium/src/+/6f42aa179cbcfdb3dc07de43809701f59479071c
commit 74da1f8342e2593df0fd30271db17987706a35a1
Author: Steven Luong <stluong@chromium.org>
Date: Tue Mar 24 14:12:23 2026 -0700
Reland "[TabData] Remove TabData usage from TabStripController"
This reverts commit c5d67fe9a40ec6b08a9274c6f594e6531f6d0da4.
Reason for revert: The original CL was reverted because there was
a bug in how the TabDataObserver was handling thumbnails for
discarded tabs. Since the fix for that landed last week and crashes
have gone down. This CL can be relanded now.
Original change's description:
> Revert "[TabData] Remove TabData usage from TabStripController"
>
> This reverts commit 231ccad15761c8cba75c882e9ae0d2c7b75f303b.
>
> Reason for revert: The tab strip data is needed because
> https://chromium-review.git.corp.google.com/c/chromium/src/+/7644981
> is reverted.
>
> Original change's description:
> > [TabData] Remove TabData usage from TabStripController
> >
> > The tab can now populate its own tab data so it doesn't need to rely on
> > the BrowserTabStripController and TabStrip to pass in a TabData. Thus
> > usage of TabData is deleted in this CL.
> >
> > Bug: 447214891
> > Change-Id: Ia864e73a7b1f058e8a3da9f8911afeaa5dbfba5a
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7657233
> > Reviewed-by: Alison Gale <agale@chromium.org>
> > Commit-Queue: Steven Luong <stluong@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1598602}
>
> Bug: 447214891
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Change-Id: Ia521f463988e532fd18f7f8e122627c85553d389
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7663410
> Commit-Queue: Darryl James <dljames@chromium.org>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Auto-Submit: Steven Luong <stluong@chromium.org>
> Reviewed-by: Darryl James <dljames@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1598703}
Bug: 447214891
Change-Id: Iabf862532b9b3029e28f058b22fd96677240bfa4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7698715
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Steven Luong <stluong@chromium.org>
Reviewed-by: Alison Gale <agale@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604379}
commit 6f42aa179cbcfdb3dc07de43809701f59479071c
Author: Steven Luong <stluong@chromium.org>
Date: Tue Mar 17 12:59:15 2026 -0700
[TabData] Reland Tab sets data from TabDataObserver
This CL has the tab directly subscribe for tab data updates from the
TabDataObserver instead of relying on other classes to set its data.
The original CL was reverted because a crash occurs when the
ThumbnailImage::Subscribe() is invoked, but the ThumbnailImage's
delegate is null. The delegate is the TabThumbnailHelper and this
can be null when the WebContents is destroyed. This implies that the
hover card is trying to update with stale TabData after the tab's
web contents is destroyed, but before the tab is destroyed.
Therefore, this CL attempts to fix this crash by clearing out the
thumbnail data when the TabInterface is deleted to avoid this case.
Bug: 447214891
Change-Id: Ifc9e6146d932e8d04af735a31e876945901c0b8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7666899
Commit-Queue: Steven Luong <stluong@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600750}
* [cr148] `ReloadBypassingCache` migrated from `Browser`
This is just a replacement for `BrowserWindowInterface`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6fdf39dcf2a19ea7debd7f96d1668f4631cfabb0
commit 6fdf39dcf2a19ea7debd7f96d1668f4631cfabb0
Author: Kun Wang <kunwang@microsoft.com>
Date: Sun Mar 29 13:12:54 2026 -0700
[bedrock] Migrate Browser parameters to BrowserWindowInterface Part 2
Migrate ~30 functions to take BrowserWindowInterface* instead of
Browser*. Functions needing Browser*-specific APIs use
GetBrowserForMigrationOnly() as an incremental workaround.
Also migrates lens::IsRegionSearchEnabled/IsInProgressiveWebApp and
ScreenshotCapturedBubbleController::Capture to BrowserWindowInterface*.
Bug: 494376650
Change-Id: If121f69b70804171718563074abc5341e0b1a03b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7699547
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Commit-Queue: Tom Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606828}
* [cr148] `NotificationHandler::Type::SEND_TAB_TO_SELF` removed
This upstream change removed `NotificationHandler::Type::SEND_TAB_TO_SELF`,
which wallet code was relying on for notifications and click-handling.
This commit switches it to use the `ANNOUNCEMENT` notification type instead, but
the correct long-term solution is to add our own wallet-specific notification
type and handler. The wallet team has been informed and an issue was opened to
track that work here https://github.com/brave/brave-browser/issues/54389.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/577a926419a0a7350d43af2cbeae968c7b87555e
commit 577a926419a0a7350d43af2cbeae968c7b87555e
Author: Michael Tatarski <mtatarski@google.com>
Date: Thu Mar 26 03:18:17 2026 -0700
Remove legacy STTS UI and modularize Android STTS code
The DesktopNotificationHandler was part of the STTSv1 UI, relying on system notifications to alert users when a tab was received on desktop. This is superseded by the STTSv2 UI (ephemeral bubble). This change removes the dead handler code, the SEND_TAB_TO_SELF notification type, and obsolete UI strings.
Bug: 40811626
Change-Id: Id0b98d6465f765650c64151c12efb6e92a3fea30
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7684232
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Michael Tatarski <mtatarski@google.com>
Cr-Commit-Position: refs/heads/main@{#1605368}
* [cr148] Ensure `BraveShortcutsProviderTest` initializes the `HistoryService`
This initialization is now required and enforced by upstream.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/aac2a1dad2e0f384b3df12e985e2a21b329cf438
commit aac2a1dad2e0f384b3df12e985e2a21b329cf438
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Tue Mar 17 02:29:59 2026 -0700
Ensure ShortcutsProviderTest initializes the HistoryService
In production it is not possible to get access to an HistoryService
that has not been initialized, so change ShortcutsProviderTest to
call HistoryService::Init(...) on the fake service it creates.
This will allow changing HistoryService to prevent registering
observers after the call to the Shutdown() method.
Bug: 481635191
Change-Id: Iedd4300792209b0c11bdc052a6c4a30b1759889a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7670577
Reviewed-by: Nihar Majmudar <niharm@google.com>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600402}
* [cr148][Android] kMagicStackAndroid removed and enabled
Chromium commit:
https://source.chromium.org/chromium/chromium/src/+/637ab3d33243fac8b3ee914db8357adb2fd79464
commit 637ab3d33243fac8b3ee914db8357adb2fd79464
Author: Xi Han <hanxi@google.com>
Date: Wed Mar 25 09:04:27 2026 -0700
[MagicStack] Clean up feature MagicStackAndroid.
In this CL, we clean up all remaining code for the feature flag of
magic stack. The feature has been launched long time ago.
Bug: 41485537, 487641528, 493844946
Change-Id: Ifc8d51793b942974ea0366656c0d4878b9578857
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7697213
Reviewed-by: Xinyi Ji <xinyiji@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604869}
* [cr148][Android] Replace ConfirmationDialogHelper with ActionConfirmationDialog
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/f3ba4ddfcd5f49cded342e0fe965cb2dee67f5bc
commit f3ba4ddfcd5f49cded342e0fe965cb2dee67f5bc
Author: Piotr Kotynia <piotrkotynia@google.com>
Date: Wed Mar 25 06:50:24 2026 -0700
[Android] Replace ConfirmationDialogHelper with ActionConfirmationDialog
This CL deprecates the ConfirmationDialogHelper and replaces its usage
inside the keyboard accessory with the generic ActionConfirmationDialog
from browser_ui.
End-to-end integration testing for the deletion dialog flow inside the
keyboard accessory will be added in a follow-up CL.
Bug: 440257087
Change-Id: I3844d662d5295eb670792384f4ea403a675661d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7666141
Reviewed-by: Friedrich Hauser <friedrichh@chromium.org>
Commit-Queue: Piotr Kotynia <piotrkotynia@google.com>
Reviewed-by: Sky Malice <skym@chromium.org>
Auto-Submit: Piotr Kotynia <piotrkotynia@google.com>
Cr-Commit-Position: refs/heads/main@{#1604763}
* [cr148][Android] Cleanup MultiWindowUtils#getInstanceCountWithFallback()
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/a8ce63dc2a3db3dbe93ef44747e21fae654f35ec
commit a8ce63dc2a3db3dbe93ef44747e21fae654f35ec
Author: Aishwarya Rajesh <aishwaryarj@google.com>
Date: Thu Mar 26 13:51:59 2026 -0700
[RWM] Cleanup MultiWindowUtils#getInstanceCountWithFallback()
Rename the method to getInstanceCount() and use this to replace current
callsites of getIncognitoInstanceCount() so that the latter can be
removed.
Bug: 461553972
Change-Id: I0eb9cc5c48394312310bce90c2a7e1970249d816
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7700123
Reviewed-by: Sirisha Kavuluru <skavuluru@google.com>
Commit-Queue: Aishwarya Rajesh <aishwaryarj@google.com>
Cr-Commit-Position: refs/heads/main@{#1605765}
* [cr148][Android] Removed tabContentManagerSupplier from NewTabPage.ctor
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/637ab3d33243fac8b3ee914db8357adb2fd79464
commit 637ab3d33243fac8b3ee914db8357adb2fd79464
Author: Xi Han <hanxi@google.com>
Date: Wed Mar 25 09:04:27 2026 -0700
[MagicStack] Clean up feature MagicStackAndroid.
In this CL, we clean up all remaining code for the feature flag of
magic stack. The feature has been launched long time ago.
Bug: 41485537, 487641528, 493844946
Change-Id: Ifc8d51793b942974ea0366656c0d4878b9578857
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7697213
Reviewed-by: Xinyi Ji <xinyiji@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604869}
* [cr148][Android] Move MultiInstanceManager#openUrlInOtherWindow() to
MultiInstanceOrchestrator
Removed multiInstanceManager from:
- NewTabPage.ctor;
- LocationBarCoordinator.ctor;
- LocationBarMediator.ctor;
- ToolbarManager.ctor.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/8d0821cb4bcc840ed271bbc209298da535523a62
commit 8d0821cb4bcc840ed271bbc209298da535523a62
Author: Aishwarya Rajesh <aishwaryarj@google.com>
Date: Wed Mar 25 10:58:50 2026 -0700
[MIR] Move MultiInstanceManager#openUrlInOtherWindow() to
MultiInstanceOrchestrator
This will make the implementation accessible from
non-ChromeTabbedActivity contexts.
Also remove now unused MultiInstanceManager dependency from impacted
classes.
Bug: 494034921
Change-Id: I9eb1b871476a82a49a6e7f294e542d58a913c3fe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7695235
Reviewed-by: Sirisha Kavuluru <skavuluru@google.com>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Aishwarya Rajesh <aishwaryarj@google.com>
Cr-Commit-Position: refs/heads/main@{#1604957}
* [cr148][Android] Changes at ShareDelegateImpl.ctor
New args:
signinAndHistorySyncActivityLauncher;
activityResultTracker;
modalDialogManagerSupplier;
snackbarManager.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/0af385e0296806bb278d2c4b73e7e652d310def5
commit 0af385e0296806bb278d2c4b73e7e652d310def5
Author: quacksort <quacksort@google.com>
Date: Tue Mar 24 06:59:26 2026 -0700
[Signin][Android] Migrate send tab to self sign-in to activity-less flow
This is part of the effort to reduce reliance on
SigninAndHistorySyncActivity by sign-in entry points.
go/activityless-signin
The new flow uses BottomSheetSigninAndHistorySyncCoordinator to handle
the sign-in process, avoiding the need to launch a separate activity.
Bug: 478814334
Change-Id: I0448875de416af5e3e48d1ac5f2eeb3d18e6efcc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7647173
Reviewed-by: Anton Goncharenko <agonch@google.com>
Commit-Queue: Lucia Giorgi <quacksort@google.com>
Cr-Commit-Position: refs/heads/main@{#1604087}
* [cr148][Android] Emulator android_33_google_atd_x64.textpb was removed
We used it to run the tests.
Switched to `android_33_google_apis_x64`
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/d791b7eb1211d53a879106167bc2da94f4fc00dc
commit d791b7eb1211d53a879106167bc2da94f4fc00dc
Author: Haiyang Pan <hypan@google.com>
Date: Tue Mar 24 09:39:37 2026 -0700
Remove all the Android atd images and unused Android FYI builders.
We use the same image for CI builders as well as for developers' local
debugging to makes it easier to repro issues. But atd images are
not good options for local debugging as it disables the rendering.
So remove all atd images for now.
The following Android fyi builders have been paused or duped with
non-fyi builders so remove them as well:
* android-10-x86-fyi-rel
* android-12-x64-fyi-rel
* android-12l-x64-fyi-dbg
* android-13-x64-fyi-rel
* android-14-arm64-fyi-rel
* android-14-x64-fyi-rel
* android-15-x64-fyi-rel
Bug: 347759127, 40930660, 40263601
Change-Id: I3a65e885ec8513e8b1747b98570ae57c4348302e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7694232
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Commit-Queue: Haiyang Pan <hypan@google.com>
Cr-Commit-Position: refs/heads/main@{#1604195}
* [cr148] Moved profile_manager.h to the new target
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/fa00b2f67d04301745eb9556038bc7290ce50079
commit fa00b2f67d04301745eb9556038bc7290ce50079
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date: Fri Mar 27 08:21:30 2026 -0700
Move profile_manager.h to the new target.
Many targets depend on this include. The CL moves it from chrome/browser/BUILD.gn to a smaller target. As a side effect the following files can also be moved:
- "profile_metrics.*"
- "profile_shortcut_manager.*"
- "profile_destroyer.*"
- "profile_manager.cc"
AX-Relnotes: n/a.
Bug: 353332589
Change-Id: Iecaeebf68b32d6af39306ff6a755a97881cfe3fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7055004
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Reviewed-by: Alex Ilin <alexilin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606230}
* [cr148] Code Health: Use span in base::HexEncode
https://source.chromium.org/chromium/chromium/src/+/da12fb560afc4519dc2ae1f831714008fda90bac
commit da12fb560afc4519dc2ae1f831714008fda90bac
Author: raorui <ruirao565@gmail.com>
Date: Fri Mar 27 03:27:18 2026 -0700
Code Health: Use span in base::HexEncode
- Migrate HexEncode callers from raw pointer+length to controlled views:
- strings: std::string_view or base::as_byte_span
- IOBuffer: io_buffer()->span()
- struct bytes: reinterpret_cast + base::span<const uint8_t>
- Clamp adapter MAC length before slicing to avoid OOB when encoding
- Remove pointer-based HexEncode overload and associated TODO
- Update tests and fuzzers to new interfaces
Bug: 40284755
Change-Id: I3352bb1a795b2f10cf5a8bedb432fe7d4bdf7290
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7607319
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Owners-Override: Colin Blundell <blundell@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606068}
* [cr148] Use `AutocompleteInput::SanitizeString` to sanitize omnibox match description/contents
Autocomplete match strings are now checked against the more stringent
sanitization that this function provides.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/701d98351457eb9db829972cacfdb8c876f09f3e
commit 701d98351457eb9db829972cacfdb8c876f09f3e
Author: Stepan Khapugin <stkhapugin@chromium.org>
Date: Thu Mar 26 13:02:39 2026 -0700
[Omnibox] Sanitize page title for verbatim matches.
OmniboxClient->GetTitle() may be unsanitized (and it is on iOS).
Sanitize it before using in the verbatim match.
Bug: 375522403
Change-Id: I554f06c39cd36fc3c91f66468842372862bbfe6e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6074727
Auto-Submit: Stepan Khapugin <stkhapugin@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Justin Donnelly <jdonnelly@chromium.org>
Reviewed-by: manuk hovanesian <manukh@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605726}
* [cr148] Fix `PartitionedHostStateMapTest.MultiplePartitions` test by scoping `AutoReset` per partition
This test broke in 148 due to changes in `AutoReset` move-assignment, which made
reusing a single `AutoReset` for multiple partition changes unreliable. This
change gives each partition its own scoped `AutoReset` object, ensuring RAII
restores the previous partition correctly.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/31aff9a0d6ab3e4e2e8bf928d9a9146def053018
commit 31aff9a0d6ab3e4e2e8bf928d9a9146def053018
Author: gate kibr <gkvjwa@gmail.com>
Date: Fri Mar 27 03:04:37 2026 -0700
Add move-assignment for AutoReset
Existing code only cover move construction. Add coverage for move
assignment to an AutoReset that already manages a variable, which should
restore the old value before taking ownership of the new one.
Change-Id: If652a12b967f7f93fb827916fbab0765f58d2dee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7684905
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606058}
* [cr148] Reanchor override since `ShouldDisplayVerticalTabs` was deleted
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6943dc09af6f5b5445c30d3088f3477289ef2617
commit 6943dc09af6f5b5445c30d3088f3477289ef2617
Author: Dana Fried <dfried@chromium.org>
Date: Fri Mar 27 13:12:34 2026 -0700
[Animation] Move [vertical] tab strip to new animation system
This should maintain rough feature parity with the previous
functionality, which is to say there are still serious issues.
It does add internal curved corners when the tab strip bumps out on
hover.
Here are the follow-up items:
- Curved corners on a custom corners background should receive a stroke
if either adjacent edge has a stroke, not if both do.
- Need to handle transition from expanded on hover (or expanding on
hover) to uncollapse without snapping the VTS back to collapsed at
the beginning.
- Whatever other visual adjustments are needed, including a drop shadow.
Bug: 493594309, 493593592
Change-Id: I5ab4d9599af991f774001f32cd6a58f030e3895c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7681390
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Dana Fried <dfried@chromium.org>
Auto-Submit: Dana Fried <dfried@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606426}
* [cr148][ios] Use span in `base::HexEncode`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/da12fb560afc4519dc2ae1f831714008fda90bac
commit da12fb560afc4519dc2ae1f831714008fda90bac
Author: raorui <ruirao565@gmail.com>
Date: Fri Mar 27 03:27:18 2026 -0700
Code Health: Use span in base::HexEncode
- Migrate HexEncode callers from raw pointer+length to controlled views:
- strings: std::string_view or base::as_byte_span
- IOBuffer: io_buffer()->span()
- struct bytes: reinterpret_cast + base::span<const uint8_t>
- Clamp adapter MAC length before slicing to avoid OOB when encoding
- Remove pointer-based HexEncode overload and associated TODO
- Update tests and fuzzers to new interfaces
Bug: 40284755
Change-Id: I3352bb1a795b2f10cf5a8bedb432fe7d4bdf7290
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7607319
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Owners-Override: Colin Blundell <blundell@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606068}
* [cr148][ios] `SendTabToSelfModel::AddEntry` takes a `NavigationHistory` param now
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/19645de672e801f850aec8480cc120467e9ab758
commit 19645de672e801f850aec8480cc120467e9ab758
Author: Michael Tatarski <mtatarski@google.com>
Date: Sat Mar 28 04:03:32 2026 -0700
[STTS] Add navigation history support to STTS model
To support sending a tab's full back/forward history (similar to "Tabs
from other devices"), this CL updates the Send-Tab-To-Self core model,
entry definition, and sync bridge.
A dedicated `NavigationHistory` struct has been introduced to cleanly
encapsulate a vector of `sessions::SerializedNavigationEntry` objects
along with the current navigation index. The `SendTabToSelfEntry` class
is updated to hold this struct and serialize/deserialize it to and from
`sync_pb::SendTabToSelfSpecifics`.
Bug: 491743359
Change-Id: Ia87854b09b09bbc2aa01726ca6fba12a169beb06
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7694034
Reviewed-by: Marc Treib <treib@chromium.org>
Commit-Queue: Michael Tatarski <mtatarski@google.com>
Cr-Commit-Position: refs/heads/main@{#1606668}
* [cr148][Android] SnackbarView/SnackbarManager ctor changed
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/36279bf7b4c5515fa7a64d8f462faed9f5da4e7b
commit 36279bf7b4c5515fa7a64d8f462faed9f5da4e7b
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Fri Mar 27 14:07:42 2026 -0700
[Snackbar] Drive snackbar bottom margin externally
This should have no behavioral changes!
Goals
- Decoupling of E2E from Snackbar.
- Allow bottom margin to be driven by the owning component to take into
account other UI elements without coupling to Snackbar code e.g.
(bottomsheets, etc.)
- In future allow pushParentViewToOverrideStack to customize the bottom
margin appropriately for a different container context.
Bug: 491514883
Change-Id: I8c71f3122ad809e6459892a4b216ce4f8a0a8a19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7689191
Reviewed-by: Charles Hager <clhager@google.com>
Reviewed-by: Aishwarya Rajesh <aishwaryarj@google.com>
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606473}
* [cr148][Android] ButtonData classes moved to a dedicated button subpackage
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/04f42625a4b2b0ee463088ef65d72022191bc7bb
commit 04f42625a4b2b0ee463088ef65d72022191bc7bb
Author: Dan Polanco <polardz@google.com>
Date: Fri Mar 27 11:49:00 2026 -0700
[Actions] Move ButtonData classes to a dedicated button subpackage
This change moves ActionButtonData, DelegateButtonData,
DisplayButtonData, DrawableButtonData, TabSwitcherDrawableButtonData,
FullButtonData and ResourceButtonData into a new ui/actions/button
subpackage.
Bypass-Check-License: Moving files.
Bug: 483096892
Change-Id: Ibdb1c3898fc022c5eef29177ba71656480e9914d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706022
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Dan Polanco <polardz@google.com>
Auto-Submit: Dan Polanco <polardz@google.com>
Cr-Commit-Position: refs/heads/main@{#1606387}
* [cr148][Android] Conflict on BraveTabCollectionTabModelImplBase.isTabModelRestored()
Upstream moved isTabModelRestored() into the TabGroupModelFilter
interface, which TabModel now extends, making the previously
private method in BraveTabCollectionTabModelImplBase conflict
with the now-public interface method.
Error message:
../../brave/android/java/org/chromium/chrome/browser/tabmodel/BraveTabCollectionTabModelImplBase.java:61: error: isTabModelRestored() in BraveTabCollectionTabModelImplBase cannot implement isTabModelRestored() in TabGroupModelFilter
private boolean isTabModelRestored() {
^
attempting to assign weaker access privileges; was public
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/401697a07af594e4420ef1f4998d13f43533874f
commit 401697a07af594e4420ef1f4998d13f43533874f
Author: Jingping Sun <jings@microsoft.com>
Date: Fri Mar 27 10:23:32 2026 -0700
[TabModel] Make TabModel extend TabGroupModelFilter
As part of combining these interfaces this CL is the first step.
* IncognitoTabGroupModelFilterImpl is inlined onto
IncognitoTabModelImpl.
* StubTabGroupModelFilterImpl is no longer required.
* EmptyTabModel now has stub methods for TabGroupModelFilter.
BYPASS_LARGE_CHANGE_WARNING: all stub methods
Bug: 463685717, 476144237, 493519189
Change-Id: Ia27c3a355f92da60cdb3c1e8ac9fabe892b49bc0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7684470
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Sky Malice <skym@chromium.org>
Commit-Queue: Jingping Sun <jings@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1606333}
* [cr148][Android] MultiInstanceOrchestratorImpl.moveTabsToWindowByIdChecked signature changed
New arg bringToFront
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/15b60a7f51080d75b18d37f6bbf83a7a39151c15
commit 15b60a7f51080d75b18d37f6bbf83a7a39151c15
Author: Lijin Shen <lazzzis@google.com>
Date: Fri Mar 27 14:06:30 2026 -0700
tabs.move on Android: allow moving tabs in the background
Fixes a behavior discrepancy between Android and Desktop when moving
tabs between windows via the extension API (e.g., chrome.tabs.move).
Currently on Android, the destination window is always brought to the
front
Added a bringToFront boolean parameter to conditionally controls the
call to ApiCompatibilityUtils.moveTaskToFront(). This defaults to true
such that this CL won't bring any behavior change. This sets false in
TabModelSelectorImpl.java such that tab.move won't activate the
destination window.
Bug: 495516043
Change-Id: I60e7b42794c240023669afcf3cd15f8031c16ded
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7685707
Reviewed-by: Linyu He <linyuh@google.com>
Reviewed-by: Aishwarya Rajesh <aishwaryarj@google.com>
Commit-Queue: Lijin Shen <lazzzis@google.com>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606471}
* [cr148][Android] new_tab_page_layout.xml updated
Chromium changes:
https://source.chromium.org/chromium/chromium/src/+/6edb0dee6f14aeeafbd19b9140c94f6be4a83fd6
commit 6edb0dee6f14aeeafbd19b9140c94f6be4a83fd6
Author: Xi Han <hanxi@google.com>
Date: Fri Mar 27 11:35:29 2026 -0700
[Composeplate] Clean up the composeplate v1 layout [1/2]
In this CL, we remove the V1 layout composeplate_view_layout.xml, and
clean up ViewBinder and Properties.
Bug: 421944848, 487641528
Change-Id: Ia9d21a2069ce5e7ff9d7c3d622d8893973950774
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7708412
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: Xinyi Ji <xinyiji@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606375}
https://source.chromium.org/chromium/chromium/src/+/8ddf6bb4ecfeed84c878714b5990b8d02ef21193
commit 8ddf6bb4ecfeed84c878714b5990b8d02ef21193
Author: Xi Han <hanxi@google.com>
Date: Fri Mar 27 11:35:44 2026 -0700
[Composeplate] Clean up the composeplate v1 layout [2/2]
Rename composeplate_view_layout_v2.xml to composeplate_view_layout.xml.
Bug: 421944848, 487641528
Bypass-Check-License: the layout is renamed from composeplate_view_layout_v2.xml.
Change-Id: I09c6ebd91a992d2d7c343074ef64e4afe1626ae9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7708273
Reviewed-by: Xinyi Ji <xinyiji@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1606376}
* [cr148][cherry-pick] `kPasswordDateLastFilled` temp disabling landed
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ac7e26b7bfb7579956b52b25c0af08383559dd35
commit ac7e26b7bfb7579956b52b25c0af08383559dd35
Author: Martin Kreichgauer <martinkr@google.com>
Date: Tue Mar 17 10:50:02 2026 -0700
Temporarily disable kPasswordDateLastFilled as mitigation
Bug: 485895402
Change-Id: I03aca033dd6978731035e04be54d6d23ab0c98d4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7674577
Auto-Submit: Martin Kreichgauer <martinkr@google.com>
Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
Commit-Queue: Martin Kreichgauer <martinkr@google.com>
Cr-Commit-Position: refs/heads/main@{#1600656}
* [cherry-pick][cr148] OS simulator wipe and boot reliability cherry picks landed
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/39a1c1938c9f9c3bcf36f015172600018169b6db
https://chromium.googlesource.com/chromium/src/+/b4a2fed9285188d8a5957d87f72db7162ff90026
commit 39a1c1938c9f9c3bcf36f015172600018169b6db
Author: Yue She <yueshe@google.com>
Date: Wed Mar 18 11:57:28 2026 -0700
Improve iOS simulator wipe and boot reliability in test runners
- Reorders simulator teardown steps: `kill_simulators` is now invoked
after wiping/erasing data instead of before. This ensures that any stray processes or simulators left in a bad state from the wipe/erase
procedures are properly cleaned up.
- Adds a retry mechanism for simulator pre-booting.
Bug: 441038354
Change-Id: I8f94649d195a3804d9392dafdcde6dbd2c88ec88
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7676077
Reviewed-by: Will Yeager <wyeager@google.com>
Commit-Queue: Yue She <yueshe@google.com>
Cr-Commit-Position: refs/heads/main@{#1601444}
commit b4a2fed9285188d8a5957d87f72db7162ff90026
Author: Yue She <yueshe@google.com>
Date: Mon Mar 23 10:21:18 2026 -0700
[iOS] Cache dyld before pre-booting simulators
This seems to help with simulator booting failures. The workaround is also suggested in https://developer.apple.com/documentation/xcode-release-notes/xcode-26_1-release-notes
Bug: 441038354
Change-Id: I5bc754bddbd98a580ed16b1245cf43a267807908
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7691682
Commit-Queue: Yue She <yueshe@google.com>
Reviewed-by: Will Yeager <wyeager@google.com>
Cr-Commit-Position: refs/heads/main@{#1603573}
* [cr148] `kReportPakFileIntegrity` deleted
This feature flag is deleted and with it the code it was guarding.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a7f5d81c8c7ed8f53c46e8394c983c949c2aeaff
commit a7f5d81c8c7ed8f53c46e8394c983c949c2aeaff
Author: Daniel Rubery <drubery@chromium.org>
Date: Mon Mar 30 12:13:56 2026 -0700
Deprecate SafeBrowsing.PakIntegrity.*
Safe Browsing isn't monitoring this anymore, so remove the code.
OBSOLETE_HISTOGRAMS=Removed 2026-03 due to lack of use
Fixed: 495423545
Change-Id: I1c0a2ad7f137545cf4e9b0be48d1e60a9a98aef2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7694830
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Commit-Queue: Daniel Rubery <drubery@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607289}
* [cr148] Fixing `ShouldTrackBrowser` call in `TabSearchPageHandler`
There has been a recent refactor that requires passing `profile_` into
this function.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7c978026959ee9a0d177f01adcd306da3687cbf1
commit 7c978026959ee9a0d177f01adcd306da3687cbf1
Author: David Yeung <dayeung@chromium.org>
Date: Mon Mar 30 14:57:04 2026 -0700
[TabSearch] Refactor event listening to use TabStrip API
CL migrates the event observation in TabSearchPageHandler to use the
TabStripAPI instead of TabStripModel's observer. While this CL has
changed how we're receiving the events, the handling of those events are
the same.
The previous TabSearchPageHandler only cares about 3 events:
- when a tab is removed
- when a split tab is removed
- when the tab data changes
The main focus of this CL is transitioning those events and making sure
they're received.
Key changes:
- Replace BrowserTabStripTracker with TabStripServiceAggergator
- Replace OnTabStripModelChanged and OnTabChangedAt with OnTabEvents
- Created helper methods to split OnTabEvents into: OnNodesRemoved, OnTabsRemoved, OnTabDataChanged, OnSplitTabRemoved
Bug: 477686464
Change-Id: Ida32de4e3e25bb7209c823c0904df7b431491a97
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7697541
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Commit-Queue: David Yeung <dayeung@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607402}
* [cr148] `ProfileResetterMockObject` modularised
This function is only used by our browser tests, and this change adds
the new target as one of the deps.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/b319111eaa8bee49a347e981c6a83afe9b663dc7
commit b319111eaa8bee49a347e981c6a83afe9b663dc7
Author: Orko Garai <orko@igalia.com>
Date: Mon Mar 30 12:36:51 2026 -0700
Finish modularizing c/b/profile_resetter
Move the remaining profile_resetter sources from c/b to
c/b/profile_resetter target.
Bug: 353332589
Change-Id: I419b9d63e331df48415e18ee2479563dea09069d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7703695
Commit-Queue: Orko Garai <orko@igalia.com>
Reviewed-by: Darryl James <dljames@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607306}
* [cr148][Android] Fixed NPE at JNI_HomeModulesRankingHelper_*
The commit mentioned below made showMagicStack() unconditional,
exposing the latent null-check bug in home_modules_ranking_helper.cc.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/637ab3d33243fac8b3ee914db8357adb2fd79464
commit 637ab3d33243fac8b3ee914db8357adb2fd79464
Author: Xi Han <hanxi@google.com>
Date: Wed Mar 25 09:04:27 2026 -0700
[MagicStack] Clean up feature MagicStackAndroid.
In this CL, we clean up all remaining code for the feature flag of
magic stack. The feature has been launched long time ago.
Bug: 41485537, 487641528, 493844946
Change-Id: Ifc8d51793b942974ea0366656c0d4878b9578857
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7697213
Reviewed-by: Xinyi Ji <xinyiji@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1604869}
* [cr148] Password store factory headers moved
These are now under chrome/browser/password_manager/factories/.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/36cbca739593ae8b8cb3c01ac064b875f310bc15
commit 36cbca739593ae8b8cb3c01ac064b875f310bc15
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date: Tue Mar 31 04:21:53 2026 -0700
Move password store factories from //chrome/browser to the smaller
target in chrome/browser/password_manager/factories/BUILD.gn.
Bug: 353332589
Change-Id: I3b19769f13af5db892c4dda03ab3dca40ef2dbd5
Bypass-Check-License: Moving files, no license changes.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7702977
Reviewed-by: Friedrich Hauser <friedrichh@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607775}
* [cr148] `TabStrip::UpdateHoverCard` override fixed
The signature for this function has changed, but this is for arguments
that just get passed along.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e8ce621318d56bf293ef01a6d045e097d2cc6440
commit e8ce621318d56bf293ef01a6d045e097d2cc6440
Author: Dominic Austria <dominicaustria@google.com>
Date: Tue Mar 31 00:35:28 2026 -0700
Add Hover Cards to Tab Group Headers in Horizontal Tab Strip
We show the hover card for tab group headers for the horizontal tab
strip, on mouse hover or focus. Like in the vertical tab case, we
generate the card data right before showing the hover card because the
tab group does not get updated when one of its tabs are deleted or
navigated to a new page, see bug 497896801
Bug: 493242596
Change-Id: I3244fcb110fdb67f7c027297baff2f94ad5d45be
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7701562
Reviewed-by: Caroline Rising <corising@chromium.org>
Commit-Queue: Dominic Austria <dominicaustria@google.com>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607691}
* [cr148] `String::FromUTF8` deleted
This has been replaced with `String::FromUtf8`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/b4e81f96c4c5e4117bfab65a7771d9673a49512b
commit b4e81f96c4c5e4117bfab65a7771d9673a49512b
Author: Kent Tamura <tkent@chromium.org>
Date: Mon Mar 30 21:49:18 2026 -0700
WTF: Remove deprecated String::FromUTF8()
This CL removes the deprecated String::FromUTF8() methods and updates
all call sites to use String::FromUtf8() instead. The FromUTF8 methods
were deprecated as they simply forwarded to FromUtf8 and are no longer
needed.
Bug: 492927412
Change-Id: I0055b96becdb1a48b73e982ea959dcab67219384
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7707740
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607616}
* [cr148] `WebString::FromASCII` renamed
The naming now follows the guidelines as `WebString::FromAscii`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e296ed299c34488ce76fbc1cf9a93d1c7bc3f7e3
commit e296ed299c34488ce76fbc1cf9a93d1c7bc3f7e3
Author: Kent Tamura <tkent@chromium.org>
Date: Tue Mar 31 01:47:41 2026 -0700
Rename blink::WebString::FromASCII to FromAscii
To follow a naming rule of Google C++ style guide.
This CL has no behavior changes.
Bug: 492927412
Change-Id: I572d7e4e3382ec0f96f232f5a0e6b5fcb31cdf51
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7714579
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Owners-Override: Kent Tamura <tkent@chromium.org>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/main@{#1607722}
* [cr148] tab_group_editor_bubble_view.cc moved into groups subfolder
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/71652909a3655cf176c20bb779af7f16a68c8ff2
commit 71652909a3655cf176c20bb779af7f16a68c8ff2
Author: Eshwar Stalin <estalin@chromium.org>
Date: Mon Mar 30 16:41:15 2026 -0700
Moving shared groups views into the common folder
Moving group views shared between horizontal and vertical tab strip is
now moved into the common groups folder. The follow-up is to have
separate BUILD.gn files for each folder after we have things in the
final structure.
Bypass-Check-License: Moving existing files
Change-Id: I830aca510c381b9d615a080c0bdd9a6f7feebf7b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7708747
Commit-Queue: Eshwar Stalin <estalin@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607444}
* [cr148] `tpcd_heuristics` deleted
Removing our related overrides for `tcpd_heuristics` which was completely
deleted.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/037fbcccbcf615935481c45b6359b79c90543082
commit 037fbcccbcf615935481c45b6359b79c90543082
Author: Fiona Macintosh <fmacintosh@google.com>
Date: Mon Mar 30 09:43:22 2026 -0700
Delete content/browser/tpcd_heuristics
Cleaning out obsolete 3pcd logic
Change-Id: I151fcf473e15ea65561b9e25289d749e7a145365
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7697345
Reviewed-by: Joshua Hood <jdh@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Fiona Macintosh <fmacintosh@google.com>
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607164}
* [cr148] Add new `IDC_SHOW_READING_MODE_KEYBOARD` command to Commander unit test metadata
Updated Commander unit test metadata to support the new command.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bd8ce1fbdc3492bbdce7a9c4d8a4b022fb177a7d
commit bd8ce1fbdc3492bbdce7a9c4d8a4b022fb177a7d
Author: Martín Gómez <martinglopez@google.com>
Date: Mon Mar 30 12:58:02 2026 -0700
[Reading Mode] Add keyboard shortcut to open and close Reading Mode
@robliao and @groby approved the the keyboard shortcut combination.
The shortcut for each platform is the following:
- Option-Command-R for Mac OS
- Alt + Shift + R for ChromeOS, Linux and Windows
The CL also includes the following adjustments for Reading Mode to
support the new keyboard shortcut:
- Add kKeyboardShortcut to the ReadAnythingOpenTrigger enum.
- Make `ReadAnythingEntryPointController::ToggleUI` public so the
BrowserCommandController can use the method to open/close reading mode.
NO_IFTTT=Command is not gated on fenced frame network
Bug: 40909577
Change-Id: I3aea6f491b92cc882d81f9edf167ba33d7ae664e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7684297
Reviewed-by: Lauren Winston <lwinston@google.com>
Reviewed-by: Darryl James <dljames@chromium.org>
Commit-Queue: Martín Gómez <martinglopez@google.com>
Cr-Commit-Position: refs/heads/main@{#1607320}
* [cr148] Patching for `developer_private.idl` moved
This change moves the patching to its new location. It also introduces a
new patching for the webidl representation that has been introduced
upstream, to match the idl version.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d6fb2ac71ba993553eecb43bb5d1161ff1364fcf
commit d6fb2ac71ba993553eecb43bb5d1161ff1364fcf
Author: Tim Judkins <tjudkins@chromium.org>
Date: Tue Mar 31 18:19:48 2026 -0700
[Extensions] Convert developerPrivate to WebIDL
This conversion was largely done using a detailed description of the
conversion process passed to Gemini CLI. To double check this work, the
file has also been copied into the converted schemas test to verify no
functional difference in output.
Also updated a few comments to use the new filename.
Fixed: 493990846
Change-Id: I50da75a21869d45a988678dd589df7f4a6c3f778
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7694979
Commit-Queue: Tim <tjudkins@chromium.org>
Reviewed-by: Emilia Paz <emiliapaz@chromium.org>
Reviewed-by: Kelvin Jiang <kelvinjiang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1608234}
* [cr148] `PasswordManagerSettingsServiceFactory` under `factories`
This affects how targets are added now, and a shadow file had to be
corrected.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bd7255bd8bf88581d34c38be1b16b05f7d5703b6
commit bd7255bd8bf88581d34c38be1b16b05f7d5703b6
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date: Tue Mar 31 05:13:51 2026 -0700
Refactor: Move PasswordManagerSettingsServiceFactory to factories/
Moves password_manager_settings_service_factory.{h,cc} from
//chrome/browser/password_manager/ to
//chrome/browser/password_manager/factories/.
Eliminates the `password_factory_headers` source_set in
factories/BUILD.gn and wires everything cleanly to the unified
//chrome/browser/password_manager/factories target. All internal include
directives and BUILD.gn usages across webauthn, webid, autofill,
ui/passwords, and actor_login were adjusted properly.
Bug: 353332589
Change-Id: I318230d1df39b0b849a026977f00f2d3d0047831
Bypass-Check-License: moving the files
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7710837
Reviewed-by: Friedrich Hauser <friedrichh@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607791}
* [cr148] `ContentSettingImageModel::ImageType` now mojom generated
This changes how the entries are worded.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7bc22e082c77b7de13cb93cdedf0f770307f4941
commit 7bc22e082c77b7de13cb93cdedf0f770307f4941
Author: Caleb Raitto <caraitto@chromium.org>
Date: Tue Mar 31 16:07:30 2026 -0700
Migrate ContentSettingImageModel::ImageType to Mojo
To migrate ContentSettingImageView to WebUI, the type of the icon needs
to be passed to the TypeScript code over Mojo.
Currently, we're using the existing ContentSettingsType enum [0][1][2],
which is already in Mojo. However, one issue with this is that some
icons, specifically popups and framebusting, share the same underlying
ContentSettingsType (specifically POPUPS).
To address this, this CL moves the ImageType to Mojo so that it can be
used in a subsequent CL instead of ContentSettingType.
Put the new enum together with other new WebUI types, in
toolbar_ui_api_data_model.mojom. Also, adopt style guide naming, kValue
instead of VALUE, and use the implicitly-generated kMaxValue.
[0]
https://source.chromium.org/chromium/chromium/src/+/main:components/content_settings/core/common/content_settings_types.mojom;l=18;drc=9ca1f26b86f52739c8701e867f7f42cd01b59a0b
[1]
https://source.chromium.org/chromium/chromium/src/+/main:components/browser_apis/ui_controllers/toolbar/toolbar_ui_api_data_model.mojom;l=78;drc=bc6497c76dbde173025ed3cf3f9215c0949cd045
[2]
https://source.chromium.org/chromium/chromium/src/+/main:components/browser_apis/ui_controllers/toolbar/toolbar_ui_api.mojom;l=49;drc=c227e4729788b427eb646d080a55bce66968e5c9
Bug: 489109708
Change-Id: I632ae68190af90fb6eb30a73216b9caddaf58ff4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7713352
Reviewed-by: Joe Mason <joenotcharles@google.com>
Commit-Queue: Caleb Raitto <caraitto@chromium.org>
Reviewed-by: Foromo Daniel Soromou <koretadaniel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1608161}
* [cr148] Preemtping unwanted replacement for `MultiContentsView`
Due to recent header additions to this class, a build error started
occurring due to an unwanted substitution.
```
../../content/public/browser/web_contents_observer.h:922:16: error: duplicate 'virtual' declaration specifier [-Werror,-Wduplicate-decl-specifier]
922 | virtual void OnWebContentsFocused(RenderWidgetHost* render_widget_host) {}
| ^
../../brave/chromium_src/chrome/browser/ui/views/frame/multi_contents_view.h:15:30: note: expanded from macro 'OnWebContentsFocused'
15 | #define OnWebContentsFocused virtual OnWebContentsFocused
| ^
1 error generated.
```
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/9b1a481b8d0dab06a5c20bde25faa00cc6417c8c
commit 9b1a481b8d0dab06a5c20bde25faa00cc6417c8c
Author: Eshwar Stalin <estalin@chromium.org>
Date: Wed Apr 1 15:50:32 2026 -0700
[SxS] Minor cleanup of SplitTabHighlightController
Having the delegate interface directly implemented by the view and
passing the delegate directly into the controller class. This is more
modular and more aligned to the design principles.
Change-Id: I83797b7d82939ac69456852c3ca0e862132257b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7720599
Reviewed-by: Steven Luong <stluong@chromium.org>
Commit-Queue: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1608832}
* [cr148] Adjusting `LowPriorityUserTypes()` override to new location
This function's implementation has been moved from the header and into
the translation unit. This change moves the override to match that too.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/8ba91b3cd483e2a39ddc37d754e30877855bfeaf
commit 8ba91b3cd483e2a39ddc37d754e30877855bfeaf
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Mar 31 12:54:12 2026 -0700
[sync] Centralize more datatype traits in a table
Refactoring without noticeable behavioral changes: the general idea is
that datatype-specific traits (most notably including product decisions)
should be centralized in a configuration-like table, instead of having
this information distributed throughout the codebase.
This is achieved by introducing a struct, including members that
leverage newly-introduced enums to make the information as readable as
possible.
Bug: None
Change-Id: I04a9352e7ab6ddf62ad150fef7cad2a7bd96d156
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7707933
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: Maksim Moskvitin <mmoskvitin@google.com>
Cr-Commit-Position: refs/heads/main@{#1608038}
* [cr148] `perfetto` categories larger than `constexpr` depth limits
It has now become an issue for Brave that
`PERFETTO_DEFINE_TEST_CATEGORY_PREFIXES` has grown larger enough to cause the
whole macro machinery around it to fall apart due to `constexpr` depth
evaluation limits. This change bumps constexpr-depth to 1024.
A bug has been logged with Chromium to have this tracked in upstream:
crbug.com/498698527
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7a9d0ab407d1968885a9185589bbd369401476f8
commit 7a9d0ab407d1968885a9185589bbd369401476f8
Author: Aldo Culquicondor <acondor@chromium.org>
Date: Tue Mar 31 17:54:45 2026 -0700
Glic: Add metrics and traces for webui initialization
Track the time time from the web contents creation until the navigation
commits and from then until the page load completes.
Also added a dedicated glic category.
Bug: 495451913
Change-Id: I3124c26c9c630d19f381826edec192887fea43bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7711298
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Auto-Submit: Aldo Culquicondor <acondor@chromium.org>
Commit-Queue: Aldo Culquicondor <acondor@chromium.org>
Reviewed-by: Dan Harrington <harringtond@chromium.org>
Reviewed-by: Roger McFarlane <rogerm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1608223}
* [cr148] Remove support for legacy EnumTraits signatures
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a1c3e6338a3e6742b0195c672f61ac8019ab66e4
commit a1c3e6338a3e6742b0195c672f61ac8019ab66e4
Author: Jan Wilken Dörrie <jdoerrie@chromium.org>
Date: Tue Mar 31 09:48:53 2026 -0700
[mojo] Remove support for legacy EnumTraits signatures
This change removes the remaining support for the legacy Mojo EnumTraits
FromMojom signature. Previously, these traits used a non-idiomatic
C-style pattern with a boolean return value and an out-parameter for the
converted value.
To modernize the Mojo C++ bindings, all EnumTraits specializations have
been migrated to return the converted type directly for infallible
conversions, or wrapped in a std::optional for fallible ones. This
update finalizes the transition by:
- Enforcing the new return-by-value or return-by-optional signature in
the Mojo C++ template generator.
- Removing the legacy template branches that supported out-parameters.
- Deleting obsolete overloads of internal helpers ConvertEnumValue and
DeserializeEnum.
- Migrating the final set of trait specializations across the codebase,
including those in cc/, skia/, and ui/.
Fixed: 483092898
Change-Id: I7a5edc0a22157d7670e8c8f73e7db8c56a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7712053
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Jan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607926}
* [cr148] Modify settings search_page to adapt to new searchSettingsUpdate template
The underlying HTML template changed, so this is just adapting to the new
location of `enginesSubpageTrigger`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e2f64330135a11f61fb46f3e7972fc9a8d83f4fe
commit e2f64330135a11f61fb46f3e7972fc9a8d83f4fe
Author: Amelie Schneider <amelies@google.com>
Date: Thu Mar 26 08:44:17 2026 -0700
[Search] Hide chrome://settings/searchEngines with flag enabled
With the flag `SearchSettingsUpdate`, the engines choices are moved
to chrome://settings/search. Therefore, the search engines page
should be deprecated.
Bug: 490316576
Change-Id: Ibe3ade1a5a25cbb2c24da37117988b290d740896
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7679398
Commit-Queue: Amelie Schneider <amelies@google.com>
Reviewed-by: David Roger <droger@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1605544}
* [cr148][Android] MultiWindowUtils changes
- isOpenInOtherWindowSupported removed;
- isLinkNavigationToNewWindowSupported added;
- isLinkNavigationToIncognitoWindowSupported added.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/8ebbccb8137c4b44999c92edfb971e821d9365ba
commit 8ebbccb8137c4b44999c92edfb971e821d9365ba
Author: Aishwarya Rajesh <aishwaryarj@google.com>
Date: Mon Mar 30 11:44:27 2026 -0700
Update conditions for "Move to other window" / "Move to new window"
visibility on context menus for link navigation
The CL creates / updates utility methods in MultiWindowUtils to
determine when these options are shown on a link context menu per latest
recommendations:
- Open in new window
- Open in Incognito window
- Open in other window
The updates in this CL ensure that either "Open in new window" or "Open
in other window" (not both) are visible on the menu. Both options will
invoke the same codepath currently, this will be updated in fast-follow
CLs.
Bug: 475571336
Change-Id: I33a597703e634a7d5cd2d6b66c4c2ca9254374ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7680970
Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Sirisha Kavuluru <skavuluru@google.com>
Commit-Queue: Aishwarya Rajesh <aishwaryarj@google.com>
Reviewed-by: Shu Yang <shuyng@google.com>
Cr-Commit-Position: refs/heads/main@{#1607263}
* [cr148][Android] DropdownCommonProperties removed
SuggestionCommonProperties is used instead
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/fdf1ac3a145796f9cb1e3c8a72a639506d18a6e0
commit fdf1ac3a145796f9cb1e3c8a72a639506d18a6e0
Author: Charles Cai <charlesyc@google.com>
Date: Mon Mar 30 17:42:35 2026 -0700
Refactor Omnibox suggestion properties into a single common class
This CL merges `DropdownCommonProperties` into
`SuggestionCommonProperties`. This unifies the property definitions for
Omnibox suggestions into a single location to simplify property model
management. This is a pure data-layer refactoring that prepares the
architecture for migrating UI elements like headers and group separators
to ItemDecorations.
Bug: 491220357
Change-Id: Ie531dc38e9e53b5829060ae1a7f49c014061f409
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7708772
Commit-Queue: Charles Cai <charlesyc@google.com>
Reviewed-by: Tomasz Wiszkowski <ender@google.com>
Reviewed-by: Sky Malice <skym@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607509}
* [cr148][Android] Fix missing androidx_activity_activity_java dep in androidx_fragment_fragment
Upstream androidx roll removed `androidx_activity_activity_java` from
`androidx_fragment_fragment` deps. This broke compilation because
`Fragment.registerForActivityResult` references
`androidx.activity.result.contract.ActivityResultContract` from that lib:
obj/.../androidx_fragment_fragment_java.ijar.jar:
error: Cannot attach type annotations to Fragment.registerForActivityResult:
class file for androidx.activity.result.contract.ActivityResultContract not found
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/ada9ea879eecaba01f2f1ee9c3e463d3ad743ae7
commit ada9ea879eecaba01f2f1ee9c3e463d3ad743ae7
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Tue Mar 31 01:34:26 2026 -0700
Roll androidx from gC_MaDqHwyg6cLUuq... to WDVd3JIX6yvavWuXd...
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/androidx-chromium
Please CC clank-build@google.com,clank-library-failures@google.com,wnwen@google.com on the revert to ensure that a human
is aware of the problem.
To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Cq-Include-Trybots: luci.chrome.try:android-internal-binary-size;luci.chrome.try:android-internal-rel;luci.chrome.try:test-emulator
Tbr: clank-library-failures@google.com
Change-Id: I4e9302dd90c5b5eaabf19cb7a31f19120354b74f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7713047
Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1607712}
* [cr148][Android] Chromium refactored NewTabPageCoordinator
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/f85df3955cb3bcc7d90cf0af71458e5cad9d45cc
1. NewTabPage.initializeMainView renamed to
initializeFeedSurfaceProvider
2. Some code from NewTabPage.initializeMainView
was moved to c-tor
commit f85df3955cb3bcc7d90cf0af71458e5cad9d45cc
Author: Xi Han <hanxi@google.com>
Date: Mon Mar 30 09:06:59 2026 -0700
[NtpRefactor] Polish NewTabPageCoordinator.
1. Move several parameters passed in NewTabPageCoordinator#initialize()
to the constructor. This allows to set multiple member variables as
final variables.
2. Add missing @Nullable to member variables and add null check in
code for them. This includes: mSearchBoxCoorinator, mUiConfig etc.
3. Re-arange the sequencings in #destroy(): the last created object is
destroyed first.
Bug: 487641528
Change-Id: I935e3aee111a6fd816a228f004f7b1d9663d03d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7709015
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1607137}
* [cr148][Android] Removed preferences we don't need
BraveMainSettingsFragmentTest#testPreferenceCount caught
2 more prefs we don't want:
- settings_promo_card
- manage_sync
The change below is probably responsible for exposing them
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/1ea4b48ea68982cd81a4a3a6f8bad6e8839789bd
commit 1ea4b48ea68982cd81a4a3a6f8bad6e8839789bd
Author: Josef Raska <josefraska@google.com>
Date: Wed Mar 18 07:41:06 2026 -0700
[HoT][Autofill] - Launch HoT screen in Settings
- Launching an empty screen for now.
- Video from the test: https://screencast.googleplex.com/cast/NDU3ODE5MTk5MjY4NDU0NHxhNGViM2JiYy1kOQ
- More tests and user action reporting comes in crrev.com/c/7653458
Bug: 482994356
Change-Id: Ib3ae426846faaff85e2fd69da6d04078d7a54b6f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7653140
Reviewed-by: Julia Sobiech <jsobiech@google.com>
Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Abe Boujane <boujane@google.com>
Reviewed-by: Timofey Chudakov <tchudakov@google.com>
Commit-Queue: Josef Raska <josefraska@google.com>
Cr-Commit-Position: refs/heads/main@{#1601279}
* [cr148][Android] Fix divider preference removed by upstream in SiteSettings
Upstream removed the `divider` preference from the screen when
`isSettingsContainmentEnabled()` is true. Our order-adjustment code in
`configureBravePreferences` relied on it being present, causing a null
assert failure.
Drop the divider lookup/ordering entirely and shift
`permission_autorevocation` order directly after the last Brave pref.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/3e7c1090fe6836b828c58f6ce31ef786aebce69a
commit 3e7c1090fe6836b828c58f6ce31ef786aebce69a
Author: Gazal <agazal@google.com>
Date: Tue Sep 30 14:10:19 2025 -0700
[Settings containment] Remove unwanted dividers in Site Settings and All Sites pages
Before: https://screenshot.googleplex.com/9nQ28EheaL6E5yR.png
After: https://screenshot.googleplex.com/87LzVJaFcqxX2DU.png
Bug: 433576895, 439725777
Change-Id: I55cf2f6a88d108d19c9fcc0be199194ee08bbe91
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6998571
Commit-Queue: Wenyu Fu <wenyufu@chromium.org>
Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
Auto-Submit: Gazal Agarwal <agazal@google.com>
Cr-Commit-Position: refs/heads/main@{#1523141}
* [cr148][Android] HubManagerImpl.ctor changed
New arg bottomSheetController
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/b8c4e05efe17b2949004e620b9b81c7ec0ce4f71
commit b8c4e05efe17b2949004e620b9b81c7ec0ce4f71
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Wed Apr 1 14:34:42 2026 -0700
[Hub][Archived] Tweak additional margin offsets
For Hub
- If bottom toolbar enabled apply correct bottom sheet offsets.
For Archived Tabs
- Offset the snackbar above the close all button.
Bug: 491514883
Change-Id: Ib985af97cf6001700012894fdd03ebd0705a606a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7717783
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Brandon Wylie <wylieb@google.com>
Cr-Commit-Position: refs/heads/main@{#1608780}
* [cr148][Android] Adjusted tabSupplier at HubManagerImpl.ctor
Now it is NullableObservableSupplier, missed old change
Chromium change:
https://source.chromium.org/chromium/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}
* [cr148] `SetInitialSyncFeatureSetupComplete` dropped unused arg
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/448b9a0247edbe13101ad734f58b0e9792d6064b
commit 448b9a0247edbe13101ad734f58b0e9792d6064b
Author: Tanmoy Mollik <triploblastic@google.com>
Date: Thu Apr 2 05:25:50 2026 -0700
Remove unused method param in SyncUserSettings
Bug: 347710361
Change-Id: Ie08884a8a8d4d37d1f6e8b91f2200f1d4d6bf948
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7715580
Commit-Queue: Tanmoy Mollik <triploblastic@google.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609128}
* [cr148] `chrome::OpenEmptyWindow` returns `BrowserWindowInterface`
The test affected by this change has been fixed, however the use of this
function in live code is set for migration now.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/4357394afdebacdc21992fdd0b3d0827e2bd7d25
commit 4357394afdebacdc21992fdd0b3d0827e2bd7d25
Author: Kun Wang <kunwang@microsoft.com>
Date: Wed Apr 1 17:32:01 2026 -0700
[bedrock] Migrate Browser parameters to BrowserWindowInterface Part 3
Completes the migration of chrome/browser/ui/browser_commands.h away
from Browser* dependencies, and fixes all downstream callers broken by
the return type changes to OpenEmptyWindow and OpenInChrome
Bug: 494376650
Change-Id: I1130050cbee7ff6840bda56cd85ef7378dd65a7d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7711597
Commit-Queue: Kun Wang <kunwang@microsoft.com>
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1608892}
* [cr148] Adding stub for `kWalletPrivatePassHelpCenterURL`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a83c4e81ade18e4632a0b2d950990d637ea72d9d
commit a83c4e81ade18e4632a0b2d950990d637ea72d9d
Author: Florian Leimgruber <fleimgruber@google.com>
Date: Thu Apr 2 08:52:02 2026 -0700
Link to private passes help center article on import on desktop
Currently, the import bubbles link to the passes overview page for
private and public passes. This CL redirects to the help center article
for private passes instead.
Demo: https://screencast.googleplex.com/cast/NTkwOTA4NTU4ODI5MTU4NHxiODc4MDM4Mi1lMQ
Bug: 477845712
Change-Id: I40239e956d20fa5845da691f488ac485f029658e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7726781
Reviewed-by: Bruno Braga <brunobraga@google.com>
Commit-Queue: Florian Leimgruber <fleimgruber@google.com>
Cr-Commit-Position: refs/heads/main@{#1609252}
* [cr148] `WebString::FromUTF16` => `WebString::FromUtf16`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/cf3132f122aa53b6a36113feaee0f1c35109c6f4
commit cf3132f122aa53b6a36113feaee0f1c35109c6f4
Author: Kent Tamura <tkent@chromium.org>
Date: Thu Apr 2 02:00:25 2026 -0700
Rename blink::WebString::FromUTF16() to FromUtf16()
To follow a naming rule of Google C++ style guide.
This CL has no behavior changes.
Bug: 492927412
Change-Id: I29597f96183c0dfc26f883ade0e9491153d78e9a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7723958
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Owners-Override: Kent Tamura <tkent@chromium.org>
Auto-Submit: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609039}
* [cr148] Delete `IsFencedStorageReadAllowed` stub
This function has been dropped from the parent class.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/45930312b5e9c35bfc5334616153cc7c4a2e10dc
commit 45930312b5e9c35bfc5334616153cc7c4a2e10dc
Author: Shivani Sharma <shivanisha@chromium.org>
Date: Thu Apr 2 08:23:29 2026 -0700
[fenced frames] Remove sharedStorage.get() in fenced frames
This is the 1st CL in a series that removes fenced storage read(FSR)
code. This CL does the following:
- removes sharedStorage.get() from a FF
- removes the related permission policy
- removes the related attestation category and checks
Follow up CLs will remove disableUntrustedNetwork and fence.notifyEvent
APIs introduced for FSR.
Fenced Storage Read's "do not launch" status announcement:
https://privacysandbox.google.com/overview/status
sharedStorage.get() in FFs is gated behind a default disabled feature
flag and it was never enabled, so this CL does not impact any launched behavior.
flag: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/common/features.cc;drc=f79a5eea7a342c492253d84aa68d44513fa84ef4;l=750
gate:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/shared_storage/shared_storage.cc;drc=f79a5eea7a342c492253d84aa68d44513fa84ef4;l=765
checked the changes in this CL against the following original CLs:
- https://chromium-review.googlesource.com/c/chromium/src/+/5966637
- https://chromium-review.googlesource.com/c/chromium/src/+/5279221
- https://chromium-review.googlesource.com/c/chromium/src/+/5920994
Change-Id: Iedcd065280b56ed86dbc4317e3221cbc00da1e15
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7709973
Commit-Queue: Shivani Sharma <shivanisha@chromium.org>
Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Fiona Macintosh <fmacintosh@google.com>
Reviewed-by: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Mike Taylor <miketaylr@chromium.org>
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Reviewed-by: Yao Xiao <yaoxia@chromium.org>
Reviewed-by: Ian Clelland <iclelland@chromium.org>
Reviewed-by: Andrew Verge <averge@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609227}
* [cr148][Android] Moved profile_resetter_test_base under (not is_android)
* [cr148][Tree Tabs] Fix crash in GetUnpinnedTabsTotalHeight when pinning a split
Problem:
- TreeTabsBrowserTest.PinTab_PinnedCollectionAlreadyHasSplit crashed with
CHECK(first_slot_view && last_slot_view) in GetUnpinnedTabsTotalHeight().
Root cause:
- When pinning a split tab collection, MoveTabsRecursive fires
TabModel::UpdateProperties() for all tabs in the split at once, eagerly
setting data().pinned = true for both tabs via the TabDataObserver chain.
- MoveTabsWithNotifications then sends OnTabPinnedStateChanged one tab at a
time, each updating layout_helper_ via SetTabPinned.
- During the first tab's notification, layout_helper_->GetPinnedTabCount()
still reflects n-1 pinned tabs (not all), so the early-return guard does not
fire. But FindVisibleUnpinnedSlotViews() skips both split tabs because both
already have data().pinned == true, returning (null, null) and triggering
the CHECK.
Fix:
- Replace the CHECK with a null guard that returns 0, matching the existing
pattern in GetUnpinnedTabsTotalSize() (the horizontal counterpart). When no
visible unpinned slot views are found, the total height is 0.
Note: AI tooling was used to generate part or all of this commit; requires
thorough review.
* [cr148] Fix dangling pointer in `CrxUpdateService` callbacks
Recent upstream change to `ScopedObservation` default `RawPtrTraits` exposed a
latent dangling pointer in `CrxUpdateService` where callbacks used
`base::Unretained(this)`. Async install/update callbacks could outlive the
service during shutdown, triggering dangling pointer checks. Replace with
`WeakPtr` bindings to safely drop callbacks after destruction.
Chromium changes:
https://source.chromium.org/chromium/chromium/src/+/95eade2523f5c839c531717a7a0ff5eccbced8d2
commit 95eade2523f5c839c531717a7a0ff5eccbced8d2
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Thu Apr 2 09:20:00 2026 -0700
[base] Change default value of RawPtrTraits of ScopedObservation<...>
After all dangling ScopedObservation<...> have been identified, it is
possible to change the default value of RawPtrTraits to kEmpty (i.e.
not dangling).
Bug: 493572976
Change-Id: I18be9cd98e88d82a75c84a87cdd58440c71807b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7720939
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609274}
* [cr148] Fixes a crash in SearchboxOmniboxClientNavigationTest.
The test crashes because in our chromium_src override of
searchbox_omnibox_client.cc we call
TemplateURLService::GetTemplateURLForKeyword with an empty keyword.
Need to guard against that.
* [cr148] Fixes dangling pointer crashes in browser tests.
Memory was released on:
Task trace:
brave_browser_tests!component_updater::CrxUpdateService::~CrxUpdateService [0x7ff6b1eacd13+23] (src\components\component_updater\component_updater_service.cc:137)
brave_browser_tests!BrowserProcessImpl::~BrowserProcessImpl [0x7ff6ad3e5c80+380] (src\chrome\browser\browser_process_impl.cc:566)
Dangling reference from:
brave_browser_tests!brave_wallet::WalletDataFilesInstaller::SetDelegate [0x7ff6ae2790b6+76] (src\brave\components\brave_wallet\browser\wallet_data_files_installer.cc:174)
brave_browser_tests!BraveBrowserProcessImpl::StartBraveServices [0x7ff6ad3802e9+f9] (src\brave\browser\brave_browser_process_impl.cc:300)
Renames WalletDataFilesInstaller::ResetForTesting to Reset and adds a
call to it in BraveBrowserProcessImpl::StartTearDown.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/95eade2523f5c839c531717a7a0ff5eccbced8d2
commit 95eade2523f5c839c531717a7a0ff5eccbced8d2
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Thu Apr 2 09:20:00 2026 -0700
[base] Change default value of RawPtrTraits of ScopedObservation<...>
After all dangling ScopedObservation<...> have been identified, it is
possible to change the default value of RawPtrTraits to kEmpty (i.e.
not dangling).
Bug: 493572976
Change-Id: I18be9cd98e88d82a75c84a87cdd58440c71807b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7720939
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609274}
* [cr148] Fix `TorProfileManager` shutdown ordering to avoid `ScopedObservation` dangling pointer
This change introduces an explicit `Shutdown()` method on `TorProfileManager`
and invokes it during `StartTearDown()` to ensure its
`BrowserCollectionObserver` is destroyed before dependent services are torn
down. Without this, the observer could outlive objects it observes, leading to a
dangling pointer during cleanup. Calling `Shutdown()` at this point guarantees
safe observer teardown and prevents the crash.
This fixed many browser tests that were dying like this:
[49620:48832:0404/110059.954:ERROR:base\allocator\partition_alloc_support.cc:682] A freed allocation is still referenced by a dangling pointer at exit, or at test end. Leaked raw_ptr/raw_ref could cause PartitionAlloc's quarantine memory bloat.
Memory was released on:
Task trace:
No active task.
brave_browser_tests!base::debug::CollectStackTrace [0x7ff7b1788375+15] (C:\work\cr148\brave-browser\src\base\debug\stack_trace_win.cc:383)
brave_browser_tests!base::debug::StackTrace::StackTrace [0x7ff7b179f82c+10c] (C:\work\cr148\brave-browser\src\base\debug\stack_trace.cc:281)
brave_browser_tests!base::allocator::`anonymous namespace'::DanglingRawPtrDetected [0x7ff7b178d35e+3ee] (C:\work\cr148\brave-browser\src\base\allocator\partition_alloc_support.cc:437)
brave_browser_tests!allocator_shim::internal::PartitionAllocFunctionsInternal<16,2>::FreeWithSize [0x7ff7b1983c4a+445a] (C:\work\cr148\brave-browser\src\base\allocator\partition_allocator\src\partition_alloc\shim\allocator_shim_default_dispatch_to_partition_alloc.cc:540)
brave_browser_tests!BraveBrowserProcessImpl::PostDestroyThreads [0x7ff7b01c001e+e] (C:\work\cr148\brave-browser\src\brave\browser\brave_browser_process_impl.cc:258)
brave_browser_tests!ChromeBrowserMainParts_ChromiumImpl::PostDestroyThreads [0x7ff7b01d3dff+6f] (C:\work\cr148\brave-browser\src\chrome\browser\chrome_browser_main.cc:2237)
brave_browser_tests!content::BrowserMainLoop::ShutdownThreadsAndCleanUp [0x7ff7ab8427d7+7b7] (C:\work\cr148\brave-browser\src\content\browser\browser_main_loop.cc:1284)
brave_browser_tests!content::BrowserMainRunnerImpl::Shutdown [0x7ff7ab844a96+106] (C:\work\cr148\brave-browser\src\content\browser\browser_main_runner_impl.cc:177)
brave_browser_tests!content::BrowserMain [0x7ff7ab83d74e+12e] (C:\work\cr148\brave-browser\src\content\browser\browser_main.cc:44)
brave_browser_tests!content::RunBrowserProcessMain [0x7ff7ae69c245+145] (C:\work\cr148\brave-browser\src\content\app\content_main_runner_impl.cc:696)
brave_browser_tests!content::ContentMainRunnerImpl::RunBrowser [0x7ff7ae69efe4+674] (C:\work\cr148\brave-browser\src\content\app\content_main_runner_impl.cc:1320)
brave_browser_tests!content::ContentMainRunnerImpl::Run [0x7ff7ae69e904+804] (C:\work\cr148\brave-browser\src\content\app\content_main_runner_impl.cc:1150)
brave_browser_tests!content::RunContentProcess [0x7ff7ae698314+544] (C:\work\cr148\brave-browser\src\content\app\content_main.cc:358)
brave_browser_tests!content::ContentMain [0x7ff7ae6984d3+43] (C:\work\cr148\brave-browser\src\content\app\content_main.cc:371)
brave_browser_tests!content::BrowserTestBase::SetUp [0x7ff7bb82dd79+1309] (C:\work\cr148\brave-browser\src\content\public\test\browser_test_base.cc:615)
brave_browser_tests!InProcessBrowserTest::SetUp [0x7ff7b0ab6276+1d6] (C:\work\cr148\brave-browser\src\chrome\test\base\in_process_browser_test.cc:558)
brave_browser_tests!testing::Test::Run [0x7ff7af921d7e+de] (C:\work\cr148\brave-browser\src\third_party\googletest\src\googletest\src\gtest.cc:2744)
brave_browser_tests!testing::TestInfo::Run [0x7ff7af92324f+23f] (C:\work\cr148\brave-browser\src\third_party\googletest\src\googletest\src\gtest.cc:2895)
brave_browser_tests!testing::TestSuite::Run [0x7ff7af9241d7+527] (C:\work\cr148\brave-browser\src\third_party\googletest\src\googletest\src\gtest.cc:3072)
brave_browser_tests!testing::internal::UnitTestImpl::RunAllTests [0x7ff7af934007+847] (C:\work\cr148\brave-browser\src\third_party\googletest\src\googletest\src\gtest.cc:6063)
brave_browser_tests!testing::UnitTest::Run [0x7ff7af93373f+15f] (C:\work\cr148\brave-browser\src\third_party\googletest\src\googletest\src\gtest.cc:5602)
brave_browser_tests!base::TestSuite::Run [0x7ff7bb855f6d+dd] (C:\work\cr148\brave-browser\src\base\test\test_suite.cc:440)
brave_browser_tests!ChromeTestSuiteRunner::RunTestSuite [0x7ff7bc719bee+ae] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:106)
brave_browser_tests!ChromeTestLauncherDelegate::RunTestSuite [0x7ff7bc719f4d+cd] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:155)
brave_browser_tests!content::LaunchTestsInternal [0x7ff7bb82a7d6+4e6] (C:\work\cr148\brave-browser\src\content\public\test\test_launcher.cc:423)
brave_browser_tests!content::LaunchTests [0x7ff7bb82ae73+133] (C:\work\cr148\brave-browser\src\content\public\test\test_launcher.cc:518)
brave_browser_tests!LaunchChromeTests [0x7ff7bc71a5a6+116] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:360)
brave_browser_tests!main [0x7ff7bc71afca+ea] (C:\work\cr148\brave-browser\src\brave\test\base\browser_tests_main.cc:66)
brave_browser_tests!__scrt_common_main_seh [0x7ff7bce26da8+10c] (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
KERNEL32!BaseThreadInitThunk [0x7ffc3347e8d7+17]
ntdll!RtlUserThreadStart [0x7ffc356ac48c+2c]
[49620:48832:0404/110104.699:ERROR:base\allocator\partition_alloc_support.cc:699] Dangling reference from:
[49620:48832:0404/110104.699:ERROR:base\allocator\partition_alloc_support.cc:700] brave_browser_tests!partition_alloc::internal::base::debug::CollectStackTrace [0x7ff7b1910942+12] (C:\work\cr148\brave-browser\src\base\allocator\partition_allocator\src\partition_alloc\partition_alloc_base\debug\stack_trace_win.cc:103)
brave_browser_tests!base::internal::InstanceTracer::TraceImpl [0x7ff7b19100ae+1fe] (C:\work\cr148\brave-browser\src\base\allocator\partition_allocator\src\partition_alloc\pointers\instance_tracer.cc:66)
brave_browser_tests!base::ScopedObservation<brave_rewards::RewardsService,brave_rewards::RewardsServiceObserver,0>::Observe [0x7ff7a6070a98+128] (C:\work\cr148\brave-browser\src\base\scoped_observation.h:117)
brave_browser_tests!base::NoDestructor<TorProfileManager>::NoDestructor<> [0x7ff7af7f2e46+66] (C:\work\cr148\brave-browser\src\base\no_destructor.h:99)
brave_browser_tests!TorProfileManager::GetInstance [0x7ff7af7f2dd2+52] (C:\work\cr148\brave-browser\src\brave\browser\tor\tor_profile_manager.cc:82)
brave_browser_tests!extensions::BraveExtensionManagement::OnTorDisabledChanged [0x7ff7a6281e06+16] (C:\work\cr148\brave-browser\src\brave\browser\extensions\brave_extension_management.cc:63)
brave_browser_tests!base::RepeatingCallback<void ()>::Run [0x7ff7a62b063d+8d] (C:\work\cr148\brave-browser\src\base\functional\callback.h:363)
brave_browser_tests!base::internal::Invoker<base::internal::FunctorTraits<const `lambda at ..\..\base\functional\callback_helpers.h:119:25' &,const base::RepeatingCallback<void ()> &>,base::internal::BindState<0,0,0,`lambda at ..\..\base\functional\callback_helpers.h:119:25' [0x7ff7ac3554d9+39] (C:\work\cr148\brave-browser\src\base\functional\bind_internal.h:989)
brave_browser_tests!base::RepeatingCallback<void (const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char> > &)>::Run [0x7ff7a659eb32+a2] (C:\work\cr148\brave-browser\src\base\functional\callback.h:347)
brave_browser_tests!PrefChangeRegistrar::OnPreferenceChanged [0x7ff7b0ca4ac1+81] (C:\work\cr148\brave-browser\src\components\prefs\pref_change_registrar.cc:107)
brave_browser_tests!PrefNotifierImpl::FireObservers [0x7ff7b0ca0717+6b7] (C:\work\cr148\brave-browser\src\components\prefs\pref_notifier_impl.cc:108)
brave_browser_tests!PrefNotifierImpl::OnPreferenceChanged [0x7ff7b0c9fea1+91] (C:\work\cr148\brave-browser\src\components\prefs\pref_notifier_impl.cc:77)
brave_browser_tests!PrefValueStore::NotifyPrefChanged [0x7ff7b0c97228+118] (C:\work\cr148\brave-browser\src\components\prefs\pref_value_store.cc:140)
brave_browser_tests!PrefValueStore::PrefStoreKeeper::OnPrefValueChanged [0x7ff7b0c95452+d2] (C:\work\cr148\brave-browser\src\components\prefs\pref_value_store.cc:42)
brave_browser_tests!base::ObserverList<PrefStore::Observer,1,1,base::internal::CheckedObserverAdapter>::NotifyAllowReentrancy<void (PrefStore::Observer::*)(std::__Cr::basic_string_view<char,std::__Cr::char_traits<char> >),std::__Cr::basic_string_view<char,std::__Cr::char_tra [0x7ff7b0c8f35c+26c] (C:\work\cr148\brave-browser\src\base\observer_list.h:449)
brave_browser_tests!JsonPrefStore::SetValue [0x7ff7b0ca5e39+139] (C:\work\cr148\brave-browser\src\components\prefs\json_pref_store.cc:235)
brave_browser_tests!PrefService::SetUserPrefValue [0x7ff7b0c9a853+f3] (C:\work\cr148\brave-browser\src\components\prefs\pref_service.cc:525)
brave_browser_tests!PrefService::SetBoolean [0x7ff7b0c9a9e4+44] (C:\work\cr148\brave-browser\src\components\prefs\pref_service.cc:374)
brave_browser_tests!TorProfileServiceFactory::SetTorDisabled [0x7ff7af7f3fa4+54] (C:\work\cr148\brave-browser\src\brave\browser\tor\tor_profile_service_factory.cc:53)
brave_browser_tests!BraveLocalStateBrowserTest_TorEnableDisable_Test::RunTestOnMainThread [0x7ff7a67252dc+2c] (C:\work\cr148\brave-browser\src\brave\browser\tor\test\brave_local_state_browsertest.cc:27)
brave_browser_tests!content::BrowserTestBase::ProxyRunTestOnMainThreadLoop [0x7ff7bb82efaf+62f] (C:\work\cr148\brave-browser\src\content\public\test\browser_test_base.cc:1019)
brave_browser_tests!base::OnceCallback<void ()>::Run [0x7ff7a60b677d+8d] (C:\work\cr148\brave-browser\src\base\functional\callback.h:155)
brave_browser_tests!content::BrowserMainRunnerImpl::Run [0x7ff7ab844950+a0] (C:\work\cr148\brave-browser\src\content\browser\browser_main_runner_impl.cc:152)
brave_browser_tests!content::BrowserMain [0x7ff7ab83d6dc+bc] (C:\work\cr148\brave-browser\src\content\browser\browser_main.cc:32)
brave_browser_tests!content::RunBrowserProcessMain [0x7ff7ae69c245+145] (C:\work\cr148\brave-browser\src\content\app\content_main_runner_impl.cc:696)
brave_browser_tests!content::ContentMainRunnerImpl::RunBrowser [0x7ff7ae69efe4+674] (C:\work\cr148\brave-browser\src\content\app\content_main_runner_impl.cc:1320)
brave_browser_tests!content::ContentMainRunnerImpl::Run [0x7ff7ae69e904+804] (C:\work\cr148\brave-browser\src\content\app\content_main_runner_impl.cc:1150)
brave_browser_tests!content::RunContentProcess [0x7ff7ae698314+544] (C:\work\cr148\brave-browser\src\content\app\content_main.cc:358)
brave_browser_tests!content::ContentMain [0x7ff7ae6984d3+43] (C:\work\cr148\brave-browser\src\content\app\content_main.cc:371)
brave_browser_tests!content::BrowserTestBase::SetUp [0x7ff7bb82dd79+1309] (C:\work\cr148\brave-browser\src\content\public\test\browser_test_base.cc:615)
brave_browser_tests!InProcessBrowserTest::SetUp [0x7ff7b0ab6276+1d6] (C:\work\cr148\brave-browser\src\chrome\test\base\in_process_browser_test.cc:558)
brave_browser_tests!testing::Test::Run [0x7ff7af921d7e+de] (C:\work\cr148\brave-browser\src\third_party\googletest\src\googletest\src\gtest.cc:2744)
[49620:48832:0404/110104.729:FATAL:base\allocator\partition_alloc_support.cc:714] Check failed: !errors.
brave_browser_tests!base::debug::CollectStackTrace [0x7ff7b1788375+15] (C:\work\cr148\brave-browser\src\base\debug\stack_trace_win.cc:383)
brave_browser_tests!base::debug::StackTrace::StackTrace [0x7ff7b179f82c+10c] (C:\work\cr148\brave-browser\src\base\debug\stack_trace.cc:281)
brave_browser_tests!logging::LogMessage::Flush [0x7ff7b18e09e7+e7] (C:\work\cr148\brave-browser\src\base\logging.cc:709)
brave_browser_tests!logging::LogMessage::~LogMessage [0x7ff7b18e0889+19] (C:\work\cr148\brave-browser\src\base\logging.cc:698)
brave_browser_tests!logging::`anonymous namespace'::CheckLogMessage::~CheckLogMessage [0x7ff7b1906b4e+5e] (C:\work\cr148\brave-browser\src\base\check.cc:195)
brave_browser_tests!logging::NotReachedNoreturnError::~NotReachedNoreturnError [0x7ff7b190688b+b] (C:\work\cr148\brave-browser\src\base\check.cc:363)
brave_browser_tests!base::allocator::`anonymous namespace'::CheckDanglingRawPtrBufferEmpty [0x7ff7b178cf5d+7bd] (C:\work\cr148\brave-browser\src\base\allocator\partition_alloc_support.cc:714)
brave_browser_tests!base::OnceCallback<void ()>::Run [0x7ff7a60b677d+8d] (C:\work\cr148\brave-browser\src\base\functional\callback.h:155)
brave_browser_tests!base::AtExitManager::ProcessCallbacksNow [0x7ff7b190ab51+1a1] (C:\work\cr148\brave-browser\src\base\at_exit.cc:93)
brave_browser_tests!base::AtExitManager::~AtExitManager [0x7ff7b190a866+46] (C:\work\cr148\brave-browser\src\base\at_exit.cc:47)
brave_browser_tests!base::TestSuite::~TestSuite [0x7ff7bb8561b2+212] (C:\work\cr148\brave-browser\src\base\test\test_suite.cc:392)
brave_browser_tests!ChromeTestSuiteRunner::RunTestSuite [0x7ff7bc719c00+c0] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:107)
brave_browser_tests!ChromeTestLauncherDelegate::RunTestSuite [0x7ff7bc719f4d+cd] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:155)
brave_browser_tests!content::LaunchTestsInternal [0x7ff7bb82a7d6+4e6] (C:\work\cr148\brave-browser\src\content\public\test\test_launcher.cc:423)
brave_browser_tests!content::LaunchTests [0x7ff7bb82ae73+133] (C:\work\cr148\brave-browser\src\content\public\test\test_launcher.cc:518)
brave_browser_tests!LaunchChromeTests [0x7ff7bc71a5a6+116] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:360)
brave_browser_tests!main [0x7ff7bc71afca+ea] (C:\work\cr148\brave-browser\src\brave\test\base\browser_tests_main.cc:66)
brave_browser_tests!__scrt_common_main_seh [0x7ff7bce26da8+10c] (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
KERNEL32!BaseThreadInitThunk [0x7ffc3347e8d7+17]
ntdll!RtlUserThreadStart [0x7ffc356ac48c+2c]
Crash keys:
"shutdown-type" = "close"
"gpu-generation-intel" = "0"
"gpu-vsver" = "3.00"
"gpu-psver" = "3.00"
"gpu-driver" = "5.0.0"
"gpu-rev" = "0"
"gpu-subid" = "0x00000000"
"gpu_count" = "0"
"gpu-devid" = "0xffff"
"gpu-venid" = "0xffff"
"num-extensions" = "0"
"switch-39" = "about:blank"
"chrome-trace-id" = "2983336048609793865"
"reentry_guard_tls_slot" = "unused"
"variations" = "b357b792-3f4a17df,4b935545-3d47f4f4,9a38bae3-3d47f4f4,41ad04e1-e4065f40,2d1e43a3-3f4a17df,370ace14-3f4a17df,386dc267-3d47f4f4,d69d967d-3695c92e,3c8f75a1-8ff88d47,a4406b35-1657e2d6,408da146-1657e2d6,"
"num-experiments" = "11"
"LocaleDataPakExists-found_attrs" = "32"
"LocaleDataPakExists-found_path" = "C:\work\cr148\brave-browser\src\out\Static\locales\en-US.pak"
"switch-38" = "--component-updater=url-source=https://go-updater.brave.com/exte"
"switch-37" = "--variations-insecure-server-url=https://variations.brave.com/se"
"switch-36" = "--variations-server-url=https://variations.brave.com/seed"
"switch-35" = "--lso-url=https://no-thanks.invalid"
"switch-34" = "--origin-trial-public-key=bYUKPJoPnCxeNvu72j4EmPuK7tr1PAC7SHh8ld"
"switch-33" = "--enable-distillability-service"
"switch-32" = "--enable-dom-distiller"
"switch-31" = "--disable-domain-reliability"
"switch-30" = "--disable-platform-accessibility-integration"
"switch-29" = "--disable-gpu-process-for-dx12-info-collection"
"switch-28" = "--force-color-profile=srgb"
"switch-27" = "--override-use-software-gl-for-tests"
"switch-26" = "--disable-gl-drawing-for-tests"
"switch-25" = "--disable-ignore-duplicate-navs-for-testing"
"switch-24" = "--disable-backgrounding-occluded-windows"
"switch-23" = "--disable-d3d11-warp"
"switch-22" = "--log-gpu-control-list-decisions"
"switch-21" = "--dom-automation"
"switch-20" = "--log-missing-unload-ack"
"switch-19" = "--ipc-connection-timeout=30"
"switch-18" = "--browser-test"
"switch-17" = "--use-fake-device-for-media-stream"
"switch-16" = "--ip-address-space-overrides=127.0.0.1:0=public,[::1]:0=public"
"switch-15" = "--disable-updater-scheduler"
"switch-14" = "--disable-zero-browsers-open-for-tests"
"switch-13" = "--test-type=browser"
"switch-12" = "--disable-component-update"
"switch-11" = "--wm-window-animations-disabled"
"switch-10" = "--disable-default-apps"
"switch-9" = "--no-first-run"
"switch-8" = "--disable-auto-reload"
"switch-7" = "--user-data-dir=C:\Users\emerick\AppData\Local\Temp\scoped_dir58"
"switch-6" = "--test-launcher-retries-left=0"
"switch-5" = "--test-launcher-output=C:\Users\emerick\AppData\Local\Temp\scope"
"switch-4" = "--single-process-tests"
"switch-3" = "--gtest_filter=BraveLocalStateBrowserTest.TorEnableDisable"
"switch-2" = "--gtest_also_run_disabled_tests"
"switch-1" = "--disable-gpu-process-for-dx12-info-collection"
"num-switches" = "44"
"commandline-disabled-feature-5" = "TestFeatureForBrowserTest2"
"commandline-disabled-feature-4" = "SessionRestoreInfobar"
"commandline-disabled-feature-3" = "RestartNetworkServiceUnsandboxedForFailedLaunch"
"commandline-disabled-feature-2" = "PreconnectToSearch"
"commandline-disabled-feature-1" = "ExtensionDisableUnsupportedDeveloper"
"commandline-enabled-feature-2" = "TestFeatureForBrowserTest1"
"commandline-enabled-feature-1" = "*TestBlinkFeatureDefault"
Received fatal exception EXCEPTION_BREAKPOINT
brave_browser_tests!logging::LogMessage::HandleFatal [0x7ff7b18e13ea+2ca] (C:\work\cr148\brave-browser\src\base\logging.cc:1047)
brave_browser_tests!logging::LogMessage::Flush [0x7ff7b18e0f17+617] (C:\work\cr148\brave-browser\src\base\logging.cc:926)
brave_browser_tests!logging::LogMessage::~LogMessage [0x7ff7b18e0889+19] (C:\work\cr148\brave-browser\src\base\logging.cc:698)
brave_browser_tests!logging::`anonymous namespace'::CheckLogMessage::~CheckLogMessage [0x7ff7b1906b4e+5e] (C:\work\cr148\brave-browser\src\base\check.cc:195)
brave_browser_tests!logging::NotReachedNoreturnError::~NotReachedNoreturnError [0x7ff7b190688b+b] (C:\work\cr148\brave-browser\src\base\check.cc:363)
brave_browser_tests!base::allocator::`anonymous namespace'::CheckDanglingRawPtrBufferEmpty [0x7ff7b178cf5d+7bd] (C:\work\cr148\brave-browser\src\base\allocator\partition_alloc_support.cc:714)
brave_browser_tests!base::OnceCallback<void ()>::Run [0x7ff7a60b677d+8d] (C:\work\cr148\brave-browser\src\base\functional\callback.h:155)
brave_browser_tests!base::AtExitManager::ProcessCallbacksNow [0x7ff7b190ab51+1a1] (C:\work\cr148\brave-browser\src\base\at_exit.cc:93)
brave_browser_tests!base::AtExitManager::~AtExitManager [0x7ff7b190a866+46] (C:\work\cr148\brave-browser\src\base\at_exit.cc:47)
brave_browser_tests!base::TestSuite::~TestSuite [0x7ff7bb8561b2+212] (C:\work\cr148\brave-browser\src\base\test\test_suite.cc:392)
brave_browser_tests!ChromeTestSuiteRunner::RunTestSuite [0x7ff7bc719c00+c0] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:107)
brave_browser_tests!ChromeTestLauncherDelegate::RunTestSuite [0x7ff7bc719f4d+cd] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:155)
brave_browser_tests!content::LaunchTestsInternal [0x7ff7bb82a7d6+4e6] (C:\work\cr148\brave-browser\src\content\public\test\test_launcher.cc:423)
brave_browser_tests!content::LaunchTests [0x7ff7bb82ae73+133] (C:\work\cr148\brave-browser\src\content\public\test\test_launcher.cc:518)
brave_browser_tests!LaunchChromeTests [0x7ff7bc71a5a6+116] (C:\work\cr148\brave-browser\src\chrome\test\base\chrome_test_launcher.cc:360)
brave_browser_tests!main [0x7ff7bc71afca+ea] (C:\work\cr148\brave-browser\src\brave\test\base\browser_tests_main.cc:66)
brave_browser_tests!__scrt_common_main_seh [0x7ff7bce26da8+10c] (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
KERNEL32!BaseThreadInitThunk [0x7ffc3347e8d7+17]
ntdll!RtlUserThreadStart [0x7ffc356ac48c+2c]
[1/1] BraveLocalStateBrowserTest.TorEnableDisable (25089 ms)
1 test failed on exit:
BraveLocalStateBrowserTest.TorEnableDisable (..\..\brave\browser\tor\test\brave_local_state_browsertest.cc:25)
Tests took 25 seconds.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/95eade2523f5c839c531717a7a0ff5eccbced8d2
commit 95eade2523f5c839c531717a7a0ff5eccbced8d2
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Thu Apr 2 09:20:00 2026 -0700
[base] Change default value of RawPtrTraits of ScopedObservation<...>
After all dangling ScopedObservation<...> have been identified, it is
possible to change the default value of RawPtrTraits to kEmpty (i.e.
not dangling).
Bug: 493572976
Change-Id: I18be9cd98e88d82a75c84a87cdd58440c71807b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7720939
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Auto-Submit: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609274}
* [cr148] Fixing eslint missing reactive property failures
```
dev/brave-dev/src/out/Component/gen/chrome/browser/resources/tab_search/preprocessed/tab_focus/tab_focus_page.ts
20:8 error Missing class member declaration for Lit reactive property 'topic' @webui-eslint/lit-property-accessor
20:8 error Missing class member declaration for Lit reactive property 'topics_' @webui-eslint/lit-property-accessor
20:8 error Missing class member declaration for Lit reactive property 'undoTopic_' @webui-eslint/lit-property-accessor
20:8 error Missing class member declaration for Lit reactive property 'showFRE_' @webui-eslint/lit-property-accessor
```
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f7063d58fe367f3abda5c3d8260f651d5c1e17a4
commit f7063d58fe367f3abda5c3d8260f651d5c1e17a4
Author: rbpotter <rbpotter@chromium.org>
Date: Thu Apr 2 15:41:36 2026 -0700
WebUI: Make property type mismatch checks more thorough
(1) Check all declared properties for type mismatches with the TS
type by moving the check into lit_property_accessor, which
validates all Lit reactive properties and not only those used in
bindings.
(2) Make the check more detailed by categorizing all TS types into
the 5 options for Lit (Array/Object/Number/String/Boolean) and
ensure that the TS and Lit types are compatible for all cases,
not just booleans or array/objects.
Bug: 490022552
Change-Id: Ibda1011a3c891efeea3699b9c79a343351dd85e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7719027
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609534}
* [cr148] `BookmarksSidePanelCoordinator` now `UnownedUserData`
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/448274dc8e5e5ceb9adee29ec1aad3de96e30eb2
commit 448274dc8e5e5ceb9adee29ec1aad3de96e30eb2
Author: Jeff Yoon <jeffyoon@google.com>
Date: Thu Apr 2 14:36:31 2026 -0700
Migrate BookmarksSidePanelCoordinator to UnownedUserData
This CL migrates BookmarksSidePanelCoordinator from being an owned
subsystem accessible via public getters in BrowserWindowFeatures to
the UnownedUserData pattern.
This decouples its usage from the monolith, allowing call sites to
access it via BookmarksSidePanelCoordinator::From(browser) instead of
going through BrowserWindowFeatures.
To ensure its lifetime is tied to the window, it is retained as a
private member variable in BrowserWindowFeatures.
Bug: 491863835
Change-Id: If051d82e3652de9d6dede2038bf3c25edc7d64b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7722695
Commit-Queue: Jeff Yoon <jeffyoon@google.com>
Reviewed-by: Sophie Chang <sophiechang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609501}
* [cr148] `TabDetails` in `TabSearchPageHandler` deleted
This change just migrates all references to `TabDetails` to use
`TabInterface`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/fa6190d90e0f4b431b1f092a59154dd45a2aeec8
commit fa6190d90e0f4b431b1f092a59154dd45a2aeec8
Author: David Yeung <dayeung@chromium.org>
Date: Fri Apr 3 10:27:57 2026 -0700
[TabSearch] Remove unnecessary tab details
After switching to the TabStrip API, the TabDetails struct is no longer
necessary as there are no indexes.
This CL modifies the call sites to just use GetTabInterface instead of
GetTabDetails. There are no major behavioral changes.
Fixed: 477686464
Change-Id: I0a15a6a0dfd16e83e164403f3b113f7831ec4229
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7709162
Reviewed-by: Robert Liao <robliao@chromium.org>
Commit-Queue: David Yeung <dayeung@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609843}
* [cr148] Mirroring `kInstallDialogFlowLearnMoreURL` url
This is a new URL, that seems to be appropriate to leave in place.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/7dcc54292e0bf5d28f89339453101f2b6224084e
commit 7dcc54292e0bf5d28f89339453101f2b6224084e
Author: Kunjan Vinay Patel <ksukh@google.com>
Date: Fri Apr 3 13:09:22 2026 -0700
[PWA_Install_Dialog] Add "Learn More" button to the install flow dialog
This CL adds a "Learn More" button to the new multi-step web app
installation flow. The button is visible in install dialog view and
install options view for all installation types (simple, diy, detailed).
To reduce the visual noise, the button is hidden once the user advances
to the installation progress step.
Functionally, clicking the button triggers a navigation to the web app
help page in a new tab.
Screencast: http://screencast/cast/NDk1Njc0MDkxNDI0OTcyOHxjMDBmMTU2Ny0xYQ
Bug: 473080700
Change-Id: I28e3f76a19bcc52bd1cf0ed13279065f85fce64d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7722158
Reviewed-by: Adriana Ixba <aixba@chromium.org>
Reviewed-by: Dibyajyoti Pal <dibyapal@chromium.org>
Commit-Queue: Kunjan Vinay Patel <ksukh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609929}
* [cr148] Fix for `SyncSessionDurationsMetricsRecorder` stubs
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a2ebdc2ea47eb842b1c0ddbb8a1d223e9ffd4d9b
commit a2ebdc2ea47eb842b1c0ddbb8a1d223e9ffd4d9b
Author: Ryan Sultanem <rsult@google.com>
Date: Fri Apr 3 03:23:54 2026 -0700
Migrating Session.TotalDurationMax1Day to per-profile tracking.
Update SyncSessionDurationsMetricsRecorder and
HistorySyncSessionDurationsMetricsRecorder to use ProfileMetricsService
for recording Session.TotalDurationMax1Day histograms with the
.Profile variant. This ensures metrics are correctly attribute to the
profile context.
Inject ProfileMetricsService through factories to recorders.
Extend MetricsService to support custom time histograms per profile.
Update histograms.xml to support {ProfileIndex} variants.
Update unit tests to verify both base and per-profile metrics.
Bug: 417921579
Change-Id: I300fb9671a557294339fd413ab7cd71425781860
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7705052
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Commit-Queue: Ryan Sultanem <rsult@google.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609736}
* [cr148] Fix `ParseJSON` to support `PinEntries` arg
Adapt our `ParseJSON` override to upstream's API change that split PKP and HSTS
data into separate structures. Confirmed fix with security folks and verified
that tests on https://github.com/brave/brave-browser/wiki/TLS-Policy continue to
pass.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/8119b584658ad61e21550dcf2762e22be182a4b2
commit 8119b584658ad61e21550dcf2762e22be182a4b2
Author: Matt Mueller <mattm@chromium.org>
Date: Thu Apr 2 13:09:05 2026 -0700
Split static compiled-in PKP and HSTS data into separate data structures
This is the first step towards moving PKP out of TransportSecurityState
and into the cert verifier. It also removes some confusing edge cases
due to interactions between the PKP and HSTS lists in the old
implementation.
Bug: 497882860, 498560798
Change-Id: I2ebc99faea99248d24d2189879c33eb49fb25e3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7714518
Reviewed-by: Carlos IL <carlosil@chromium.org>
Commit-Queue: Matt Mueller <mattm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609455}
* [cr148] Deps fixes
* [cr148] Fix `BraveTabsSearchButtonTest.HideTabSearchButtonInHorizontalTabStripRegionView`
Problem:
- Test crashes with DCHECK in ElementTrackerViews::GetFirstMatchingViewAs
when casting to TabSearchButton
Root cause:
- Upstream commit d3beb65c47dd319439111d3e239686a6ca2e6e7b ("Prepare for
WebUI pinned toolbar actions") added kTabSearchButtonElementId to the
toolbar's PinnedActionToolbarButton. The tab strip's TabSearchButton
also registers the same ID in its own constructor.
- BrowserView::Init() creates ToolbarView (line 952) before
HorizontalTabStripRegionView (line 987), so the toolbar's
PinnedActionToolbarButton is registered first in ElementTrackerViews.
- GetFirstMatchingViewAs<TabSearchButton> finds the toolbar's
PinnedActionToolbarButton first, fails the AsViewClass<TabSearchButton>
cast, and fires DCHECK(result).
Fix:
- Replace GetViewAs<TabSearchButton>(kTabSearchButtonElementId) with a
direct call to HorizontalTabStripRegionView::GetTabSearchButton(), which
returns only the tab strip's button without going through the element
tracker.
Note: AI tooling was used to generate part or all of this commit; requires
thorough review.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/d3beb65c47dd319439111d3e239686a6ca2e6e7b
commit d3beb65c47dd319439111d3e239686a6ca2e6e7b
Author: Paul Jensen <pauljensen@chromium.org>
Date: Tue Mar 17 19:25:11 2026 -0700
Prepare for WebUI pinned toolbar actions
This change does not introduce any functional differences.
This change adds a new abstract virtual interface for UI components
supporting pinned toolbar actions, called PinnedToolbarActions. It also
adds a new WebUIPinnedToolbarActions class that is mostly
NOTIMPLEMENTED() calls. It tests that the browser can start up and
shutdown cleanly using this new class.
The major remaining steps to implementing a WebUI pinned toolbar
actions, which are left for future changes are:
- implement the WebUI component including BrowserControlsService and
ToolbarUIService support
- switch the following views dependencies to work with the new WebUI:
- ToolbarController::PinnedActionsDelegate::GetContainerView()
- This has quite a few downstream users, esp download button.
- ToolbarView::GetCastButton()
- PinnedToolbarActionsController::GetButtonFor()
- ToolbarButtonProvider::GetPinnedToolbarActionsContainer()
- some direct references to
ToolbarView::pinned_toolbar_actions_container_
Note that, at present, WebUIPinnedToolbarActions does not support
ChromeLabs or when HorizontalTabStripComboButton is disabled.
Bug: 474061420
Change-Id: I647396ad43ec96995f62978e0a16c0712470dc89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7639706
Auto-Submit: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Darryl James <dljames@chromium.org>
Reviewed-by: Mickey Burks <mickeyburks@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Commit-Queue: Paul Jensen <pauljensen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1600968}
* [cr148][Android] Removed supportsFindInPage from BaseCustomTabRootUiCoordinator
Chromium change
https://source.chromium.org/chromium/chromium/src/+/2ee27ab283f1578d5f35ac79ee7fcf62d2a951fe
commit 2ee27ab283f1578d5f35ac79ee7fcf62d2a951fe
Author: Henrique Nakashima <hnakashima@chromium.org>
Date: Thu Apr 2 13:17:48 2026 -0700
[Android] Null-annotate RootUiCoordinator (part 11)
Fix 1 NullAway error due to:
- mFindToolbarManager
Clean up the always true supportFindInPage() to simplify nullability.
Down to 48 errors.
Change-Id: Iee0789070cd9904b08f827e481ce9ec3886bdb40
Bug: 485252552
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7722900
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609461}
* [cr148][Android] Changes at FeedActionDelegate.openSuggestionUrl
removed: onVisitComplete
added: surfaceId
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/69824f1f754963700f7b97e6be05a8a9f58a4eb0
commit 69824f1f754963700f7b97e6be05a8a9f58a4eb0
Author: Xi Han <hanxi@google.com>
Date: Fri Apr 3 05:15:55 2026 -0700
[Memory] Refactor NavigationRecorder.
In this CL, we fix the issue that FeedStream can't be released from
memory after NTP navigates. This is due to a NavigationRecorder being
created when a NTP navigates, and it has a callback which keeps a
reference FeedSurfaceRendererBridge to log the duration of users
reading a card. The callback won't be called until a new Tab is
created, i.e. leaving the current Tab, and #onHidden() is called.
This leads to the FeedStream remain in memory after feeds is closed.
In this CL, we add NavigationRecorder in C++ which calls the FeedApi
directly to log the metrics. It no longer has a reference to the
FeedSurfaceRendererBridge, and FeedStream can be released after the
NTP navigates. FeedStream's memory foot print is cleaned up after
leaving NTPs: http://shortn/_3DjIXJjzfY.
This CL also fixes a visiting time logging issue. If the Tab never
becomes foreground (mStartTimeMs == 0), we will log 0 for visit
duration.
Bug: 487641528, 493844946
Change-Id: I34af7d2308d6ed070dff8ac52d11f17ae0977449
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7728181
Commit-Queue: Xi Han <hanxi@chromium.org>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Dan Harrington <harringtond@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1609755}
* Revert "[Android] Temporarily disable kPartitionAllocFreeWithSize feature (#35329)"
This reverts commit
|
||
|
|
aebc47b822 | Adjust python-related build system best practices. (#35943) | ||
|
|
a313ad3b2d | Add best practice: No browser-process-only APIs in common/ directories (#35866) | ||
|
|
53ed7de480 |
[iOS] Require private browsing lock auth from Playlist (#35891)
Signed-off-by: Eli Hini <8249954+EliHini@users.noreply.github.com> |
||
|
|
b6e937c779 | 1.91.118 | ||
|
|
6baad9d998 |
Adjust macOS 26 corner radius to 16 to be concentric - Adjust shadow radius in all platforms (#35924)
* Adjust macOS 26 corner radius to 16 Reduce the rounded corner radius used on macOS 26 and later from 17 to 16. Updates GetCornerRadiusMetric for kRoundedCornersBorderRadiusAtWindowCorner in browser/ui/views/brave_layout_provider_mac.mm to better align with the intended macOS 26 visuals. * Use RoundedCornersF for view shadows Migrate ViewShadow from an int corner radius to gfx::RoundedCornersF so shadows can use per-corner radii and scale correctly. Update ViewShadow to accept rounded corner radii, paint using an SkRRect path, and add SetCornerRadii to update the shadow when radii change. Propagate the new API through BraveContentsViewUtil, BraveBrowserView, SidePanel, LocationBar, and PromotionButton, passing appropriate RoundedCornersF values and updating layer rounded corners. Remove the BraveLayoutProviderMac corner override and consolidate corner radius metrics in layout_provider.cc (with macOS 26 handling) so layout providers supply the intended radii. * Remove BraveLayoutProviderMac and simplify layout Remove mac-specific BraveLayoutProviderMac implementation and unify layout provider usage across platforms. Deleted brave_layout_provider_mac.h/.mm and removed their BUILD.gn entries; brave_layout_provider.cc now always constructs BraveLayoutProvider and drops the platform include/ifdef. Also simplify ViewShadow::SetCornerRadii by calling SchedulePaint unconditionally (removed redundant null check), and tweak a comment in layout_provider.cc about matching Brave Mac corner radius. These changes consolidate layout logic and reduce platform-specific code. |
||
|
|
c61ec53492 |
[iOS] Update order of autofill related JS features (#35897)
This fixes password autofill scripts failing to find suggestions for forms |
||
|
|
e07fdcc3f7 | [iOS] Allow Playlist to be disabled within Origin settings (#35733) | ||
|
|
4864534b90 |
[Android] Migrate private NTP to Leo tokens and fix VPN icon visibility (#35905)
* [Android] Migrate private NTP to Leo tokens and fix VPN icon visibility - Drop Brave-local duplicates of ic_product_vpn / ic_antenna / ic_product_private_window so the private NTP renders the Leo (Nala) icons via resource_overlay; tint the inner icon layer to primitive_private_window_60 in IncognitoNewTabPageView so the designed purple still wins on the fixed-dark surface. - Remove Brave-local primitive_private_window_5/10/20/60/80/90 from brave_colors.xml; references now resolve through Leo's primitive scale (same hex for _60/80/90; slight neutral shift for _5/10/20). - Remove the runtime setBackgroundColor on the scroll view that was masking the gradient drawable defined in the layout XML. - Switch the private-tab logo to ic_social_brave_release_favicon_- fullheight_color (Leo) and size in dp (42 phone, 56 tablet) to match Figma and to stop scaling with accessibility font size. - Resize circle drawable to 32x32 (was 32x33), constrain inner icon via new_tab_page_incognito_icon_inner_size (20dp / 24dp tablet), and grow circle to 48dp on tablets. - Introduce per-form-factor style aliases (IncognitoNtpTitle / SectionTitle / SectionDescription / Cta) under values/ + values-sw600dp/ so phones and tablets land on the right Leo typography ramp without per-TextView attributes. - Delete the now-dead ntp_bg_incognito and incognito_modern_- primary_color color entries. Resolves: https://github.com/brave/brave-browser/issues/53958 |
||
|
|
7375d91fb6 | 1.91.117 | ||
|
|
c9fdb81744 |
Add cache_dir var in build/commands. (#35875)
Add cache_dir var in build commands. |
||
|
|
7ef644226c | 1.91.116 | ||
|
|
387df41842 |
[ads][CodeHealth] General code health (#35921)
Remove unnecessary includes across the ads component. Remove verbose per-method doc comments from BatAdsClientNotifierImpl, replacing them with a class-level comment and an override group label. Delete copy and move special member declarations from BatAdsObserver that were never defined and cannot work with a non-copyable mojo::Remote. Fix the AdsServiceDelegate class comment and remove the redundant explicit from its constructor. Collapse trivial Act and Assert phases into a single // Act & Assert expression in value util tests. No behavioral changes. |
||
|
|
4590b903d4 |
[ads][CodeHealth] Rename functions to follow the Maybe prefix convention (#35918)
Renames CreateWalletFromRecoverySeed to MaybeBuildWalletFromRecoverySeed and CreateFromValue to MaybeFromDict since both return std::optional. Functions that can fail to produce a result are named with a Maybe prefix. No behavioral changes. |
||
|
|
b8a43b4488 |
[ads] Fixes #34413: Skip notification ads pref reads when not opted in (#35914)
On a fresh install or when the user has not opted into notification ads, NotificationAdManager::Initialize and CloseAllNotificationAds both read the brave.brave_ads.notification_ads pref unconditionally. Since that pref is empty in these scenarios, the reads are wasteful. Both call sites now guard on UserHasOptedInToNotificationAds and return early when the user has not opted in. |