Forced the color of pin icon at most visited strip to white color.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/4aa1ff3579960b0946ab8707528e9b3299a929bd
[MVT Customization][Launch] Enable MostVisitedTilesCustomization (ToT by default).
This CL enables MVT Customization by default on Android:
* kMostVisitedTilesCustomization: Disabled -> Enabled.
This corresponds to the flag #most-visited-tiles-customization, which
was added in crrev.com/c/6199259 .
We will apply Finch 100% everywhere after this CL lands.
Bug: 388782412
Change-Id: Ib04f110b0fa7e6366264cbb071815c69033d1fc7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7169644
This change completes the migration by:
- Creating brave/browser/ui/tabs:browser_tests target
- Moving brave_tab_context_menu_contents_browsertest.cc from
browser/ui/views/tabs/ to browser/ui/tabs/ and renaming it to
brave_tab_menu_browsertest.cc
- Renaming test class from BraveTabContextMenuContentsTest to
BraveTabMenuBrowserTest
- Updating brave/test:browser_tests to depend on the new target
This reorganizes the test to match the logical location of the tab
menu functionality being tested.
This commit completes the migration from BraveTabContextMenuContents to
Chromium's TabContextMenuController pattern by introducing
BraveTabMenuModelFactory for Brave-specific menu models.
Created BraveBrowserTabMenuModelDelegate that extends
chrome::BrowserTabMenuModelDelegate to provide Brave-specific
functionality for tab context menus.
BraveBrowserTabMenuModelDelegates implements
* ShouldShowVerticalTab() - checks vertical tabs state
* GetContainersMenuModelDelegate() - returns container menu delegate
* ContainersMenuModelDelegate interface (when ENABLE_CONTAINERS):
- OnContainerSelected()
- GetCurrentContainerIds()
- GetBrowserToOpenSettings()
- GetScaleFactor()
With this change, BraveTabContextMenuContents will be deprecated easily.
ContainerMenuModel::Delegate becomes ContainerMenuModel for fwd-declare
in tab_menu_model_delegate.h. It was difficult to fwd-declare the nested
class.
Move context menu command handling logic from BraveTabContextMenuContents
to BraveBrowserTabStripController.
This is the first step in deprecating BraveTabContextMenuContents
and aligning with Chromium's TabContextMenuController.
Changes:
- Add GetAllTabsMuted() method to BraveTabStripModel to centralize muted tabs
logic and eliminate duplication
- Implement TabContextMenuController interface methods in
BraveBrowserTabStripController:
* ExecuteContextMenuCommand() - handles all Brave-specific commands
* IsContextMenuCommandChecked() - checks vertical tabs state
* IsContextMenuCommandEnabled() - validates command availability
- Remove BraveTabContextMenuCommand enum, use TabStripModel::Command* directly
- Simplify BraveTabContextMenuContents by removing command handling logic
- Update BraveTabMenuModel to use GetAllTabsMuted() instead of duplicated logic
Chromium change:
https://chromium-review.googlesource.com/c/chromium/src/+/7170762
[Vertical Tabs] Creating TabContextMenuHelper
In order for vertical tabs to reuse some of the tab context menu logic,
we will move the existing TabContextMenuContents out of
BrowserTabStripController. This lets us create a new class called
TabContextMenuController which abstracts the functionality.
These features are now turned on by default upstream and they cause
BrowserViewLayout::CreateLayout to create BrowserViewTabbedLayoutImpl
layout which we don't override yet and our BraveBrowserViewLayout
doesn't get created, but because of overrides elsewhere this causes
crashes in layout.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/838d53b6116eea2fe8c3925706c935ed4c215ae6
commit 838d53b6116eea2fe8c3925706c935ed4c215ae6
Author: Dana Fried <dfried@chromium.org>
Date: Tue Nov 25 14:10:38 2025 -0800
Reland "[Chrome Next] Enable new layout with THSB support by default"
This reverts commit 7f022b6ba56e1d6db06ea7db3cb877db8db99645.
Reason for revert: Disable test that was flaking on Mac (see attached bug for further details).
Also fixes an incorrect calculation that could cause a test to fail on Linux depending on how Widgets are rendered on a particular bot.
Original change's description:
> Revert "[Chrome Next] Enable new layout with THSB support by default"
>
> This reverts commit 76dd43c1e46b85047fe11d0b48d1df7cd9103365.
>
> Reason for revert: Suspected to cause
> HelpBubbleFactoryWebUIInteractiveUiTest.* failures
> https://ci.chromium.org/ui/p/chrome/builders/ci/mac-rel-ready/40022/overview
>
> Original change's description:
> > [Chrome Next] Enable new layout with THSB support by default
> >
> > This turns on the new layout for tabbed browsers that enables
> > Toolbar Height Side Panel by default.
> >
> > The flag is still configurable via chrome://flags, and can be used as
> > an emergency killswitch if something goes terribly wrong.
> >
> > Bug: 453717426
> > Change-Id: Ib2e5cb469444efe50c5fd2a3d4650e22a102f0f2
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7185002
> > Commit-Queue: Dana Fried <dfried@chromium.org>
> > Auto-Submit: Dana Fried <dfried@chromium.org>
> > Reviewed-by: Eshwar Stalin <estalin@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1549207}
>
> Bug: 453717426
testSearchDisplaysNoResultMessageIfSearchTurnsUpEmpty and
testSearchIconVisibleInActionBar were broken
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/ff516594a0fd7f3ecc7ac87ee64592a8aa74bac0
[Android][Settings] Show title breadcrumb in detail pane for search
Displays the title breadcrumb view at the top of the content pane,
beneath the search bar UI. The view remains sticky and not scrolled
together with the rest of the detail pane. Introduces a new layout
xml that defines the title and the fragment container for this.
The title breadcrumb skips displaying the titles of the settings
prior to search once the search is on.
Bug: 462459895
Change-Id: I202acdbe3bb38f054a1982712a66509456fdb2d1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7180880
The upstream code we override uses UNSAFE_TODO, so we'll match for now.
In file included from ../../brave/chromium_src/chrome/installer/util/shell_util.cc:72:
../..\chrome/installer/util/shell_util.cc(484,5): error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
484 | BRAVE_GET_SHELL_INTEGRATION_ENTRIES
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../brave/chromium_src/chrome/installer/util/shell_util.cc(59,33): note: expanded from macro 'BRAVE_GET_SHELL_INTEGRATION_ENTRIES'
59 | const std::wstring file_ext = ShellUtil::kPotentialFileAssociations[i]; \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../..\chrome/installer/util/shell_util.cc(484,5): note: See //docs/unsafe_buffers.md for help.
../../brave/chromium_src/chrome/installer/util/shell_util.cc(59,33): note: expanded from macro 'BRAVE_GET_SHELL_INTEGRATION_ENTRIES'
59 | const std::wstring file_ext = ShellUtil::kPotentialFileAssociations[i]; \
| ^
1 error generated.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/ce967e366f66cb46d2c8b8219fa2972ed9d64762
commit ce967e366f66cb46d2c8b8219fa2972ed9d64762
Author: Arthur Sonzogni <arthursonzogni@chromium.org>
Date: Thu Nov 20 04:35:05 2025 -0800
Convert to UNSAFE_TODO in chrome
This is an automated #cleanup patch using the [Script] below.
We are migrating from coarse-grained file-level suppression (#pragma
allow_unsafe_buffers) to granular, expression-level markers
(UNSAFE_TODO()). The pragma disables safety checks for an entire file,
whereas UNSAFE_TODO() isolates specific potentially unsafe operations,
allowing the rest of the file to be enforced as safe.
This CL was uploaded by an experimental version of git cl split
(https://crbug.com/389069356).
Script: https://docs.google.com/document/d/1ORQGBNn2R-CEvNbDTjRd-GrOBOFlCxIHdcvSUA_EhR4/edit?usp=sharing
AX-Relnotes: N/A
Cleanup: This is an automated #cleanup.
Bug: 409340989
This is a simple change of simply how the values are being passed into
the callback.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/44c6cb668590da4f80470c41d3439fe1513c3b88
commit 44c6cb668590da4f80470c41d3439fe1513c3b88
Author: David Bokan <bokan@chromium.org>
Date: Mon Dec 1 13:21:41 2025 -0800
Actor: Ensure act callback is always fired before state change
In the Glic API, when a performActions call is in progress and the task
is either stopped or paused, the in-progress action is canceled.
However, the Glic API doesn't guarantee the order in which the client
will see performActions resolve and getActorTaskState observer to
change.
By accident(?), it seems the current order is that the task state change
is signalled first, then the performActions promise resolved. It would
be better to swap these so that all actions are contained with in the
state they're meant for. i.e. the client might wait for the task stopped
state before starting a new task. If performActions is resolved once the
new task is started that could confuse the client.
This CL makes it so that pausing or stopping a task immediately invokes
the reply callback, without waiting for the ExecutionEngine to signal
completion. This alone is not enough, since the callback is posted but
the state change callback synchronously sends the mojo API call. Thus,
we post the state change notification as well.
Land this disabled-by-default since corresponding changes will need to
be made in the front end.
Change-Id: I1cc5fd0526279724158af821f34568c27121ef8d
Bug: b:461256502
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7205992
Reviewed-by: Ian Vollick <vollick@chromium.org>
Commit-Queue: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1552383}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5bcea6e48b9e1f47cec9fbf5287d575e9b456fed
commit 5bcea6e48b9e1f47cec9fbf5287d575e9b456fed
Author: Duncan Mercer <mercerd@google.com>
Date: Wed Nov 26 10:06:15 2025 -0800
Move SearchboxHandler to c/b/u/w/cr_components/searchbox/
Per this comment thread,
https://chromium-review.googlesource.com/c/chromium/src/+/7139182/comment/d7f16179_ab39e098/,
to allow the ComposeboxHandler, which is a SearchboxHandler, to have a
default config for all embedders, the files need to be moved to
cr_components. This CL is the first step in that process. This CL:
- Moves searchbox_handler.h/cc to cr_components
- Moves searchbox_omnibox_client, contextual_search_type_converters, and contextual_searchbox_handler, since those will be needed by ComposeboxHandler
- Updated references to the new location
- Fixed build file errors
Note: Since the current searchbox directory has a circular dependency
exception, I included the same for the new directory. If not, there are
10+ includes that are not allowed due to circular dependencies.
Moving ComposeboxHandler will happen in a separate CL.
Bug: b:459833598
Bypass-Check-License: Moved to a different location, not a new file.
Change-Id: I310b8a3c0caa771e5ec923b0991541f67741117c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7200957
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Commit-Queue: Duncan Mercer <mercerd@google.com>
Cr-Commit-Position: refs/heads/main@{#1550596}
This is a fix for a glic inclusion where upstream changes failed to
guard the header inclusion. A CL has been submitted upstream for this:
https://crrev.com/c/7212717
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/08f8c83a6f4c1c6f6c51d4a4c40ecb0a63459a22
commit 08f8c83a6f4c1c6f6c51d4a4c40ecb0a63459a22
Author: Kene Okoye <kenok@google.com>
Date: Wed Nov 26 10:22:17 2025 -0800
[ActorUi]Split up TaskIconClick UserAction for Task Nudge Redesign
The Actor Task Nudge is a redesign of the Actor Task Icon which shares
the same TabStripNudgeButton as the icon.
Previously, the `Actor.Ui.TaskIcon.Click` UserAction was used for all
clicks on this button.
This change splits the metric to distinguish clicks made on the
redesigned button. Now, the `Actor.Ui.TaskNudge.
{State}.Click` UserAction is recorded when the Task Nudge is clicked
(with state corresponding to the current `ActorTaskNudgeState`). Clicks
on the existing Task Icon continue to log the `Actor.Ui.TaskIcon.Click`
UserAction
To support this, `ActorTaskNudgeState` is moved to a common header to
facilitate access within metrics logging code
Change-Id: I076704f31e9df0a9c4da3aaa73330ae67b1fab66
Bug: b:454613329
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7181260
Auto-Submit: Kene Okoye <kenok@google.com>
Reviewed-by: Alison Gale <agale@chromium.org>
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: Abe Boujane <boujane@google.com>
Cr-Commit-Position: refs/heads/main@{#1550615}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6a2262fc2c00cc2f6b0bce3588dd44831ef56dca
commit 6a2262fc2c00cc2f6b0bce3588dd44831ef56dca
Author: Thomas Nguyen <tungnh@chromium.org>
Date: Wed Nov 26 02:18:05 2025 -0800
[PEPC] Propagate PEPC descriptor on Android and decouple cleanup
Changes in this CL:
- First, it ensures that the `embedded_permission_request_descriptor`
is correctly propagated when handling geolocation permission requests
on Android. Previously, this data was lost when overriding the
`PermissionRequestData` in the Android delegate, causing the context
to lose track of whether the request was PEPC-initiated.
- Second, it modifies `PermissionContextBase` to decouple the cleaning
up of PEPC and regular request. PEPC's new cleaning up callback ensures
the correct order between `MaybeUpdateCachedHasDevicePermission` and
triggering the decision callback.
Fixed: 463327697, 461402995
Change-Id: Ie93099638c149986b2dbef064d9f2014a73444ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7198102
Reviewed-by: Andy Paicu <andypaicu@chromium.org>
Commit-Queue: Thomas Nguyen <tungnh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1550369}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0ef4b1dbd0b7ddc9f35661a8effcc478af229ef2
commit 0ef4b1dbd0b7ddc9f35661a8effcc478af229ef2
Author: Caroline Rising <corising@chromium.org>
Date: Wed Nov 26 14:43:05 2025 -0800
Add tab to panel animation for the toolbar height side panel.
Add a new animtion specification for the new animation type in the
animation coordinator. BrowserView is passed ownership of the content
view during the animation and the content view bounds are handled by
browser view layout. At the end of the animation the content view is
reparented back the the side panel's ContentParentView.
Updates the contextual tasks content and glic content (when the flag to
show glic in the toolbar height side panel is enabled), to paint to a
layer, this is required for content in the toolbar height side panel so
we can round the content's corners and show opacity and corner radius
animations on the content.
NO_IFTTT= side panel animation content isn't a view that should be
provided to the BrowserViewLayout when the BrowserViewLayout is created
as it is not always parented to the browser view.
Bug: 445453126
Change-Id: Ib778d8ae19f3b675ac9b4e6b545b6c1b025b1399
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7206026
Reviewed-by: David Pennington <dpenning@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1550751}
Migrated patches to Python and used chromium_src overrides where feasible.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f963b7ce99643de953636ba2ef4052daae2fc19a
commit f963b7ce99643de953636ba2ef4052daae2fc19a
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Tue Nov 25 23:56:57 2025 -0800
Port linux install scripts to Python
Linux package builds are reproducible, so I've verified the packages are
identical under the following combinations of configurations:
{deb, rpm}{stable, beta, dev, canary}{x64_unbraded_release,
x64_branded_release, x64_branded_official, arm_unbranded_release}
The motivation for this change is to improve maintainability and
readability. The previous Bash scripts were becoming difficult to manage
and extend. Python offers better string handling, error checking, and is
more consistent with the rest of the Chromium build system.
R=thestig
Bug: None
Change-Id: Id46cff3a15ef53a9d6e89f674bc852fcce9fe879
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7201054
Commit-Queue: Lambros Lambrou <lambroslambrou@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Lambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1550284}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a6bff80473e9dc0e17037aa262dc560decc655c5
commit a6bff80473e9dc0e17037aa262dc560decc655c5
Author: Rafael Cintron <rafael.cintron@microsoft.com>
Date: Tue Nov 25 13:14:41 2025 -0800
Reland "Reland "Remove GenericScopedHandle:IsValid""
This is a reland of commit 52ca070390db06846c0c6d793a636770d5a40607
Previous reland was missing IsValid => is_valid renames that appear when
Chromium is built with enable_vulkan in args.gn.
Original change's description:
> Reland "Remove GenericScopedHandle:IsValid"
>
> This is a reland of commit 53e1b04bc1437009060f7ce332959a33afe79d9c
>
> Now that https://crrev.com/c/7169967 has landed to fix build break,
> we can give this another attempt.
>
> Original change's description:
> > Remove GenericScopedHandle:IsValid
> >
> > Previous CL removed references to GenericScopedHandle:IsValid but
> > kept the definition to avoid large reverts in case of failures in
> > non-standard TryBots.
> >
> > This CL removes the method for (hopefully) good.
> >
> > Bug: 40212898
> > Change-Id: I162f924106afb53b1008e2ee66dda0118183b8e5
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7164338
> > Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
> > Reviewed-by: Lei Zhang <thestig@chromium.org>
> > Reviewed-by: Greg Thompson <grt@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1546807}
>
> Bug: 40212898
> Change-Id: Ib802b83fd831d36838f80bec49bb97930c2c9215
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7180183
> Reviewed-by: Lei Zhang <thestig@chromium.org>
> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#1548600}
Bug: 40212898
Change-Id: Id058f838b92f264c9ef0faf2d3f96094b4482f70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7202164
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1550021}
The core infrastructure for vertical tabs has been removed from upstream
* Split tab - CompoundTabContainer which contains pinned contrainer and
unpinned container separately is removed.
* Scrollable tab strip support was removed - TabStripScrollContainer was
removed.
This PR temporarily make Brave buildable and disables vertical tab strip
support
As CompoundTabContainer is gone, rework BraveTabContainer to handle both
pinned and unpinned tabs.
Previously, we had CompoundTabContainer which contains two TabContainers
, one for pinned tabs and the other for unpinned tabs. And TabContainer
for unpinned tabs had a ScrollView to allow scrolling when there are
many unpinned tabs.
But now, as CompoundTabContainer is removed, we need to handle both pinned
and unpinned tabs in BraveTabContainer. Plus, we should support scrolling
feature for unpinned tabs.
But adding scroll view to BraveTabContainer causes various issues as
it manipulates view hierarachy, which upstream code is not aware of.
As a result, it'd require many changes from our side to make it work.
So instead of adding scroll view, we directly handle scrolling logic
inside BraveTabContainer. BraveTabContainer calculates visable area
for unpinned tabs and sets clip rect accordingly. It also handles scroll
events and update unpinned tabs position based on the offset.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0eda25f638d92e3fe8c5598516539bee3cdb086c
commit 0eda25f638d92e3fe8c5598516539bee3cdb086c
Author: dljames <dljames@chromium.org>
Date: Tue Nov 25 11:51:35 2025 -0800
[TBHSP] Update SidePanelAnimationCoordinator's Observer API
This CL updates the SidePanelAnimationCoordinator's Observer API to be
more granular in the types of updates it can notify its observers.
API Changes:
- Added OnAnimationTypeStarted and OnAnimationTypeEnded
The OnAnimationType* functions were added to separate observers who care
about specific animation sequences, from those that care about the type
of animation being performed. These additions will allow observers the
ability to perform prerequisite or cleanup tasks before and after the
main animation has completed. For example, at the end of an animation
you may want to reparent a specific view, or set some state before the
animation starts.
Additionally, OnAnimationType functions can only be subscribed to by
using the animation type AddObserver/RemoveObserver functions. This
allows further separation by allowing observers to listen to either
animation sequence progress updates, or animation type updates, or both.
OnAnimationSequenceEnded was not implemented as the naming suggests. It
was effectively telling observers that the main animation timeline had
ended and not the individual sequences. This function has been updated
to notify observers when a specific sequence tied to an animation id has
finished. This can happen at any point between the start and end of the
main animation timeline.
Tests has been added to verify the new behavior.
Change-Id: I931e5e5dc6d9085e7b63e61eeacc945e4078664b
Bug: 445452247
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7180522
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Darryl James <dljames@chromium.org>
Reviewed-by: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1549973}
```
android_lint_cache/aars/room-runtime-2.6.1.aar/AndroidManifest.xml:23: Warning: The attribute android:allowBackup is deprecated from Android 12 and higher and may be removed in future versions. Consider adding the attribute android:dataExtractionRules specifying an @xml resource which configures cloud backups and device transfers on Android 12 and higher. [DataExtractionRules]
<application>
^
gen/chrome/android/chrome_public_apk__lint/RESZIPS/obj/brave/build/android/android_brave_strings_grd.resources.zip/values-am/android_brave_strings.xml:837: Warning: The resource R.string.brave_quick_action_search appears to be unused [UnusedResources]
<string name="brave_quick_action_search">"Brave ፈጣን እርምጃ ፍለጋ"</string>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../brave/android/java/brave-res/values/brave_styles.xml:290: Warning: The resource R.style.BottomSheetAnimation appears to be unused [UnusedResources]
<style name="BottomSheetAnimation">
~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../brave/android/java/brave-res/values/brave_styles.xml:295: Warning: The resource R.style.BraveAccountTheme appears to be unused [UnusedResources]
<style name="BraveAccountTheme" parent="Theme.Chromium.Activity.Fullscreen">
~~~~~~~~~~~~~~~~~~~~~~~~
../../brave/android/java/brave-res/values/brave_styles.xml:299: Warning: The resource R.style.BottomSheetActivityTheme appears to be unused [UnusedResources]
<style name="BottomSheetActivityTheme" parent="Theme.Chromium.Activity.FakeTranslucent">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../brave/android/java/brave-res/drawable-night-nodpi/ic_quick_action_search_and_bookmark_widget_preview.png: Warning: The resource R.drawable.ic_quick_action_search_and_bookmark_widget_preview appears to be unused [UnusedResources]
../../brave/android/java/brave-res/xml/quick_action_search_and_bookmark_widget_info.xml:7: Warning: The resource R.xml.quick_action_search_and_bookmark_widget_info appears to be unused [UnusedResources]
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
^
../../chrome/android/java/res_chromium_base/drawable-night/themed_app_icon.xml:6: Warning: The resource R.drawable.themed_app_icon appears to be unused [UnusedResources]
<vector xmlns:android="http://schemas.android.com/apk/res/android"
^
../../brave/android/java/brave-res/drawable-night-nodpi/widget_preview.png: Warning: The resource R.drawable.widget_preview appears to be unused [UnusedResources]
```
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/81de9ffa1dc0a08f75324ada5fe6189a6178bce6
commit 81de9ffa1dc0a08f75324ada5fe6189a6178bce6
Author: Steven Holte <holte@google.com>
Date: Fri Nov 21 13:31:26 2025 -0800
Split on-device vs remote feature keys.
This has the following changes outside of opt-guide:
* Renames optimization_guide::mojom::ModelBasedCapabilityKey
-> mojom::OnDeviceFeature.
* Replaces all use of optimization_guide::ModelBasedCapabilityKey in
conjunction with OnDeviceCapability with mojom::OnDeviceFeature.
And these changes internally to opt-guide code:
* Removes the keys that do not support on-device execution.
* Extracts on-device enum logic to on_device_features.h/cc
* Removes conditional support of kTest and kCompose (neither are
used in any production code, so this gate is unnecessary).
* Return type for GetOptimizationTarget becomes non-optional.
* Use an EnumSet for iterating over all keys.
* Makes the proto->key conversion inferred and return optional type.
Bug: 445999234
Change-Id: I27a4191525a1f7c06b93a75307ca2cdd6a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7139721
Auto-Submit: Steven Holte <holte@chromium.org>
Owners-Override: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Mike Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1548707}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d7fb9d0cd0b6e1589ee974c1ca33de984df513e7
commit d7fb9d0cd0b6e1589ee974c1ca33de984df513e7
Author: Lei Zhang <thestig@chromium.org>
Date: Thu Nov 20 19:40:04 2025 -0800
Reland "Move logging::LoggingSettings to base/logging/logging_settings.h"
This is a reland of commit 6b79baf89a1d87407d4bafdc5d871061a81f80fc
The reland is the same CL. The difference is the problematic code in a
separate repo that did not do IWYU has been fixed.
Original change's description:
> Move logging::LoggingSettings to base/logging/logging_settings.h
>
> Move struct LoggingSettings, which is only used in a relatively small
> number of files, out of base/logging.h and into its own header. Update
> direct users and then do IWYU to fix the build. This effectively moves
> base/files/file_path.h out of base/logging.h.
>
> Change-Id: I04209f1063051b7399e335d7e30cb7abb9442c94
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7160150
> Reviewed-by: Francois Pierre Doray <fdoray@chromium.org>
> Commit-Queue: Lei Zhang <thestig@chromium.org>
> Owners-Override: Francois Pierre Doray <fdoray@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1546655}
Change-Id: Ie877c3c85cc3e1983fb8b2b065b0d09607442ce4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7173024
Owners-Override: Francois Pierre Doray <fdoray@chromium.org>
Reviewed-by: Francois Pierre Doray <fdoray@chromium.org>
Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1548242}
With the deletion of this method, there's now the introduction of
`AlertIndicatorButton::Delegate`, which is supposed to handle
browser-related actions.
This change adjust our customistation for
`kTabMuteIndicatorNotClickable` to now be provided through the delegate.
This has only been implemented for the delegate implementation of
`Tabs`. Another derived delegate class is `VerticalTabView`, but this
one seems to be rather in the early stages of implementation.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/562914734cd0c3858c0deb23b00941c0011ec5b4
commit 562914734cd0c3858c0deb23b00941c0011ec5b4
Author: Charles Meng <charlesmeng@chromium.org>
Date: Mon Nov 24 15:27:45 2025 -0800
[Vertical Tabs] Alert indicator button
In order to share the alert indicator button between horizontal and
vertical tabs, create a common interface ParentTab. Due to inheritance
issues it's hard to know that it is also a views::View, so the DCHECK
that the parent tab is the parent in the view hierarchy is removed, and
the color provider will just be taken from the alert indicator button
because it should be the same one as its parent's.
https://screencast.googleplex.com/cast/NjU0MTEzNzU4OTMwNTM0NHwzMzNlOTQ5Ni1mMg
Fixed: 457525173
Change-Id: I2ef413e4f61d00bff2c4400a6e262e89b0c70125
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7182020
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Reviewed-by: David Pennington <dpenning@chromium.org>
Commit-Queue: Charles Meng <charlesmeng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1549443}
This squash seems to have been innefective from the beginning, as
`endswith` is not reliable for this check. The new check verifies the
the sentece, and it also adds an expectation for a full-stop at the end,
to avoid a too broader pattern.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/18b3276cdcdfb2b914fbb962a5081bb3d74d261a
commit 18b3276cdcdfb2b914fbb962a5081bb3d74d261a
Author: Konstantin Andrikopoulos <andrikopoulos@google.com>
Date: Thu Nov 20 09:17:59 2025 -0800
[dbsc] Add unexportable keys proxy service
Chrome's DBSC implementation lives in the network process. The lowered
privileges that it has constrain the use of Unexportable Key Service on
certain platforms, like macOS for example.
To support DBSC in macOS we thus need to change how the DBSC has access
to the UKS. Instead of directly using the UKS implementation in the
network process, we will move it to the browser process. And from the
browser service, we will expose a new proxy mojo service which the
network process can use.
This proxy service will implement all the asynchronous methods of the
UKS: key generation, key loading, and signing. However, the UKS also
has some synchronous methods which can't be forwarded to an async mojo
method. To solve this issue, the methods in the mojo service will also
return additional information that can be cached in the network process
and used to implement the synchronous part of the UKS interface.
So for example when creating or generating keys the mojo proxy won't
simply return the new key, but also metadata about what algorithm it is
using.
This CL starts by adding the GenerateKey method, with the rest to follow
in future CLs.
NO_IFTTT=file is added now and IFTTT is misfiring
Bug: 452303497, 443932320, 452300505
Change-Id: I5feb9cd1b71f8ec52c36846a035bc7775ec066c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7075194
Commit-Queue: Konstantin Andrikopoulos <andrikopoulos@google.com>
Reviewed-by: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Alex Ilin <alexilin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1547877}
These values were generated using heuristics provided by `gnrt` itself.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d4c06848b36902e02c7001032b4c72ecc8ab2944
commit d4c06848b36902e02c7001032b4c72ecc8ab2944
Author: Lukasz Anforowicz <lukasza@chromium.org>
Date: Fri Nov 21 14:01:48 2025 -0800
[gnrt] Make `gnrt vendor` infer `allow_unsafe` into `gnrt_config.toml`.
This CL modifies the behavior of `gnrt vendor`, so that it also edits
`//third_party/rust/chromium_crates_io/gnrt_config.toml` to ensure that
each crate explicitly sets `allow_unsafe`. This new, heuristics-based
behavior is meant to streamline the experience of importing Rust crates.
Bug: 460814809
Change-Id: I4192f211cbd11f5c435776f146b1dd96ba5daa18
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7180203
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1548722}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/9afc53ae9f2e324d23f4417840980f48a66c7a21
Animate compact mode expand/contract
This is accomplished with the transition framework. LBC is notified
right before layout changes corresponding to compact mode state changes
are made, allowing it to capture values at the right time. The location
bar itself and the "+" button are animated.
In order to animate contraction correctly, the Toolbar needs to remain
larger until the animation ends to avoid clipping the LocationBar.
LocationBarEmbedder allows for the toolbar's height to temporarily fixed
without exposing the view directly.
In order to provide consistent notifications re: compact mode state, we
need to create a single source of truth for compactness, extracting the
view binder's control of this property out to the mediator.
Bug: TBD
Change-Id: I40943b27b0e295c6bc83fb9b541d6d2f57396a69
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7171390
Per @fallaciousreasoning, this needs to be disabled for now due to interactions
with Leo. It's not currently easy to fix, as all of Leo is bundled together into
one file which disallows importing individual types as the fix for this would
require. Entered https://github.com/brave/brave-browser/issues/51461 to track
this work.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0b3a9f2a74923ee00eeb14e67c7646f4957d1750
commit 0b3a9f2a74923ee00eeb14e67c7646f4957d1750
Author: dpapad <dpapad@chromium.org>
Date: Wed Nov 19 11:39:03 2025 -0800
WebUI: Enable @webui-eslint/web-component-missing-deps by default.
Specifically
- Enable the new ESLint check by default for non-Ash build_webui()
targets.
- Disable it explicitly for c/b/r/settings/ and c/b/r/new_tab_page/
temporarily until the check is updated to correctly detect missing deps
in WebUIs that use lazy loading (actively worked and expected to
land in a quick follow-up CL).
All violations have already been fixed in prior CLs, except a few that
slipped and are fixed here.
Bug: 457866803
Change-Id: I8691ce7e9358500fe800d24b4ae5b005fc9685b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7171069
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Teresa Mao <temao@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1547375}