This change reruns the plasters, and adds an update to the call for the
constructor of `DeviceInfo` to pass the newly added argument.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/390ff11a3d7dee78459be3ad5a0f7ca614700bd7
commit 390ff11a3d7dee78459be3ad5a0f7ca614700bd7
Author: Theodore Olsauskas-Warren <sauski@google.com>
Date: Fri Apr 24 12:04:14 2026 -0700
[GLIC] Include experimental_triggering opt-in state in DeviceInfo
A new function which represents the combination of GLIC FRE +
Actuation + Experimental actuation is added to GlicEnabling, and
the value is included in the DeviceInfo FeatureSpecificFields.
Many test call sites which construct a DeviceInfo object are updated,
and given we are updating these sites anyway, the singular default
value for MobilePromoOnDesktopPromoTypeSet in the DeviceInfo
constructor is removed and call sites updated.
Bug: b:505510293
Change-Id: I3943e1eddf83ae6d431cc62b8446876c1bd35105
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7783606
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Commit-Queue: Theodore Olsauskas-Warren <sauski@google.com>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1620378}
All the code relating to this is gone in upstream, so it is also removed
in Brave.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/4e272219dcf3ae5ed3d110e01741ec2ae07b13f4
commit 4e272219dcf3ae5ed3d110e01741ec2ae07b13f4
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Fri Apr 24 13:19:00 2026 -0700
Remove UseWebUITabStrip(), kUseWebUITabStrip flag
This removes the UseWebUITabStrip function, kUseWebUITabStrip feature
flags and simplifies the surrounding logic since it's no longer used.
There are still other code/files specific to WebUITabStri, and they'll
be removed in separate CLs.
Bug: 421465978
Change-Id: I2278ec267fcd3cc7e5b2006bcafba9ee67525686
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7787148
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1620421}
This PR fixes the plaster for `PageActionPerActionMetricsRecorder`,
which has to use the new `PageActionMetricsRecorder`. This PR also
improves the plaster to disable any `Record` functions in this class, so
we can notified when new ones are added.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/42d106dd97f5729ff8ccf50171f3dc87798d76d8
commit 42d106dd97f5729ff8ccf50171f3dc87798d76d8
Author: Kaan Alsan <alsan@chromium.org>
Date: Fri Apr 24 14:29:50 2026 -0700
Consolidate PageAction Metrics Recording using ScopedMultiSourceObservation
This CL transitions the PageAction metrics recording system from
multiple ScopedObservation-based recorders to a single
PageActionMetricsRecorder using ScopedMultiSourceObservation.
Previously, we had count(page actions) * count(tabs) metrics recorder
objects, which duplicated GURLs and created many individual scoped
observations. This CL improves efficiency by sharing navigation state
across all actions in a tab and reducing the total number of
observations. With local profiling (with debug parameters on), this
saves ~100KB per tab, with 31 page actions enabled.
Key changes:
- Merged per-action and page-level metrics logic into a unified
PageActionMetricsRecorder.
- Updated PageActionModelInterface to include GetActionId() for
identification in the consolidated recorder.
- Refactored PageActionControllerImpl to manage the unified recorder.
- Deleted the redundant PageActionPageMetricsRecorder.
- Updated unit tests and test support classes to align with the new
architecture.
Bug: 384074251
Change-Id: I1aeb2205b4d36de3af68d70404ce459babf1dbef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7790756
Commit-Queue: Kaan Alsan <alsan@chromium.org>
Reviewed-by: Foromo Daniel Soromou <koretadaniel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1620471}
Otherwise there is an error:
../../brave/chromium_src/components/password_manager/core/browser/password_store_factory_util.cc:18:5: error: unknown type name 'PrefService'
18 | PrefService* prefs) {
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/37a52a3a3a7babdf79058424bae296faa5b4a61e
commit 37a52a3a3a7babdf79058424bae296faa5b4a61e
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date: Wed Sep 3 11:17:38 2025 -0700
Unify Create{Profile,Account}PasswordStoreBackend() into 1 function
After recent changes, they are almost the same and can share code.
Also:
- IWYU.
- Emit a TRACE_EVENT for the creation of the account store backend,
not just the profile one.
- Remove IsAccountStore parameter from PasswordStoreAndroidBackend,
it was always IsAccountStore(true)
- Changes in the store factories:
* Reduce vertical space, some of these functions look a lot bigger
than they need to be.
* "ProfilePasswordStore", not "PasswordStore".
* Consistently add DependsOn() for the affiliation service factory.
I think in practice this isn't needed today because the
AffiliatedMatchHelper is destroyed on Shutdown() [1], ahead of the
destructor. But that could easily change. The new code is also
more consistent (before the change, some factories listed the
dependency and others didn't).
[1] https://source.chromium.org/chromium/chromium/src/+/main:components/password_manager/core/browser/password_store/password_store.cc;l=430;drc=391e98eeaee80326c3a9d9e9dd731570dba0981a
Bug: None
Change-Id: Iabccc1284135d8de0e80898da80f0e145cd3a1c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6909469
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Ioana Pandele <ioanap@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1510417}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c66e45550985e3570e1cf181df0ec749ab3d80f6
commit c66e45550985e3570e1cf181df0ec749ab3d80f6
Author: Yanting Yu <yyanting@google.com>
Date: Tue Apr 21 12:43:23 2026 -0700
[LogoRefactor] Branch to LegacyLogoView and introduce feature flag.
This CL branches the current LogoView implementation into LegacyLogoView
to ensure the existing functionality remains intact while we restructure
the new LogoView in the follow up CL.
Changes include:
- Branched LogoView, LogoViewBinder, layout XMLs, and corresponding unit tests into LegacyLogoView equivalents.
- Added the ChromeFeatureList.LOGO_VIEW_REFACTOR feature flag in LogoCoordinator to dynamically switch between inflating the LogoView and the LegacyLogoView.
- Extracted the ClickHandler interface from LogoView into LogoProperties to serve as a shared, domain-specific contract. This cleanly decouples the two views, allowing them to be fully independent while still being driven by the same PropertyModel and LogoMediator.
- Updated new_tab_page_layout.xml to replace the `logo_holder` FrameLayout with ViewStub.
Bug: 492453183
Change-Id: Id0ef80f8acab9c2d15928020eb3688bd9f2afc33
Bypass-Check-License: branched files
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7760153
Commit-Queue: Yanting Yu <yyanting@google.com>
Reviewed-by: Xi Han <hanxi@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1618376}
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/1917c17d0ad2fdc3e994a9aefd254b8db7bbe457
commit 1917c17d0ad2fdc3e994a9aefd254b8db7bbe457
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Wed Apr 22 19:42:38 2026 -0700
OOR-CORS: Enforce extra forbidden Sec- header checks
This CL adds a new function ContainsForbiddenSecurityHeader in
header_util to check for unauthorized Sec- headers from renderer.
This function is used in both CorsURLLoaderFactory::IsValidRequest and
CorsURLLoader::FollowRedirect to prevent renderer from injecting or
modifying these headers, while permitting Client Hints and Sec-Purpose.
Change-Id: Ia2923ccbddddba2657d72916a03e657c1785cd85
Bug: 494800494
A new member `engine_count()` serves the same purpose.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0bd93729174039f678c71990a698215207d985b5
commit 0bd93729174039f678c71990a698215207d985b5
Author: Amelie Schneider <amelies@google.com>
Date: Thu Apr 23 08:29:23 2026 -0700
[Search] Remove unused TemplateURLTableModel functions
The experiment `SearchSettingsUpdate` included a refactoring to stop
using the table model for accessing the template URL service but
accessing it directly through the keyword controller instead. Some
functions are already unused and can be removed, the
TemplateURLTableModel as a whole should be removed once the flag is
launched.
This also excludes KeywordEditorController for Android, since it is not
used there.
Bug: 498543733, 490316630
Change-Id: Ie7ab74e7eece7485c85a678b89a48f1cb15a9a94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7768616
Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org>
Commit-Queue: Amelie Schneider <amelies@google.com>
Cr-Commit-Position: refs/heads/main@{#1619543}
This changes the constructor calls, and this change corrects that. For
the only use of `PermissionDescriptor` in the constructor, a default
constructor is being used because there is no blink value for the
permission name for `RequestType::kBraveOpenAIChat`, so we set that
separately.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/35ad82c9803604df82915104d4d062cd851214f7
commit 35ad82c9803604df82915104d4d062cd851214f7
Author: Antonio Sartori <antoniosartori@chromium.org>
Date: Thu Apr 23 10:37:35 2026 -0700
[permissions] Refactor PermissionRequestData
This CL refactors PermissionRequestData so that it becomes again a
data-only struct (which can be e.g. cloned) by removing the
PermissionResolver member. This allows simplifying
GeolocationPermissionContextAndroid, where we don't need to recreate
fake PermissionRequestData for the callbacks anymore.
The refactoring unfortunately implies adapting all callsites, which
however become more natural as they don't need to instantiate a
PermissionResolver anymore.
R=hempjudith@google.com
Change-Id: Ib7883e9f7cac32ef4039ce3098275ad9018f47d3
Bug: 443898320
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7780845
Commit-Queue: Antonio Sartori <antoniosartori@chromium.org>
Reviewed-by: Javier Fernandez <jfernandez@igalia.com>
Reviewed-by: Judith Hemp <hempjudith@google.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1619624}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ee2afaf87b258f0f692c32d17866114a996eb66
commit 5ee2afaf87b258f0f692c32d17866114a996eb66
Author: Zhe Li <zheliooo@google.com>
Date: Mon Apr 20 13:08:32 2026 -0700
[TabFavicon] Do not fallback to host for tab switcher and tab strip
- Guarded behind feature flag sFaviconDisableHostFallback.
- Sets `fallbackToHost = false` in LayerTitleCache.java and TabListFaviconProvider.java when feature is enabled.
- Default `fallbackToHost = true` for all the other callsites.
- Added histograms Favicons.AndroidHostFallbackFetchResult.* in favicon_helper.cc
Bug: 468979189
Change-Id: I5574adf85647c1d5205889dddc2bc42bfba35305
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7745223
Reviewed-by: Theresa Wellington <twellington@chromium.org>
Commit-Queue: Zhe Li <zheliooo@google.com>
Auto-Submit: Zhe Li <zheliooo@google.com>
Cr-Commit-Position: refs/heads/main@{#1617726}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/92e1d0754efe156568908375462e8e1e774727ee
commit 92e1d0754efe156568908375462e8e1e774727ee
Author: Russ Hamilton <behamilton@google.com>
Date: Wed Apr 22 13:48:50 2026 -0700
Implement WebUIAvatarToolbarButton stub
This commit implements the WebUIAvatarToolbarButton C++ class, which
serves as the backend for the WebUI-based avatar button. It is wired
into WebUIToolbarWebView and ToolbarView, although Mojo communication is
not yet established.
Specifically:
- Added WebUIAvatarToolbarButton class in chrome/browser/ui/views/toolbar/
- Updated WebUIToolbarWebView to own and provide WebUIAvatarToolbarButton.
- Updated ToolbarView to use WebUIToolbarWebView's avatar toolbar button
when the kWebUIAvatarButton feature is enabled.
Bug: 470045174
Change-Id: I8a6d676efb8821841f30615c096b01ab3c927db0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7685013
Reviewed-by: Maks Orlovich <morlovich@chromium.org>
Commit-Queue: Russ Hamilton <behamilton@google.com>
Reviewed-by: Caroline Rising <corising@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1619066}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/94c8534414d7e52827cc07353185709210aa98e8
commit 94c8534414d7e52827cc07353185709210aa98e8
Author: Erik Chen <erikchen@chromium.org>
Date: Wed Apr 22 11:38:16 2026 -0700
Modularize //chrome/browser/lifetime
Extracts the `lifetime` sources (application_lifetime, browser_shutdown,
browser_close_manager, restartability_monitor, etc.) out of the
monolithic `//chrome/browser` target into dedicated
`//chrome/browser/lifetime:lifetime` (public headers) and
`//chrome/browser/lifetime:impl` targets. Platform-specific sources
(android, chromeos, mac, aura) are conditionally included via the new
BUILD.gn rules. All downstream BUILD.gn files that previously relied on
the bundled target now declare an explicit dep on
`//chrome/browser/lifetime`. A circular-dep note is preserved explaining
why `:impl` still has to live under `//chrome/browser` and
`//chrome/browser/ui`.
AGENT_GENERATED_CL
Bug: 353332589
Change-Id: I9235a54772bc0941e313dba3e0f7eec495ab1ae0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7786609
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1618994}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/24cc34c57c5013cf7e27d1c9319cd506770b6477
commit 24cc34c57c5013cf7e27d1c9319cd506770b6477
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date: Tue Apr 21 05:19:50 2026 -0700
[sync/android] Remove getSetupInProgressHandle()
There was only one remaining call. It was originally added for the
"advanced sync setup" flow, to ensure sync only started after the user
confirmed data type settings (thus preventing an irreversible upload
of unwanted data). That flow doesn't exist anymore, since existing data
is not uploaded when the user signs in. So the call is removed.
Strictly speaking, there is a chance this changes behavior, as the
call was done for both syncing and signed-in users. But if that's the
case, it's a bug to be fixed separately. Notice this function doesn't
exist on iOS anymore.
Bug: 40066949
Change-Id: I6aacd39823972c5bc1b7181a9f1a52f57a62eba2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7771958
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Mahmoud Rashad <mmrashad@google.com>
Cr-Commit-Position: refs/heads/main@{#1618071}
Browser doesn't inherit from `ChromeWebModalDialogManagerDelegate`
anymore. This change fixes our code by directly patching
`ChromeWebModalDialogManagerDelegate` to have an override for this
method.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/083c2a8b08fff93b74aac4f4acd89c5d1fb206ea
commit 083c2a8b08fff93b74aac4f4acd89c5d1fb206ea
Author: Qikai <qikaizhong@microsoft.com>
Date: Tue Apr 21 22:53:26 2026 -0700
[bedrock] Move ChromeWebModalDialogManagerDelegate to BrowserWindowFeatures
Extract ChromeWebModalDialogManagerDelegate from Browser into a new
BrowserWindowModalDialogDelegate owned by BrowserWindowFeatures. The
new class manages per-tab WebContentsModalDialogManager delegate
registration via TabStripModelObserver and handles tab blocking,
fullscreen exit, and dialog host lookup.
Browser retains a thin SetWebContentsBlocked() override for
DesktopBrowserWindowCapabilitiesDelegate, forwarding to the feature.
DevTools scrim visibility uses a callback pattern subscribed by
BrowserView.
Bug: 496674143
Change-Id: Ia8aea00b733e113c5ca9e9e79d28a37061eb8ced
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7738543
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Commit-Queue: Qikai Zhong <qikaizhong@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#1618668}
Our infobar is not ready for this flag to be turned on.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/e6f05260cfb28bdb2219f4b30e6d5ff9ddb2aab6
commit e6f05260cfb28bdb2219f4b30e6d5ff9ddb2aab6
Author: Foromo Daniel Soromou <koretadaniel@chromium.org>
Date: Mon Apr 20 15:07:25 2026 -0700
Enable infobar refresh and prioritization by default
Update the `kInfobarRefresh` and `kInfobarPrioritization` feature flags
to be enabled by default. This rolls out the refreshed infobar UI and
the associated prioritization logic as the standard behavior.
Fixed: 447176374
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ee2afaf87b258f0f692c32d17866114a996eb66
commit 5ee2afaf87b258f0f692c32d17866114a996eb66
Author: Zhe Li <zheliooo@google.com>
Date: Mon Apr 20 13:08:32 2026 -0700
[TabFavicon] Do not fallback to host for tab switcher and tab strip
- Guarded behind feature flag sFaviconDisableHostFallback.
- Sets `fallbackToHost = false` in LayerTitleCache.java and TabListFaviconProvider.java when feature is enabled.
- Default `fallbackToHost = true` for all the other callsites.
- Added histograms Favicons.AndroidHostFallbackFetchResult.* in favicon_helper.cc
Bug: 468979189
Change-Id: I5574adf85647c1d5205889dddc2bc42bfba35305
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7745223
Reviewed-by: Theresa Wellington <twellington@chromium.org>
Commit-Queue: Zhe Li <zheliooo@google.com>
Auto-Submit: Zhe Li <zheliooo@google.com>
Cr-Commit-Position: refs/heads/main@{#1617726}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/29684164c168bf8ed4f099183c0d924c0e015a48
commit 29684164c168bf8ed4f099183c0d924c0e015a48
Author: Erik Chen <erikchen@chromium.org>
Date: Tue Apr 21 12:02:21 2026 -0700
Modularize //chrome/browser/metrics
This CL refactors the build graph for `chrome/browser/metrics` by moving
its sources out of the top-level `//chrome/browser` static library into
dedicated `source_set("metrics")` (public headers) and
`source_set("impl")` targets within `chrome/browser/metrics/BUILD.gn`.
Consumer `BUILD.gn` files across the tree are updated to depend directly
on `//chrome/browser/metrics`, and a parallel split is applied to
`chrome/browser/updates`. A few `#include` lines gain `// nogncheck`
annotations and one forward-declaration of
`glic::GlicSyntheticTrialManager` replaces a header include to break a
dep cycle. No functional code changes.
AGENT_GENERATED_CL
Bug: 353332589
Change-Id: I1f549eb8cf92bcf0074946706625f46f27f0fb93
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7777321
Commit-Queue: Erik Chen <erikchen@chromium.org>
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1618360}
The brave version of this class was using this observer, but now that
base class has introduced it, we can just rely on that.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/68cc838450946381bec6c1c777ede5494715f608
commit 68cc838450946381bec6c1c777ede5494715f608
Author: Foromo Daniel Soromou <koretadaniel@chromium.org>
Date: Tue Apr 21 08:04:31 2026 -0700
[Side Panel] Fix dangling WebContents pointer in ReadingListPageHandler
This patch resolves a dangling pointer issue in ReadingListPageHandler
by replacing the `DanglingUntriaged` raw pointer to
`content::WebContents` with a `base::WeakPtr<content::WebContents>`.
Because `WebContents` can be destroyed before the
`ReadingListPageHandler` (e.g., during teardown), accessing the dangling
raw pointer could lead to Use-After-Free (UAF) bugs . Null checks have
been added to safely return early in cases where `web_contents_` has
already been invalidated.
Bug: 490505884
Change-Id: I411121440d26ee770a775eda6d564ea56a385dbf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7775987
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Commit-Queue: Foromo Daniel Soromou <koretadaniel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1618202}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/707451f29b5a5a281bce186698ebe50f7ed4d46e
commit 707451f29b5a5a281bce186698ebe50f7ed4d46e
Author: Russ Hamilton <behamilton@google.com>
Date: Tue Apr 21 12:31:01 2026 -0700
[AvatarButton] Refactor logic into AvatarToolbarButtonStateManager
This refactor moves significant business logic and state management
out of AvatarToolbarButton and into AvatarToolbarButtonStateManager.
The StateManager now serves as the central dispatcher for button
events and manages both internal state transitions and external
observers.
Key changes:
- Moved signin::IdentityManager observation to StateManager.
- Moved IPH (In-Product Help) trigger logic to StateManager.
- Moved accessibility label calculation logic.
- Relocated and consolidated AvatarToolbarButtonInterface::Observer
management in the StateManager.
- Introduced initialization and update guards to prevent race
conditions and recursion.
- Relocated global settings (g_iph_min_delay_after_creation) to the
StateManager.
This continues the effort to simplify the view implementation and
prepare for a shared logic layer between Views and future WebUI
components.
Bug: 470045174
Change-Id: I80ced74336cdc6d05fb65279d803e94aaeb9160d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7771034
Auto-Submit: Russ Hamilton <behamilton@google.com>
Commit-Queue: Russ Hamilton <behamilton@google.com>
Reviewed-by: Dana Fried <dfried@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1618372}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/03702156827220b6df76964a262caf312e8fa0f4
commit 03702156827220b6df76964a262caf312e8fa0f4
Author: Keybo Qian <keybo@google.com>
Date: Fri Apr 17 12:00:06 2026 -0700
Modularize //chrome/browser/first_run
Extract the `first_run` feature out of the monolithic `//chrome/browser`
and `//chrome/test` targets into its own dedicated `BUILD.gn` file.
- Extracts prod code, `unit_tests`, and `browser_tests` into
`//chrome/browser/first_run/BUILD.gn`.
- Adds a `DEPS` file to enforce strict dependency boundaries.
- Extracts `scoped_relaunch_chrome_browser_override` to a `test_support`
target.
- Guards `browser_tests` with `!is_android` to fix compile failures.
- Adds temporary circular include exceptions to unblock the extraction.
This refactoring is part of the ongoing effort to break down the Chrome
browser monolith, which helps improve build times, enforces stricter
dependency boundaries, and makes the codebase easier to maintain.
Cq-Include-Trybots: luci.chromium.try:android-cast-arm-rel
Bug: 500390199
Change-Id: I2d62edb19cfe1b1f241e21fe31e9cae7df974e8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763734
Reviewed-by: Dana Fried <dfried@chromium.org>
Auto-Submit: Keybo Qian <keybo@google.com>
Commit-Queue: Keybo Qian <keybo@google.com>
Cr-Commit-Position: refs/heads/main@{#1616736}
This change fixes the replacement of this constant, which would require
a patch from now on, so now it is managed by a plaster.
`AskBeforeHttpDialogController::HasOpenDialogWidget` also got renamed.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/b09b2ab7d59f05f8ec5342a75c830731e31fcdf1
commit b09b2ab7d59f05f8ec5342a75c830731e31fcdf1
Author: Chris Thompson <cthomp@chromium.org>
Date: Mon Apr 20 13:07:57 2026 -0700
[ABH] Port Ask-before-HTTP dialog to Android
This ports the Ask-before-HTTP warning dialog to Android and adds
Android UI test coverage in AskBeforeHttpDialogTest.
ModalDialogWrapper is updated to plumb the dismissal cause back to the
native side so the dialog controller can differentiate between a user
explicitly dismissing the dialog (e.g., via the back button) versus the
tab disappearing for other reasons (e.g., tab switching). The
AskBeforeHttpDialogController is also updated to observe WebContents
visibility to handle dialog restoration after tab switching on Android
(to match the Desktop behavior where the tab modal is "sticky" to the
tab even when it goes to the background).
NO_IFTTT=intentional renaming inside blocks
Bug: 351990829
Change-Id: Ia95068e5c69762eae26ab9cc137b1f06e05d6a48
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7753961
Reviewed-by: Mustafa Emre Acer <meacer@chromium.org>
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Jack Thiesen <jthiesen@chromium.org>
Commit-Queue: Chris Thompson <cthomp@chromium.org>
Reviewed-by: Alison Gale <agale@chromium.org>
Auto-Submit: Chris Thompson <cthomp@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1617725}
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}