Chromium changes:
https://chromium.googlesource.com/chromium/src/+/01ff99168958e53d2a5a0e7bef3e14d13cbcfe96
commit 01ff99168958e53d2a5a0e7bef3e14d13cbcfe96
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date: Sun Apr 19 17:11:57 2026 -0700
Simplify DevtoolsUIController
DevtoolsUIController::UpdateDevtools is updated to only take the
target web contents - instead of the container view and web contents.
The implementation assumes that the container view was the host of
web contents, however this can be easily resolved from just the
web contents itself within the DevtoolsUIController and mitigates
the risk of the params drifting.
Removes a DeprecatedLayoutImmediately() call from
BrowserView::UpdateDevTools() which has been in the codebase since
2009 and is no longer necessary. Instead layout is invalidated if
necessary.
Note: DevtoolsUIController::UpdateDevTools() still needs to return
whether a layout is required as BrowserView may need to perform
a synchronous layout operation separately from marking the layout
as invalid.
Bug: 502745808
Change-Id: I627a45dca0c975a5d422b2aedfa75bd4de8134a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7766514
Reviewed-by: Darryl James <dljames@chromium.org>
Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1617272}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6c9ccc1c9d53aee2a221dc37dab54b167fb3e09c
commit 6c9ccc1c9d53aee2a221dc37dab54b167fb3e09c
Author: Russ Hamilton <behamilton@google.com>
Date: Fri Apr 17 09:50:05 2026 -0700
[WebUI Avatar] Migrate callers to AvatarToolbarButtonInterface
This CL migrates all usages of
ToolbarButtonProvider::GetAvatarToolbarButton() to use
GetAvatarToolbarButtonInterface() instead. This is part of the effort to
make toolbar components framework-agnostic and support both Views and
WebUI implementations of the avatar button.
- Remove the deprecated GetAvatarToolbarButton() method from the
ToolbarButtonProvider interface.
- Remove implementations of GetAvatarToolbarButton() in ToolbarView
and WebAppFrameToolbarView.
- Migrate all production and test callers to use the interface and its
framework-agnostic methods.
- Update includes across the codebase to prefer
avatar_toolbar_button_interface.h over avatar_toolbar_button.h where
the concrete type is no longer needed.
Bug: 470045174
Change-Id: Iff0147b3ba6eb354a893115be873eb27808150f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7727070
Reviewed-by: Ryan Sultanem <rsult@google.com>
Auto-Submit: Russ Hamilton <behamilton@google.com>
Commit-Queue: Russ Hamilton <behamilton@google.com>
Cr-Commit-Position: refs/heads/main@{#1616641}
With this CL moving things around, this has caused a lot small issues
in several places where unwanted replecaments started to occur, or other
types of failures, like name collision.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e0f759f728337f7df2f808ebc2c1eefffab5c5e3
commit e0f759f728337f7df2f808ebc2c1eefffab5c5e3
Author: Athul Iddya <athul@iddya.com>
Date: Thu Apr 16 17:08:08 2026 -0700
Add a native frame view for non-browser widgets on Linux
Introduces NativeFrameViewLinux, a FrameViewLinux subclass that provides
native client-side decorations for non-browser widgets on Linux. This
class is preferred over FrameViewLinux for the GTK UI theme. Its
implementation mirrors BrowserFrameViewLinuxNative, using
WindowFrameProvider for frame decoration and NavButtonProvider for
window control buttons.
NativeFrameViewLayoutLinux similarly extends FrameViewLayoutLinux to
override frame and button layout decisions using WindowFrameProvider and
NavButtonProvider. Shared utilities between NativeFrameViewLinux and
BrowserFrameViewLinuxNative are extracted into frame_view_utils_linux.
WindowFrameProvider and NativeTheme gain options for non-browser frame
rendering: top area height, padding and border APIs, and bottom border
drawing in the top area, to match the appearance of native GTK dialogs.
Bug: 396190939
Cq-Include-Trybots: luci.chromium.try:linux-wayland-mutter-rel,linux-wayland-weston-rel
Change-Id: Iee94d493a1751176c38d793e7efcfe47271bc909
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7615475
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Athul Iddya <athul@iddya.com>
Reviewed-by: David Yeung <dayeung@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1616203}
`ChromeUpdateClientConfig` has dropped the `url_override` arg. Th change
also removes an unnecessary patch for `ChromeUpdateClientConfig` which
was causing issues.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e585ba13ce9ed5667530a315850713c1eeb3cd20
commit e585ba13ce9ed5667530a315850713c1eeb3cd20
Author: Joshua Pawlicki <waffles@chromium.org>
Date: Fri Apr 17 07:58:49 2026 -0700
extension updater: Use update_client updater for sync/policy installs
Previously, the first install of an extension (when driven by sync or
policy) would still default to using the old extension update stack.
This isn't necessary; the new stack can be used in this case.
This relands
https://chromium-review.googlesource.com/c/chromium/src/+/7545510
The original CL is patchset 1. Since then,
ExternalProviderImplTest.InAppPayments (which isn't covered by CQ)
is fixed, which was unfortunately a bigger job than I hoped.
Fixed: 482088398, 500551122
Change-Id: Iee3d224770896f5abc288d1facbd492f67ef9554
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7769170
Reviewed-by: Owen Min <zmin@chromium.org>
Auto-Submit: Joshua Pawlicki <waffles@chromium.org>
Commit-Queue: Joshua Pawlicki <waffles@chromium.org>
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1616564}
These features were moved under common
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3fe669867f71303e859e010511f565c174eff5ff
commit 3fe669867f71303e859e010511f565c174eff5ff
Author: Thomas Lottermann <lottermann@google.com>
Date: Wed Apr 8 02:25:11 2026 -0700
[OTP] Make One Time Token service URL configurable via FeatureParam.
This change replaces the hardcoded URL for fetching email one-time
tokens with a FeatureParam, allowing the service URL to be modified
through Finch. The default value of the FeatureParam is set to the
original URL.
Bug: b:478840986
Fixed: b:478840986
Change-Id: I7e0f0a48c1d8fd735d451fc741635a5cfc4460ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7711420
Commit-Queue: Thomas Lottermann <lottermann@google.com>
Reviewed-by: Matthias Körber <koerber@google.com>
Reviewed-by: Trang Mai <trangm@google.com>
Cr-Commit-Position: refs/heads/main@{#1611334}
BraveWindowTracker is initialized in
BraveBrowserMainExtraParts::PreMainMessageLoopRun. It uses
base::ScopedObservation<BrowserCollection, BrowserCollectionObserver>,
which obseves browser collection which goes out of scope with
GlobalFeatures. BraveWindowTracker needs to stop observing before then.
Added HasInstance/ClearInstance to BraveWindowTracker modeling this
behavior on upstream's ChromeBrowserMainExtraPartsMetrics and
metrics::TabStatsTracker.
[33240:46492:0417/173936.000:ERROR:base\allocator\partition_alloc_support.cc:683] 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:
brave_browser_tests!base::allocator::`anonymous namespace'::DanglingRawPtrDetected [0x7ff7130f09ee+3ee] (base\allocator\partition_alloc_support.cc:438)
brave_browser_tests!GlobalFeatures::~GlobalFeatures [0x7ff711aec13d+cd] (chrome\browser\global_features.cc:96)
brave_browser_tests!BraveGlobalFeatures::~BraveGlobalFeatures [0x7ff710d19780+10] (brave\browser\brave_global_features.cc:12)
brave_browser_tests!BrowserProcessImpl::~BrowserProcessImpl [0x7ff711b8ccb8+138] (chrome\browser\browser_process_impl.cc:565)
brave_browser_tests!BraveBrowserProcessImpl::~BraveBrowserProcessImpl [0x7ff711b46128+3c8] (brave\browser\brave_browser_process_impl.cc:142)
brave_browser_tests!BraveBrowserProcessImpl::~BraveBrowserProcessImpl [0x7ff711b47fa0+10] (brave\browser\brave_browser_process_impl.cc:142)
brave_browser_tests!ChromeBrowserMainParts_ChromiumImpl::PostDestroyThreads [0x7ff711b52658+168] (chrome\browser\chrome_browser_main.cc:2291)
brave_browser_tests!content::BrowserMainLoop::ShutdownThreadsAndCleanUp [0x7ff70d2638c7+7b7] (content\browser\browser_main_loop.cc:1282)
brave_browser_tests!content::BrowserMainRunnerImpl::Shutdown [0x7ff70d265b86+106] (content\browser\browser_main_runner_impl.cc:177)
ERROR:base\allocator\partition_alloc_support.cc:700] Dangling reference from:
ERROR:base\allocator\partition_alloc_support.cc:701] brave_browser_tests!partition_alloc::internal::base::debug::CollectStackTrace [0x7ff713271b82+12] (base\allocator\partition_allocator\src\partition_alloc\partition_alloc_base\debug\stack_trace_win.cc:103)
brave_browser_tests!base::internal::InstanceTracer::TraceImpl [0x7ff7132712ee+1fe] (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 [0x7ff707af12d8+128] (base\scoped_observation.h:117)
brave_browser_tests!brave::BraveWindowTracker::BraveWindowTracker [0x7ff7119c682d+11d] (brave\browser\p3a\p3a_core_metrics.cc:60)
brave_browser_tests!brave::BraveWindowTracker::CreateInstance [0x7ff7119c6de1+21] (brave\browser\p3a\p3a_core_metrics.cc:71)
brave_browser_tests!BraveBrowserMainExtraParts::PreMainMessageLoopRun [0x7ff711a00915+185] (brave\browser\brave_browser_main_extra_parts.cc:104)
brave_browser_tests!ChromeBrowserMainParts_ChromiumImpl::PreMainMessageLoopRun [0x7ff711b4fd60+60] (chrome\browser\chrome_browser_main.cc:1465)
Error fixed:
ERROR at //brave/browser/brave_ads/tabs/ads_tab_helper.cc:28:11: Can't include this header from here.
^------------------------------------------------------------------
The target:
//brave/browser/brave_ads/tabs:tabs
is including a file from the target:
//chrome/browser/ui/browser_window:browser_window
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/2ebf7353bb2535b6121d1a26340d3f4e74046e42
commit 2ebf7353bb2535b6121d1a26340d3f4e74046e42
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date: Tue Apr 14 21:51:30 2026 -0700
[bedrock] Remove BrowserListObserver
Bug: 431671320
Change-Id: Iff946bf520ab44049c855d91576ef53ca1916e00
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7744448
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1614935}
Chromium has turned on noUncheckedSideEffectImports flag which requires
type definitions to be generated for side effect imports, i.e.
import './foo'
However, the build process we use for generating a bunch of our bundles
doesn't emit type definitions. I've got a work in progress branch on
master which gets things kind of working but I think I hit a bit of a
road block.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/7ff606db0b865f1b09886ff5ae61ffbc4b54385c
commit 7ff606db0b865f1b09886ff5ae61ffbc4b54385c
Author: Michael Tatarski <mtatarski@google.com>
Date: Tue Apr 14 04:43:13 2026 -0700
[STTS] Add commit confirmation callback to Send Tab To Self
This CL introduces the infrastructure to support commit confirmation
notifications when a tab is sent to another device. Currently, the UI
provides feedback either immediately after the send action is initiated
(Android) or none at all (iOS, Desktop).
This change updates the Send Tab To Self model and bridge to accept a
confirmation callback. The bridge executes the callback with success
immediately after the entry is successfully queued in the local sync
pipeline, and invokes it with failure if it cannot be queued (e.g. if
the URL is invalid or sync is not tracking metadata). This allows the UI
to reliably react to the operation's initial result.
Bug: 492072882
The accessor is now gone, and `BrowserView::GetBrowserViewForBrowser` is
used in its place.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/aaed67f345e86a74c60a9f666cd19fe898d23605
commit aaed67f345e86a74c60a9f666cd19fe898d23605
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date: Wed Apr 15 11:32:42 2026 -0700
[bedrock] Move bookmark-related methods to BookmarkBarController
This CL re-homes bookmark-related methods on BrowserWindow to the
BookmarkBarController browser window feature. Test-specific methods
that only have a BrowserView impl have been removed and test code
updated to check the BrowserView directly.
This is part of an effort to slim BrowserWindow and better modularize
browser feature code.
Bug: 502745808
Change-Id: I4046786862ff822a6a11c278e25948f478340aa2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763260
Reviewed-by: David Yeung <dayeung@chromium.org>
Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1615305}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/4650246ccb09055bd278e075fb26055343174087https://chromium.googlesource.com/chromium/src/+/830564b5f14f755a81fa9f9d5f1e171b568dfc6a
commit 4650246ccb09055bd278e075fb26055343174087
Author: Kun Wang <kunwang@microsoft.com>
Date: Tue Apr 14 20:46:35 2026 -0700
[bedrock] Remove FindAllTabbedBrowsersWithProfile() from BrowserFinder
Bug: 494010890
Change-Id: I7d237edf67693e11d23397813f06d4e32d27d5a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7738568
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Commit-Queue: Kun Wang <kunwang@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1614924}
commit 830564b5f14f755a81fa9f9d5f1e171b568dfc6a
Author: Yu He <yhe@microsoft.com>
Date: Thu Mar 19 12:08:13 2026 -0700
Reland "[bedrock] FindAllTabbedBrowsersWithProfile() function call point refactoring"
This is a reland of commit e1e46c26f73c2b52e384e7ea0b59d312ab6399c5
The original CL was reverted because it caused
ActorLoadAndExtractContentToolBrowserTest.WindowClosedPrematurely to
fail on linux-wayland-mutter-rel-tests.
Root cause: GetActiveWindowId() used ProfileBrowserCollection::ForEach()
with the default kCreation order. On Wayland, when a new browser window
is shown via BrowserView::Show(), DidBecomeActive() is called
synchronously for the new window, but DidBecomeInactive() for the
previous window only fires asynchronously when the compositor sends a
"lost focus" event. This means both windows can have IsActive()==true
simultaneously. With kCreation order, the older (wrong) window was found
first. The original FindAllTabbedBrowsersWithProfile() iterated in
activation order, so the most recently shown window was always checked
first.
Fix: Pass BrowserCollection::Order::kActivation to ForEach() in
GetActiveWindowId() to match the original iteration order.
Also re-enables the WindowClosedPrematurely test on Linux, which was
disabled by a gardener after the original CL landed.
Patchset 3 fixes the issue and has been verified locally by running the
test 50 times under mutter/Wayland without failure.
Original change's description:
> [bedrock] FindAllTabbedBrowsersWithProfile() function call point refactoring
>
> Migrate all non-test call sites of FindAllTabbedBrowsersWithProfile()
> from Browser* to BrowserWindowInterface*, adapting downstream method
> calls accordingly.
>
> Call sites migrated:
> - actor_proto_conversion.cc: session_id() → GetSessionID()
> - load_and_extract_content_tool_request.cc: session_id() → GetSessionID()
> - tab_sensitivity_cache.cc: tab_strip_model() → GetTabStripModel()
>
> The function still returns std::vector<Browser*>; each call site uses
> BrowserWindowInterface* as the range-based for loop variable, relying
> on the implicit upcast from Browser* to BrowserWindowInterface*.
>
> Bug: 431671320
> Change-Id: Ie621746798e54642981b5d2330a653a5f2501821
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665417
> Auto-Submit: Yu He <yhe@microsoft.com>
> Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
> Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
> Commit-Queue: Qikai Zhong <qikaizhong@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#1600308}
Bug: 431671320
Change-Id: I35bd2cc00fc4411c61570be4b906dc3b4dab5dba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7678191
Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
Commit-Queue: Tom Lukaszewicz <tluk@chromium.org>
Reviewed-by: Tom Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1602148}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c93c5d88e4f60a6586e10ff1ce4a8feeaf3f4248
commit c93c5d88e4f60a6586e10ff1ce4a8feeaf3f4248
Author: Chris Fredrickson <cfredric@chromium.org>
Date: Wed Apr 15 12:37:06 2026 -0700
Add LoadAndExtractContent's tabs to ActorTask's tab set
This ensures that LoadAndExtractContent does not bypass the enterprise
policy blocklist, sensitive site list, or static navigation blocklist.
This CL also adds the ability to add a tab to the controlled tabs set
without stopping the ActorTask when that tab is detached/closed. This is
needed for the ephemeral tabs created by the LoadAndExtractContent tool.
Fixed: 497342466
Change-Id: I355e2bc4ab9a27d52281de10ce6bdc98b50cc43a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7727485
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Auto-Submit: Chris Fredrickson <cfredric@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Chris Fredrickson <cfredric@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1615339}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/8f97262a2cc5aa37fcd710c3c141eb7f08c01f92
commit 8f97262a2cc5aa37fcd710c3c141eb7f08c01f92
Author: dpapad <dpapad@chromium.org>
Date: Wed Apr 15 15:03:48 2026 -0700
WebUI: Enable @typescript-eslint/no-explicit-any where possible.
Since there are too many violations across the codebase, enabling this
check by default will take a while. Instead of waiting until all
violations are fixed before the check is enabled anywhere, enabling it
for all targets that already don't exhibit any violations.
As the remaining offending targets are fixed they will be removed from
the exception list to ensure they can no longer regress after being
fixed.
The new check is skipped on Ash-only WebUI targets for now.
Bug: 494464740
Change-Id: Iadaa8718b1bb6e0188b80615cf2aff4ec3193588
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763564
Reviewed-by: John Lee <johntlee@chromium.org>
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1615435}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/98defbb5fe4cd74acc53e9f8d3b3ad9443adda65
commit 98defbb5fe4cd74acc53e9f8d3b3ad9443adda65
Author: Kent Tamura <tkent@chromium.org>
Date: Wed Apr 15 01:28:25 2026 -0700
Reland "Remove blink::WebString::FromUTF8()"
This is a reland of commit 64bea51a34e9a0f68769c2275e939d986f918495
Differences from the original commit:
Update `FromUTF8()` in the following files too:
* chromecast/renderer/activity_filtering_websocket_handshake_throttle.cc
* components/translate/content/renderer/translate_agent.cc
* third_party/blink/renderer/core/script_tools/model_context_test.cc
Original change's description:
> Remove blink::WebString::FromUTF8()
>
> We prefer FromUtf8().
> This CL has no behavior changes.
>
> Bug: 492927412
> Change-Id: I3976e85012e2189dd4377a7cd49148771970d158
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7760402
> Commit-Queue: Fredrik Söderquist <fs@opera.com>
> Owners-Override: Kent Tamura <tkent@chromium.org>
> Auto-Submit: Kent Tamura <tkent@chromium.org>
> Reviewed-by: Fredrik Söderquist <fs@opera.com>
> Cr-Commit-Position: refs/heads/main@{#1614316}
Bug: 492927412
Change-Id: I36fa1420e10759ad581bf8d2ccf7552831e10205
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7760406
Reviewed-by: Fredrik Söderquist <fs@opera.com>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Commit-Queue: 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@{#1614993}
Due to transient header inclusions and with `Init` being a common token,
we've got another unwanted substitution which this preemptive header
inclusion prevents.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/979202122d8d2ae3fffd4ffc027bdb86b78b7232
commit 979202122d8d2ae3fffd4ffc027bdb86b78b7232
Author: Qingxin Wu <qingxinwu@google.com>
Date: Tue Apr 14 05:40:00 2026 -0700
[WebUI LLBC] Introduce PermissionChip Interfaces.
This CL is Phase 1 of decoupling the Left-Hand Side (LHS) location bar
chips from native Views, preparing for a WebUI implementation.
It introduces an abstract interfaces: `PermissionChipInterface`.
The native `PermissionChipView` now inherit from this interface. C++
controllers (`ChipController` and `PermissionDashboardController`) have
been refactored to hold pointers to the interfaces rather than concrete
View classes.
Bug: 495419742
Change-Id: I8451110f6c28d267528fa8ed2ead22dbb485e0a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7705932
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Elias Klim <elklm@chromium.org>
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Commit-Queue: Qingxin Wu <qingxinwu@google.com>
Cr-Commit-Position: refs/heads/main@{#1614388}
We are now accessing this value through a private accessor with the
parent class.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0800caaa61eb1b551c622e41025def941ea6f0c9
commit 0800caaa61eb1b551c622e41025def941ea6f0c9
Author: Youssef Bourouphael <ybourouphael@google.com>
Date: Tue Apr 14 06:30:17 2026 -0700
Refactor: Extract AppMenuControl interface
This change extracts the core functionalities of the app menu button
into a new `AppMenuControl` interface.
- Introduced `AppMenuControl` interface defining methods to interact with the app menu button.
- Updated `AppMenuButton` to implement the new `AppMenuControl` interface.
- Modified `ToolbarButtonProvider` to expose the `AppMenuControl` interface instead of directly returning `AppMenuButton`.
- Migrated all call sites that previously accessed `AppMenuButton` directly to use the `AppMenuControl` interface.
- Updated bubble anchoring logic to utilize `views::BubbleAnchor`, allowing for more flexible anchoring options.
- Many existing calls to `GetAppMenuButton()` were migrated to use `views::ElementTrackerViews` to get the button view.
This refactoring is a prerequisite for future work on a Web UI version
of the app menu.
Bug: 470045312
Change-Id: I01d722ad76687e0f1e409f04a4feef4d0386540e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7722207
Reviewed-by: Paul Jensen <pauljensen@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Youseff Bourouphel <ybourouphael@google.com>
Cr-Commit-Position: refs/heads/main@{#1614401}
We don't need to add test_browser_dialog_mac.h|mm into
brave_browser_tests directly because they are now built by
chrome/browser/ui/test:dialog target which is pulled into our executable
via
//brave/test:brave_browser_tests --[public]-->
//brave/test:browser_tests_runner --[public]-->
//brave/test:browser_test_support --[public]-->
//chrome/test:test_support --[public]-->
//chrome/test:test_support_ui --[public]-->
//chrome/browser/ui/test:dialog
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/e0cd9afb25e911c62c8c096ef55816bd9e3b665e
commit e0cd9afb25e911c62c8c096ef55816bd9e3b665e
Author: Tiago Vignatti <tvignatti@igalia.com>
Date: Thu Apr 9 07:28:31 2026 -0700
Componentize chrome/browser/ui/test/
This changes create chrome/browser/ui/test/BUILD.gn with dedicated
targets for all test files in this directory, which were previously
scattered across chrome/test/BUILD.gn and chrome/browser/ui/BUILD.gn.
Some of the files were duplicated in multiple targets, and has now
fixed.
New targets:
- :dialog — moved from //chrome/test:test_support and de-duplicated from
browser_tests/interactive_ui_tests
- :closed_waiter — moved from //chrome/test:test_support_ui
- :test_support — de-duplicated and moved from browser_tests,
interactive_ui_tests, and //chrome/browser/ui:test_support
- :confirm_bubble — moved from //chrome/browser/ui:test_support
- :browser_tests — browser test files
- :interactive_ui_tests — interactive UI test files
- :app_window — moved from //chrome/browser/ui:test_support
Bug: 353332589
This change only removes a inclusion to the header for this class that
was left behind in our code.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/dd0cca1d9573996058b06159d99ef55904eae2a0
commit dd0cca1d9573996058b06159d99ef55904eae2a0
Author: Tiago Vignatti <tvignatti@igalia.com>
Date: Mon Apr 13 05:30:29 2026 -0700
Remove deprecated TestBrowserClosedWaiter
Delete TestBrowserClosedWaiter and migrate all callers to use
ui_test_utils::BrowserDestroyedObserver directly, as the class
was already marked deprecated. The ASSERT_TRUE wrappers around
WaitUntilClosed() are dropped since it unconditionally returned
true.
This also removes the circular dependency between
//chrome/browser/ui/test:closed_waiter and
//chrome/test:test_support_ui.
Bug: 353332589
Change-Id: I2685dba2a589870fcf1e6639f511932b2a051178
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7706499
Reviewed-by: Darryl James <dljames@chromium.org>
Commit-Queue: Tiago Vignatti <tvignatti@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1613640}
This function has been replaced with a more accurately named one,
`GetIndexOfExistingTabMatchingURL`, which has been declared in a
different header.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3d5e08bc7b5649ff297b7a4026224b1040328de5
commit 3d5e08bc7b5649ff297b7a4026224b1040328de5
Author: Jack Thiesen <jthiesen@chromium.org>
Date: Mon Apr 13 13:14:15 2026 -0700
Move Navigation Helpers to Shared Location
WML's Navigate() implementation relies on helpers inside of
singleton_tabs.h that are not strictly used for singleton tabs and are
not used by other code. This change updates these helpers to use
platform-agnostic abstractions and moves them to a location that allows
for easy sharing between platforms. New unit tests are added.
Bug: 469764907
Change-Id: I7f503ea505adc480037e363abe8534f38e7c8d7b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7747634
Commit-Queue: Jack Thiesen <jthiesen@chromium.org>
Reviewed-by: Elly <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1613927}
Chromium change:
https://chromium.googlesource.com/chromium/src.git/+/83dc1d0f04002ced129aeae4a63de7069b43cfba
commit 83dc1d0f04002ced129aeae4a63de7069b43cfba
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Tue Apr 7 23:06:31 2026 -0700
Disable reentrancy by default except for Android and iOS
Android and iOS needs more work but I need help from platform
expert as the readable stack isn't available.
(see crrev.com/c/7604991)
Include-Ci-Only-Tests: chromium.mac:mac15-x64-rel-tests|browser_tests
Bug: 40562847, 484371187
Chromium change:
https://chromium.googlesource.com/chromium/src.git/+/83dc1d0f04002ced129aeae4a63de7069b43cfba
commit 83dc1d0f04002ced129aeae4a63de7069b43cfba
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Tue Apr 7 23:06:31 2026 -0700
Disable reentrancy by default except for Android and iOS
Android and iOS needs more work but I need help from platform
expert as the readable stack isn't available.
(see crrev.com/c/7604991)
Include-Ci-Only-Tests: chromium.mac:mac15-x64-rel-tests|browser_tests
Bug: 40562847, 484371187