This command is a sibling to `reassign!`, in the sense that it also
creates a commit with a subcommand tag to guide a rebase event. In this
case though, the `drop!` indicates that a target commit is supposed to
be dropped during rebase.
Similar to `ressign!` handling, this type of pin can only be processed
with `--squash-minor-bumps`, and the target commit cannot be another
pinned commit.
This change is being implemented for rebase v2 only.
Bug: https://github.com/brave/brave-browser/issues/56150
This change updates the `update-xcode-toolchain` in brockit to work with
the index query we have now. This command will now maintain the several
task checks we have to do when bumping the toolchain.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR adds a hash constant to the Xcode toolchain script, similar to
how upstream `MAC_BINARIES_TAG` on their counterpart of this source.
With this change we check the hash sum when downloading the file to make
sure it matches the expected hash.
Prior to this change, the decision to download/extract a new SDK was
entirely based on the version of the SDK found in the destination path.
This has served us well, however is a weaker scheme for reproducibility
checks. With this change, it is being introduced a scheme, similar to
how this type of check is done in other places, where a sidecar file is
created based on the name of the toolchain to be downloaded, and that
sidecar file has a hashsum in it.
With this new verification scheme we can now detect accidental
overwrites of the toolchain, but we can also leave the door open to use
issue a new toolchain under a subversion in case of some emergency fix
for a toolchain file
Finally, this change also corrects a few things across this source that
are outdated, and do not conform to the python style guide currently
enforced in Chromium, in particular the naming convention that was being
used.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR adds a command to `brockit` to be used to update the Rust/WASM
toolchain. This command will take care of determining which version we
should be using, and going ahead and fetching whatever is available in
the bucket, based on the available indexes.
Bug: https://github.com/brave/brave-browser/issues/55812
This reverts commit 31ac5c1ba8.
This change had been introduced under the impression we did not make use
of the hermetic toolchain to build the iOS code, but that's not
accurate. This is a partial revert of the change disabling the hermetic
SDK during the iOS checkout.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR does some additional fixes to `install_extra_deps.py`, making it
more stable for use. The main things fixed in this change are:
* `DEPS` is now parsed as read-only, to avoid any unwanted
side-effects.
* `.vpython3` is being introduced `install_extra_deps.py`, as this
script is expected to be run in place.
* The script is being renamed to `install_extra_deps.py`, as this is
more self-descriptive.
The values committed now in the `EXTRA_DEPS` set are valid data.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR adds a new command to brockit, `brockit
gen-rust-wasm-toolchain`, which will be used to kick out a new toolchain
run across all platforms.
This is the first use of CI in `brockit`, but we potentially want this
type of thing for all toolchains, so further work will follow to make
this code more generic to other CI tasks.
This is a very experimental implementation.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR removes the exclusion of `README.md` from `.prettierignore`.
This exclusion was possibly meant to not alter the root `README.md`, but
it was also indiscriminately exclusing any `README.md` in subpaths.
With this change, we enable the auto format for all `README.md` files,
including the one in the root path, as there is no good reason not to.
Bug: N/A
This PR further improves the Xcode toolchain builder to be capable to
deploy an Xcode toolchain based on what the toolchain used by Chromium
upstream is using. This makes the toolchain we produce deterministic,
rather than the builder packing whatever is installed in the node.
The archives are confirmed using `xcodereleases.com`, and are pulled
from a local cache. The builder carries out the necessary sanity checks
to make sure we are using an Xcode version that is exactly what is
published in `xcodereleases.com`.
With this system, the builder deploys an Xcode install under
`/Applications`, keyed on the official build number,
`xcode_<build>.app`. This means that we can have multiple Xcode versions
deployed in a single node, if necessary. It is also the case that no
installation occurs if a version is already found in place.
Additionally, an index is also being introduced, to preserve the
relevant reproducibility details regarding any given SDK being packaged.
Bug: https://github.com/brave/brave-browser/issues/55812
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/03d0729142a7f3db6bc6a16d69de16832cf32320
commit 03d0729142a7f3db6bc6a16d69de16832cf32320
Author: James Leung <jamesleung@google.com>
Date: Thu May 14 22:43:43 2026 -0700
[voice_search] Keep voice search open during permission prompt
Modify the composebox voice search to remain active when an embedded
permission prompt is displayed. This prevents the voice search overlay
from timing out or closing while the user interacts with system access
requests. An observer must be added to communicate via mojo to the
frontend when the voice search should remain active.
Key changes include:
* Implemented `EmbeddedPermissionPromptObserver` to track the
lifecycle and bounds of the embedded permission prompt widget. When
it resizes, closes due to out of focus, or closes due to an option
being selected, it sends a mojo message (`OnEmbeddedPermissionPromptChanged`)
* Added a new Mojo method `OnEmbeddedPermissionPromptChanged`
to tell the frontend when the permission prompt is visible,
and the prompt's size
* Made page callback passed down to `cr-composebox-voice-search`. Also
made it protected instead of private.
* Updated `cr-composebox-voice-search` to listen for permission state
changes, effectively pausing the idle timer when the permission
prompt is visible.
screencast/cast/NTU0NDc5Mjc3MDQ3ODA4MHxiYzc3ZmYyYy1hNQ
NO_IFTTT=just rearranged and made existing property protected
It is known that it should be moved to mixin.
Bug: b:492201887
Change-Id: Ie85be91c7e2435bb519b7d5e92565674a1d5ffbf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7744441
Commit-Queue: James Leung <jamesleung@google.com>
Reviewed-by: Ananya Seelam <ananyaseelam@google.com>
Cr-Commit-Position: refs/heads/main@{#1631087}
This PR adds an experimental script to download the rust WASM toolchain
from the bucket. This script is generic enough to be used for other
things too (opengrep comes to mind).
This download script makes use of `gclient` machinery to solve the
condiontals for each branch. This is to mimick what one would have in a
DEPS file. At the moment, we cannot place the download relevant data in
the DEPS file though, and it is not clear if we ever will, but a CL has
been submitted to `depot_tools` to start a discussion:
https://chromium-review.googlesource.com/c/chromium/src/+/7881740
This PR also changes how the rust WASM builder packages the toolchain,
to match the paths where artifacts have to be deployed, so the extracing
tooling doesn't need to know anything about it.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR instroduces an index YAML file, that is both read, and updated,
when generating rust WASM toolchain archives. The goal here is two-fold:
* Provide some way for automation to be written that can query our
bucket to see if we have any toolchain published for the given
toolchain stem expected (OS/rust-version/clang-version/etc)
* Prevent accidental rewrite of previously published toolchains.
This is the first part of this work, as there is also the need to change
how we sync these toolchains as well in Brave, to make sure we also make
use of the hashsums for the toolchains, so we can detect and fail if a
toolchain has been silently overwritten.
This change also introduces the concept of a Brave subrevision. This is
necessary for cases where we do need to regenerate the toolchain, for
whatever good reason we may have. With the Brave sub-revision being
added to the toolchain naming scheme, it is possible to select the new
published toolchain as the new archive to be synced.
There will be a follow-up change on how Brave is pulling these
toolchains, but this means that with this new scheme, any rust toolchain
update will require a commit to `brave-core` to use the new toolchain.
This is the case in Chromium, and it should have also been the case for
us, to guarantee the reproducibility of our builds.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR runs `prettier`'s formatting for all markdown documents under
best practices. This ia completely mechanical change. Additionally, we
also update the claude `add-best-practice` skill to be aware of the
auto-formatter.
Bug: N/A
This bootstrap script will allows us to have a stable environment
across all bots runnning toolchain scripts.
The basics of this script is that we can chain it with the toolchain
ones, and it takes care that we have a valid `vpython` install to run
our tools on. It is possible to use both a url to download a script, or
to provide a local one.
This is being done to correct some of the issues we are having in CI
with python deps, but it will also permit us to come up with subrevision
schemes for toolchains that take into account the hashing of the
builder.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR disables the hook for downloading the Mac toolchain, that can be
only used by Google employees, as that hook own output was quit
confusing, as it preceeded our own hook being run.
We are also disabling downloading the hermetic toolchain for ios
checkouts. IOS builds do not use the hermetic tooolchain, and recently
we've run into significant issues in CI relating to that.
https://github.com/brave/brave-browser/issues/55812
This PR is part of a broader work to get the WASM build to use the build
tools it is expected to use: the ones provided as part of the Chromium
sync, the ones provided as hermetic if any, and the ones in the rust
wasm toolchain.
This change adds `llvm-lib.exe` to the rust wasm toolchain packaging, so
we can have a proper librarian on Windows, which will make the build gn
source simpler than if we use `lld-link.exe` as the AR.
Bug: https://github.com/brave/brave-browser/issues/55812
This PR corrects corrects a problem where our
`download_hermetic_xcode.py` script was diverging from the upstream one
by early returning whenever it confirmed that the toolchain had already
been downloaded and not trying to accept the license. This has been
causing issues in CI, where nodes being used for different branches,
with different SDKs, are not properly going over the necessary plist
updates that they should have done.
This PR corrects this aspect of the behaviour, but it also makes this
particular script more alinged with the upstream script itself.
This feature has been broken in brave, and because of that it was
disabled before with a build flag. In M149 that build flag doesn't
produce a coherent build anymore, so we fall back to overriding the
feature flag.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/dd6626cdd58e0ccd306599507de9a47e5a2573e9
commit dd6626cdd58e0ccd306599507de9a47e5a2573e9
Author: April Kallmeyer <ask@chromium.org>
Date: Fri Apr 24 15:25:16 2026 -0700
[PDF Ink Signatures] Call the new pdfViewerPrivate.getTextInfo() API
Pass the results of getTextInfo() to the backend on text annotation
commit and cache which fonts were already loaded.
Ink2Manager keeps track of the IDs previously sent and will not
repeatedly send the same font data to the backend to load, and it will
tell the getTextInfo() private API not to serialize the known fonts. The
backend is expected to save and reuse the font data from the frontend.
Bug: 408976049
Co-Authored-By: Lei Zhang <thestig@chromium.org>
Change-Id: Ifcfd99dcae3d05f5ce5d49f81130ccb9f0cdb731
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7728778
Commit-Queue: April Kallmeyer <ask@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1620509}
This is now just `extra_build_script_input_roots`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3197ca477e1f00cc6252cf79bb31c5bc87dc1a6d
commit 3197ca477e1f00cc6252cf79bb31c5bc87dc1a6d
Author: Lukasz Anforowicz <lukasza@chromium.org>
Date: Mon May 4 11:37:30 2026 -0700
[gnrt] Use `..._input_roots` for everything and remove `..._src_roots`.
This change avoids the following problems:
* Having to say `extra_input_roots = ['../data']` **and also**
`extra_src_roots = ['../data']` in `gnrt_config.toml` entries for
multiple ICU crates. The repetition was introduced because
`..._input_roots` ignores `.rs` files. But in both cases the
discovered files are exposed as GN `inputs` (not `sources`).
This was reported a while ago by @manishearth in chat, but I forgot to
open a bug and follow-up... :-(
* General confusion about how things work, which was encountered when
tweaking import of `zerocopy` for fuzzing. This was reported recently
and captured in https://crbug.com/508339800.
Before this change `extra_input_roots` wouldn't cover `.rs` files, so
the removal of `extra_src_roots` means that `extra_input_roots` has to
also cover `.rs` files after this change. This in turn means that we
need to explicitly list files one-by-one in
`build/rust/std/gnrt_config.toml` to avoid adding unnecessary `.rs`
files to the generated `BUILD.gn`. This is a bit unfortunate -
hopefully this will be fixed by adopting `glob` or a similar globbing
crate in a follow-up CL.
Tested by manually running the following tools (and including the
results in this CL):
* `tools/crates/run_gnrt.py gen`
* `tools/rust/gnrt_stdlib.py`
* `cargo test` and `cargo clippy` in `tools/rust/gnrt`
Bug: 508339800
Change-Id: I4db48ca9f5f215a3b5daaa42e9fd4df9e2c122b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7810294
Reviewed-by: Devon Loehr <dloehr@google.com>
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1624842}
These changes have been automatically picked up on by `gnrt gen`.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/36a5776a2fefd795a20d7f95a5f0eb64dd9ff75b
commit 36a5776a2fefd795a20d7f95a5f0eb64dd9ff75b
Author: Lukasz Anforowicz <lukasza@chromium.org>
Date: Mon May 4 15:09:18 2026 -0700
[gnrt] Allow wildcards and any file extension in `extra_input_roots`.
Rather than allowlisting extensions one-by-one, let's add support for
wildcards and let `gnrt_config.toml` pick which extensions to cover.
Other changes in this CL:
* It turned out that before this CL `extra_input_roots` was ignored for
"binary" crates (and only taken into account for "library" crates)
* Stop automatically enumerating non-`.rs` files under `src/`. This
was somewhat okay when only allowlisted extensions were included, but
would result in lots of extra files after this CL. (And also, this
removes some unneeded `BUILD.gn` entries here and there.)
* Globbing means that we no longer need to manually match extensions
in `fn collect_crate_file` so this function has been inlined
and refactored away.
Tested by manually running the following tools (and including the
results in this CL):
* `tools/crates/run_gnrt.py gen`
* `tools/rust/gnrt_stdlib.py`
* `cargo test` and `cargo clippy` in `tools/rust/gnrt`
Bug: 508339800
Change-Id: Ieb6b0d7205b407f921272bf5ad7c7bc54f355f32
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7809525
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: Devon Loehr <dloehr@google.com>
Cr-Commit-Position: refs/heads/main@{#1624964}
This change is functionally the same, as it merely changes how the
underlying values are read from the new argument.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ee42da3af8311556b84afb3dc2ff9bc0ca75b7b
commit 5ee42da3af8311556b84afb3dc2ff9bc0ca75b7b
Author: Chris Staite <christopher.staite@menlosecurity.com>
Date: Fri May 1 01:49:25 2026 -0700
Use GlobalRenderFrameHostId in speech recognition
Update `SpeechRecognitionSessionContext` and associated manager
delegates to use `content::GlobalRenderFrameHostId` instead of passing
`render_process_id` and `render_frame_id` as separate integer values.
This also applies to embedder frame IDs, which are now represented by
`embedder_global_id`.
This refactoring simplifies method signatures across the speech
recognition API, including `SpeechRecognitionManagerImpl` and
`OnDeviceSpeechRecognitionEngine`, reducing the risk of mismatched IDs
and improving overall code clarity when identifying render frames.
Bug: 379869738
Change-Id: I0bbf3f026b98428b706f2777ce327030e675720d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7805227
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Commit-Queue: Christopher Staite <christopher.staite@menlosecurity.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1623755}
This change corrects the inclusion of this header everywhere, but it
also fixes one of the patches that were broken recently due to this
change.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/42937e4ba2e5d383daf6f0e057f5fe530ac1a451
commit 42937e4ba2e5d383daf6f0e057f5fe530ac1a451
Author: Andrew Grieve <agrieve@chromium.org>
Date: Fri May 1 06:38:05 2026 -0700
Initial prototype of WebUI NTP for Android
It only barely works, but sets the groundwork so that we can iterate
on the missing / broken functionality.
All changes are guarded behind GN arg: enable_webui_ntp, and also
behind a runtime flag: --use-webui-ntp.
This does not remove the native NTP, but instead navigates to:
chrome://new-tab-page/
instead of:
chrome-native://newtab/
Bug: b:502297163
Bypass-Check-License: Moved file
Change-Id: If5e535793fa20f67d8897aee2d6bf55e95af2fce
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7773408
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Owners-Override: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1623798}
A few classes are being affected by these changes but they are mostly
incosequential overall.
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}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/a7ea861d95f70515cbddad5ea07b29ba144f5659
commit a7ea861d95f70515cbddad5ea07b29ba144f5659
Author: Foromo Daniel Soromou <koretadaniel@chromium.org>
Date: Thu Apr 30 08:15:42 2026 -0700
Extract browser navigator into a separate build target
NOTE: This change is trivial and do not change any behavior.
Extract the browser navigator code and its associated parameters from
the monolithic `chrome/browser/ui` build target into a dedicated
`chrome/browser/ui/navigator` directory and build configuration.
This refactoring establishes a new standalone build file containing
dedicated source sets for the navigator component. Consequently, the
`browser_navigator_params_headers` source set and related source files
are removed from `chrome/browser/ui/BUILD.gn`.
Numerous build files across the `chrome/browser` directory are updated
to replace the old dependency with the new
`//chrome/browser/ui/navigator` target. This modularization decouples UI
components, streamlines dependency management, and improves overall
build structure.
A follow up CL will move the files under c/b/ui/navigator and rename the
include places.
Bug: none
Change-Id: I65c10afadfb1dc3857a3714cdbce6d06201633ab
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7803848
Reviewed-by: Dana Fried <dfried@chromium.org>
Reviewed-by: Kaan Alsan <alsan@chromium.org>
Commit-Queue: Foromo Daniel Soromou <koretadaniel@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1623210}
This change drops the use of `contents_height_side_panel_` in favour of
`toolbar_height_side_panel_`. It all changes our interface for
`SidePanel` to match the changes in upstream for how `SidePanelType` is
passed around.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/32daa3e6986fa59dc7adeca3104b17b0a0b63f63
commit 32daa3e6986fa59dc7adeca3104b17b0a0b63f63
Author: Caroline Rising <corising@chromium.org>
Date: Wed Apr 29 11:37:34 2026 -0700
[Side panel] Make all side panels use the toolbar height side panel view.
This removes usage of the content height side panel view and makes the
toolbar height side panel layout according to the current feature's
SidePanelType. This also removes all no unnecessary uses of
SidePanelType as a param for various side panel accessors.
In a followup we will rename the toolbar height side panel.
Bug: 505775465, 505776523
Change-Id: I5fd80c00064621250619cf4b3c9df326f4bc2ea7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7789262
Commit-Queue: Caroline Rising <corising@chromium.org>
Reviewed-by: Dana Fried <dfried@chromium.org>
Reviewed-by: Eshwar Stalin <estalin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1622601}
This change reduces the use of shadow files for this customisation. In
particular, the replacements required an extra function to be overriden
to correct the replacements in the body of the source.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d959d50e90e94ec50892c3244c70cbac15e93c55
commit d959d50e90e94ec50892c3244c70cbac15e93c55
Author: Anton Bershanskyi <bershanskyi@gmail.com>
Date: Tue Apr 28 12:47:00 2026 -0700
[Extensions] Move manifest_url_handlers.{h,cc}
Rename extensions/common/manifest_url_handlers.{h,cc} to
extensions/common/manifest_handlers/manifest_url_handlers.{h,cc}.
This commit was generated automatically by the script tool
tools/git/move_source_file.py.
Bug: 324534603
Bypass-Check-License: Files moved, not created.
Change-Id: Ia8c401b4075b0737a38ccd6074177e404c2043f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7747370
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Anton Bershanskyi <bershanskyi@gmail.com>
Cr-Commit-Position: refs/heads/main@{#1621973}
Follow up to:
commit 72f140e852
Author: Claudio DeSouza <cdesouza@brave.com>
Date: Wed Oct 11 17:42:49 2023 +0100
`FindBrowserWithWebContents` renamed upstream
This is a simple function rename with no other effects.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/82d9bb0f98d7c88a1b2af2e267cf36125fba17c6
commit 82d9bb0f98d7c88a1b2af2e267cf36125fba17c6
Author: Avi Drissman <avi@chromium.org>
Date: Mon Oct 9 21:05:45 2023 +0000
Rename FindBrowserWithWebContents to FindBrowserWithTab
"WebContents" hasn't been synonymous with "tab" since the content
split. It's confusing to have a function that says it finds a browser
by "web contents" yet only looks at the tabs.
Rename the function so that its name accurately reflects its function.
Bug: none
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}
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}
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/+/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}
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}
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}
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}
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}
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}
All the fixes in this change are cases where we are converting a
property to a function as more appropriate.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/9d25d0387044e57a67892521a2863a87c31b9cc9
commit 9d25d0387044e57a67892521a2863a87c31b9cc9
Author: rbpotter <rbpotter@chromium.org>
Date: Thu Apr 9 23:38:18 2026 -0700
WebUI: Validate that properties referenced in Lit template are reactive
Adding an automated check to ensure that if a class property
"this.someProp" is referenced in the HTML template, it is also properly
declared as a reactive property so that Lit will re-render the element
correctly when it changes.
Bug: 500066216
Change-Id: Ieb9989fc672d03cb2b20f2bd43301a688b42f270
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7731479
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1612640}