Commit Graph
78501 Commits
Author SHA1 Message Date
Claudio DeSouza e93939d1dd Update patches from Chromium 148.0.7778.179 to Chromium 149.0.7827.14. 2026-05-22 16:57:42 -04:00
Kyle Hickinson 453caf3ce6 [cr149][iOS] Mark CWVWebViewConfiguration.preferences as unavailable
Removes the `NOTREACHED` in `-[CWVWebViewConfiguration preferences]` that is hit in some new `CWVWebView` code, the `NOTREACHED` was originally to avoid developer error in accessing it from Swift, but we can instead just mark it as unavailable with `NS_UNAVAILABLE` to avoid that possibility instead and allow the Obj-C side to just coalesce on null.

Chromium change:

commit 29b0e7808c42609ad6a816161d65acc6d2b46841
Author: Anuj Kumar <anujbh@google.com>
Date:   Fri Apr 17 15:27:16 2026 -0700

    [ios/web_view] Add triggerNonFatalCheck to CWVPreferences

    Adds a new non-persistent, in-memory property 'triggerNonFatalCheck'
    to CWVPreferences. When enabled, it triggers a non-fatal CHECK during
    CWVWebView initialization to facilitate integration testing of
    non-fatal checks by CWV clients.

    Note: All code added in this CL is temporary for release integration
    testing and will be reverted after testing in the stable channel
    concludes.

    The CHECK is implemented as:
    CHECK(false, base::NotFatalUntil::M235); with a distant launch
    milestone to ensure cleanup occurs before it becomes fatal.

    Bug: 503005516
    Change-Id: Ifea699ed37f2760bcc80cc49a71968075c2ad148
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7751665
    Reviewed-by: Justin Cohen <justincohen@google.com>
    Commit-Queue: Anuj Kumar <anujbh@google.com>
    Reviewed-by: John Wu <jzw@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616907}
2026-05-22 16:57:42 -04:00
Kyle Hickinson 18c2b9591b [cr149][iOS] Bump minimum deployment target to iOS 18 in Xcode project
commit f870b7893adc664604830556d59f4e5c615805f1
Author: Daniel White <danieltwhite@google.com>
Date:   Fri Apr 10 07:24:27 2026 -0700

    [iOS] Bumping the minimum deployment target to iOS 18

    In this CL, the minimum version a user needs to be running to use the
    application was raised to iOS 18.

    Bug: 469423473
    Change-Id: I0caa6d7e8b332411144355ff7b8980f0fa155caf
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7559054
    Reviewed-by: Rohit Rao <rohitrao@chromium.org>
    Commit-Queue: Daniel White <danieltwhite@google.com>
    Cr-Commit-Position: refs/heads/main@{#1612847}
2026-05-22 16:57:41 -04:00
Max Karolinskiy adb657387d [cr149] Disable features flagged by security/privacy team 2026-05-22 16:57:41 -04:00
Artem Samoilenko 57a5729ae8 [cr149][Android] Fix for media notification icon
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/9ab824fa9271d9281b735132c9a8b32e1cc75db8

commit 9ab824fa9271d9281b735132c9a8b32e1cc75db8
Author: Tommy Steimel <steimel@chromium.org>
Date:   Wed Apr 22 16:27:14 2026 -0700

    [Android Media Notification] Use Chrome icon instead of sound icon

    The Android media notification icon we use is a sound icon, which looks
    like it's an interactive button that can mute the playback. This CL
    changes the icon to be a Chrome icon instead.

    Bug: 505004595
    Change-Id: I55a48173466bde0004f43d47ba1662e11c711b1a
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7786539
    Commit-Queue: Tommy Steimel <steimel@chromium.org>
    Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1619176}
2026-05-22 16:57:41 -04:00
Artem Samoilenko 0940bd89b3 [cr149][Android] Changes for IntentHandler url check
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/dc0cbb23186619c18fe1f99fb0640c52a92191d1

commit dc0cbb23186619c18fe1f99fb0640c52a92191d1
Author: Ryo Hashimoto <hashimoto@google.com>
Date:   Mon Apr 27 23:04:18 2026 -0700

    android: Use startup::ValidateUrl()

    To make Android Chrome consistent with Chrome on other platforms.

    - Move startup::ValidateUrl() to a separate file.
    - Modify startup::ValidateUrl() to allow content URLs.
    - Use startup::ValidateUrl() in IntentHandler.

    BUG=499123715

    Change-Id: Ibe71f406c5ea5e4393cacd497eb0f124fe4f0b84
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7728623
    Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
    Reviewed-by: Avi Drissman <avi@chromium.org>
    Commit-Queue: Ryo Hashimoto <hashimoto@chromium.org>
    Reviewed-by: Nicolas Ouellet-Payeur <nicolaso@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1621560}
2026-05-22 16:57:41 -04:00
Artem Samoilenko 4e8d2d0b91 [cr149][Android] Changes for TabbedAdaptiveToolbarBehavior
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3ec47adc3d22fed19f51e0f239bdcdfb57fe5b86

commit 3ec47adc3d22fed19f51e0f239bdcdfb57fe5b86
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date:   Wed May 6 16:54:16 2026 -0700

    [Glic] Fix crash on posture change

    - Expose a non-creating way to get BWI pointer in Java.
    - Add fallback if the BWI pointer is destroyed (activity is
      destroying).

    Fixed: 510017377
    Change-Id: I655ee87dc109ca7fa0126851d3365254718377e6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7823282
    Reviewed-by: Linyu He <linyuh@google.com>
    Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
    Reviewed-by: Jack Thiesen <jthiesen@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1626567}
2026-05-22 16:57:40 -04:00
Max Karolinskiy 4034ed3de9 [cr149] Disables ExtensionsPushMessagingServiceTest tests.
In both upstream and our tests.

These tests crash on exit because of the stale pointer to GCMDriver held
by FCMHandler in SyncInvalidationsService. The pointer is stale because
the upstream change swaps the GCMProfile service to a fake one after the
SyncInvalidationsService initialization.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/23f0c1d6

commit 23f0c1d6b721719bd1e9e220dc3e85cca23e048b
Author: Justin Lulejian <jlulejian@chromium.org>
Date:   Mon Apr 27 19:02:39 2026 -0700

    [Extensions] Connect userVisibleOnly pref to renderer queries

    Before this commit, the `userVisibleOnly` push subscription option was
    hardcoded to true when reported to the renderer, even though it was
    persisted in preferences. This prevented the renderer from knowing if a
    subscription was silent when calling `getSubscription()`. For example if
    an extension that passed `userVisibleOnly : false ` called this:

    ```
    background.js
    const subscription = await registration.pushManager.getSubscription();
    console.assert(subscription.options.userVisibleOnly);
    ```

    It would never assert (since `userVisibleOnly` was always forced to
    `true` in `PushMessagingManager::GetSubscriptionDidGetInfo()`).

    After this commit, the pref is now piped correctly piped from //chrome/
    (read from prefs) to //content/ (requested by renderer). Now
    `subscription.options.userVisibleOnly` will correctly report the push
    subscription's `userVisibleOnly` value.

    This was accomplished by updating `SubscriptionInfoCallback` to include
    `user_visible_only`, updating `PushMessagingServiceImpl` to extract it
    from `AppIdentifier` and pass it through callbacks, and updating
    `PushMessagingManager` to receive and use it.

    There are two tests to cover this.
    ExtensionsPushMessagingServiceTest.GetSubscriptionPersistsUserVisibleOnlyFalse
    is a unit test that the value is correctly reported.
    ServiceWorkerPushMessagingTest.GetSubscriptionPersistsUserVisibleOnlyFalse
    is an e2e test where an extension worker verifies that its
    `subscription.options.userVisibleOnly` returns expectedly false.

    Fixed: 391114807
    Change-Id: Ib4767f3bc00a402e1a6748241196370c36f08a0c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7784893
    Reviewed-by: Andrea Orru <andreaorru@chromium.org>
    Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
    Auto-Submit: Justin Lulejian <jlulejian@chromium.org>
    Reviewed-by: Zijie He <zijiehe@google.com>
    Commit-Queue: Justin Lulejian <jlulejian@chromium.org>
    Reviewed-by: Michael van Ouwerkerk <mvanouwerkerk@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1621487}
2026-05-22 16:57:40 -04:00
Sangwoo Ko 250fc74ea4 [cr149] Hide vertical tab strip host view when vertical tabs are not shown.
Specify visibility to false when adding vertical tab strip host view to layout.
2026-05-22 16:57:40 -04:00
Claudio DeSouza ed61653f89 [cr149] Page Actions sources moved around
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/4f093f4239eb2814f57bc97ee593d7acd717ac42

commit 4f093f4239eb2814f57bc97ee593d7acd717ac42
Author: Kaan Alsan <alsan@chromium.org>
Date:   Thu Apr 30 13:03:09 2026 -0700

    Relocate Page Actions core logic to chrome/browser/ui/page_actions

    Bypass-Check-License: Moving files
    Change-Id: I4af05df48a60854e20119bd40f2df4b3870cd86c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7801005
    Reviewed-by: Eshwar Stalin <estalin@chromium.org>
    Commit-Queue: Kaan Alsan <alsan@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1623365}
2026-05-22 16:57:40 -04:00
Emerick Rogul 2bad3ba722 [cr149] Permit cross-host WebUI iframes in CRWWebUISchemeHandler
Upstream's `webView:startURLSchemeTask:` now rejects any WebUI sub-resource
whose `SchemeHostPort` differs from the main `webView.URL` unless it is
served from `chrome://resources`. That breaks Brave's per-frame `WebUIIOS`
support (04db68e84d), where a trusted WebUI page deliberately embeds a
chrome-untrusted (or sibling-host) WebUI iframe (e.g. AI Chat).

Extend the existing chromium_src override to also admit any URL recognized
by a registered `WebUIIOSControllerFactory`. Non-WebUI URLs continue to
fall through to the upstream check, preserving its hardening intent.

Fixes the `WebUITest.LoadWebUIPageWithWebUIChildFrame` integration test.

Note: AI-assisted: requires thorough review

Chromium changes:
https://source.chromium.org/chromium/chromium/src/+/6b67808f449e4e6ebfd00182dcf09c7a37bb75b9

commit 6b67808f449e4e6ebfd00182dcf09c7a37bb75b9
Author: Mike Dougherty <michaeldo@chromium.org>
Date:   Mon Apr 27 02:18:09 2026 -0700

    Correctly pass WebUI headers to resource response

    This CL forwards headers set on URLRequestChromeJob instances inside
    URLDataManagerIOSBackend to the actual response. Previously these
    headers were unintentionally discarded.

    Although set_add_content_security_policy is being explicitly disabled in
    this CL, it represents no change in behavior because the header was not
    previously forwarded to the response.

    Bug: 502503860
    Change-Id: I85b33794a405bf132b094c47e890df0473c1b591
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7764734
    Auto-Submit: Mike Dougherty <michaeldo@chromium.org>
    Commit-Queue: Gauthier Ambard <gambard@chromium.org>
    Reviewed-by: Gauthier Ambard <gambard@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1620954}
2026-05-22 16:57:39 -04:00
Emerick Rogul 80170bcf84 [cr149] Wire upstream side_panel_ into rounded-corners plumbing
Fix test failures in `BraveBrowserViewWithRoundedCornersTest` test suite.

After the upstream consolidation onto a single toolbar-height side panel, our
rounded-corners code still operated on the V1 sidebar_container's internal
panel, leaving the upstream `BrowserView::side_panel_` (the panel actually
toggled by `SidePanelCoordinator` and asserted on by tests) without margins,
border, or shadow. This change applies `kMarginsKey` and `UpdateBorder()` to the
upstream panel in V1 mode (the V1 internal panel keeps its existing metadata for
`sidebar_container` layout). It also overrides
`BrowserViewTabbedLayoutImpl::ShadowOverlayVisible()` to return false so the
upstream shadow overlay's `kSidePanelInset` padding doesn't double up with
Brave's own rounded-corners shadow.

Note: AI-assisted: requires thorough review
2026-05-22 16:57:39 -04:00
Emerick Rogul 101ca0c23d [cr149] Continue to hide metrics reporting control in brave://settings
`metricsReportingControl` was moved behind a template, so adjust our override to
continue hiding it.

Since this file was small, also took the opportunity to address all of the "long
line" presubmit warnings by reformatting it.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bd6340f42957d39006ef61602100b801cb56ef48

commit bd6340f42957d39006ef61602100b801cb56ef48
Author: Chirag Arora <heychirag@google.com>
Date:   Thu Apr 30 01:48:06 2026 -0700

    Hide "Help improve Chrome ..." toggle on Desktop and link on ChromeOS

    This change hides the usage and crash reporting setting in the
    personalization options page when the metrics consent restructure
    is enabled and the user has been migrated to the new consent settings.

    The implementation varies by platform:
    - On Desktop, the #metricsReportingControl toggle is hidden.
    - On ChromeOS, the #metricsReportingLink link row is hidden.

    Tests were added to both metrics_reporting_test.ts (for Desktop) and
    personalization_options_test.ts (for ChromeOS) to verify the behavior
    on each platform.

    Bug: b:496476603
    Change-Id: Ie23879c2ef4d8cc0760d3d81cce9059095fed2a5
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7790348
    Reviewed-by: Mike Wasserman <msw@chromium.org>
    Commit-Queue: Chirag Arora <heychirag@google.com>
    Reviewed-by: Rainhard Findling <rainhard@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1623012}
2026-05-22 16:57:39 -04:00
Emerick Rogul a5b349f122 [cr149] Card benefits feature flag removed; continue to hide it in brave://settings
The card benefits feature flag was removed, so we need to adjust our template
modification code to continue to hide the card benefits toggle switch on
brave://settings/payments.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/20934d1bfb5fa104867b4beec7f576fdd5d150a9

commit 20934d1bfb5fa104867b4beec7f576fdd5d150a9
Author: viplavkadam <viplavkadam@google.com>
Date:   Thu Apr 30 10:51:17 2026 -0700

    [Benefits] Clean up feature flags for Amex, BMO and Curinos

    Bug: 465347871, 465227703, 465360230
    Change-Id: Iac68a23a94df8098190bcd0c136fbf02d259f9a5
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7738778
    Reviewed-by: Christoph Schwering <schwering@google.com>
    Reviewed-by: Timofey Chudakov <tchudakov@google.com>
    Commit-Queue: Viplav Kadam <viplavkadam@google.com>
    Reviewed-by: Vinny Persky <vinnypersky@google.com>
    Cr-Commit-Position: refs/heads/main@{#1623326}
2026-05-22 16:57:38 -04:00
Max Karolinskiy 874cd833d9 [cr149] Fixes bookmark bar placement for vertical tabs.
The upstream change moved the top container layout calculation into an
Impl method in BrowserViewTabbedLayoutImpl and internally now calls the
Impl method instead of BrowserViewTabbedLayout which is virtual and the
one we were overriding. Made the Impl method virtual and now we are
overring it instead.

Chromium change:
https://chromium.googlesource.com/chromium/src.git/+/450301153d05f

commit 450301153d05ffd001bafa2622ba031cd6e62fc6
Author: Dana Fried <dfried@chromium.org>
Date:   Wed Apr 29 07:39:52 2026 -0700

    [Chrome Next] Ensure separator is hidden in infobar+thsp+vts

    This fixes a corner case where a separator would be drawn in the top
    container when vertical tabs + toolbar-height side panel + an infobar
    are present in the browser.

    This makes the suppression of the separator consistent regardless of
    whether the separator is drawn in the top container or multi-contents
    view area.

    Fixed: 507565700
2026-05-22 16:57:38 -04:00
Emerick Rogul 85695e3212 [cr149] Remove unnecessary DCHECK from download_display_controller.cc override
The upstream CL rewrote the `DownloadDisplayController` unit test as a browser
test, rewriting the fixture to use `InProcessBrowserTest` with a real `Browser`.
Before the conversion, the unit-test fixture didn't wire
`DownloadBubbleUIController` / `DownloadBubbleUpdateService` into a real
`Browser`, so `OnNewItem` -> `UpdateButtonStateFromUpdateService` never reached
our `chromium_src` override. As a browser test it does, and the mock's
`GetDisplayInfo` populates `info.all_models_size` while `GetAllModelsToDisplay`
(un-mocked, hitting the real empty cache): returns nothing, hitting the invalid
`DCHECK`.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3472777e7f3fa

commit 3472777e7f3fa14c8f76715c482b3956e9702c9a
Author: Daniel Rubery <drubery@chromium.org>
Date:   Mon Apr 27 13:36:09 2026 -0700

    [bedrock] Convert download_display_controller_unittest to browser test

    This CL removes the dependency on a mock browser by converting the test
    to a browser test. This simplifies the Browser setup. In order to
    effectively test the OneShotTimers in the DownloadDisplayController, we
    add the ability to inject a task runner.

    Bug: 506197563
    Bypass-Check-License: Moved files
    Link: https://chromium-review.googlesource.com/id/I52973dddafcf4cfd73a356343c4e80f96a6a6964
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7791256
    Reviewed-by: Darryl James <dljames@chromium.org>
    Auto-Submit: Daniel Rubery <drubery@chromium.org>
    Commit-Queue: Darryl James <dljames@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1621286}
2026-05-22 16:57:38 -04:00
Claudio DeSouza 4d3098bad7 [cr149][rust] extra_build_script_src_roots dropped in gnrt
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}
2026-05-22 16:57:38 -04:00
Claudio DeSouza 4920f6db14 [rust][cr149] extra_input_roots using wildcards
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}
2026-05-22 16:57:37 -04:00
Artem Samoilenko cbf5c768b2 [cr149][Android] Fix for toolbar tablet layout
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3498e7937705733e97710a4337693fa42c2002cb

commit 3498e7937705733e97710a4337693fa42c2002cb
Author: Patrick Noland <pnoland@google.com>
Date:   Fri May 1 09:57:26 2026 -0700

    Wrap tablet LocationBar in a holder layout

    This allows us to allocate the width/height to this view, keeping
    everying in the same position while reparented. It also simplifies the
    alignment view issue; this holder can stay the alignment view in all
    tablet scenarios.

    NO_IFTTT=Uses the same consumer as the location bar

    Bug: 507111601
    Change-Id: Ia6a5a602bc94462100a0a815f82e119dd92eb853
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7801292
    Reviewed-by: Sky Malice <skym@chromium.org>
    Commit-Queue: Patrick Noland <pnoland@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1623882}
2026-05-22 16:57:37 -04:00
Max Karolinskiy 6d5cbd2ce0 [cr149] Disables kVerticalTabsLaunch feature.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/20e810aa6ee8a292cf548efac7a4c64dbe0b6821

commit 20e810aa6ee8a292cf548efac7a4c64dbe0b6821
Author: Alison Gale <agale@chromium.org>
Date:   Thu Apr 30 09:15:18 2026 -0700

    [Vertical Tabs] Fully enable vertical tabs on ToT

    This applies to just Windows/Mac/Linux. ChromeOS is still launching so I
    updated the field trial config to just leave those values.

    Had to fix one unit test to handle the missing immersive controller

    Bug: 493628274
2026-05-22 16:57:37 -04:00
Max Karolinskiy 2e67a9ba12 [cr149] Adjusts HistoryEmbeddingsServiceTest test normalization.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/9d9fbd3410b1f7fde453b6396fa5b16bd4db598d

commit 9d9fbd3410b1f7fde453b6396fa5b16bd4db598d
Author: Mike Wittman <wittman@chromium.org>
Date:   Thu Apr 30 09:10:10 2026 -0700

    [embeddings] Enforce embeddings normalization

    Embeddings are guaranteed to be normalized in production. This
    change documents that guarantee, removes the unnecessary Normalize()
    and Magnitude() member functions, and updates Embeddings in tests to
    be consistently normalized.

    Bug: 499323089
2026-05-22 16:57:36 -04:00
Emerick Rogul 858d6f89bd [cr149][ios] Update to new PasswordStoreConsumer interface
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/18f3b6cd6b90d30490d36c859b73ebec70978d45

commit 18f3b6cd6b90d30490d36c859b73ebec70978d45
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date:   Wed Apr 29 06:12:56 2026 -0700

    Simplify PasswordStoreConsumer interface.

    Delete two obsolete virtual methods and update the consumers.

    Fixed: 40863002
    Change-Id: I78a49d3b0352d585f56958c78aa9aa20fbaed569
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7796867
    Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
    Reviewed-by: Martin Šrámek <msramek@chromium.org>
    Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
    Reviewed-by: Tommy Martino <tmartino@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1622393}
2026-05-22 16:57:36 -04:00
Emerick Rogul 9dba7e2033 [cr149][ios] PasswordStoreChange now uses StoredCredential
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c0e3ec4fb4702cb97577863d822ef34e37eb3056

commit c0e3ec4fb4702cb97577863d822ef34e37eb3056
Author: Vasilii Sukhanov <vasilii@chromium.org>
Date:   Tue Apr 28 08:09:43 2026 -0700

    Convert PasswordStoreChange to use StoredCredential.

    Bug: 501020786
    Change-Id: Iab0e65ccc4cf1cf41eced5645e47fcace826a8f3
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7796459
    Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
    Reviewed-by: Mohamed Amir Yosef <mamir@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1621773}
2026-05-22 16:57:36 -04:00
Artem Samoilenko 8b10cc4a3f [cr149][Android] Changes for entry point in Omnibox long-press menu
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6f10b0cae52ac422def175c05c9d9c73939afc69

commit 6f10b0cae52ac422def175c05c9d9c73939afc69
Author: Marc Treib <treib@chromium.org>
Date:   Mon May 4 01:06:23 2026 -0700

    [Android] STTS: Add entry point in Omnibox long-press menu

    This CL adds an entry point to Send-tab-to-self ("Send to devices") in
    the long-press menu of the Clank Omnibox.

    Screenshot of what it looks like:
    https://screenshot.googleplex.com/4vLMfkkCErUGj6o

    This is guarded behind a new feature flag
    kSendTabToSelfExtraEntryPoints. (In the future, this feature will also
    cover Bling, as well as additional entry points.)

    Bug: 493882752
    Change-Id: I82076b2237f52d527a819c78dea399b115f32423
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7704472
    Reviewed-by: Patrick Noland <pnoland@chromium.org>
    Commit-Queue: Marc Treib <treib@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1624509}
2026-05-22 16:57:36 -04:00
Max Karolinskiy 0b4f8d3a37 [cr149] UnloadHandler as UnownedData
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/beaae0fe841a3830d1f23fbe2579955d159a02cf

commit beaae0fe841a3830d1f23fbe2579955d159a02cf
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date:   Sun May 3 11:52:41 2026 -0700

    [bedrock] Rehome UnloadHandler to BrowserWindowFeatures

    There is no intended behavior change in this CL.

    Future CLs will further refactor Browser methods to call the
    UnloadHandler directly.

    Bug: 502745808
    Change-Id: I00d39b8c0a61ac3541465420bd9c6fb121a4fcbc
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7805864
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Reviewed-by: Allen Bauer <kylixrd@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1624444}

[cr149][WIP] Fixes not opening new tab on closing last tab.

We were relying on the order of notifications for TabStripEmpty to call
UnloadController before BraveBrowser and using the state of
UnloadController to make the decision on closing the window. With the
upstream change below the order is now reversed, but it's unclear to me
why we need to rely on UnloadController here since it's the same
notification.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/beaae0fe841a3830d1f23fbe2579955d159a02cf

commit beaae0fe841a3830d1f23fbe2579955d159a02cf
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date:   Sun May 3 11:52:41 2026 -0700

    [bedrock] Rehome UnloadHandler to BrowserWindowFeatures

    There is no intended behavior change in this CL.

    Future CLs will further refactor Browser methods to call the
    UnloadHandler directly.

    Bug: 502745808
    Change-Id: I00d39b8c0a61ac3541465420bd9c6fb121a4fcbc
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7805864
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Reviewed-by: Allen Bauer <kylixrd@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1624444}
2026-05-22 16:57:35 -04:00
Emerick Rogul 557b596be6 [cr149][ios] Include screenshot_protection provider
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/1ebf897333e83abfc1841f3c97ae114d935df850

commit 1ebf897333e83abfc1841f3c97ae114d935df850
Author: Ernesto Izquierdo Clua <eic@google.com>
Date:   Wed Apr 22 05:13:21 2026 -0700

    [ios] Implement Tab Grid screenshot protection policies

    This CL implements the core business logic for Enterprise Screenshot
    Protection in DataProtectionSceneAgent, specifically focusing on the Tab
    Grid. Logic for protecting the window when displaying a single tab will
    be added in a follow-up CL.

    Key changes:
    - DataProtectionSceneAgent observes ProfileState, TabGridState, and
      IncognitoState to determine when protection should be active.
    - Protection is updated when the scene is in the foreground, the
      profile is fully loaded, and the UI is enabled.
    - Implemented logic to track enterprise policies:
      - EnterpriseRealTimeUrlCheckMode: Protects if real-time lookups are
        enabled.
      - DataControlsRules: Protects if a blocking SCREENSHOT rule exists.
    - Added comprehensive unit tests in
      data_protection_scene_agent_unittest.mm to verify state transitions
      and policy enforcement.

    Bug: 485585995
    Change-Id: Iabdf96e33aa0adf08988f597b527b5f6ce0d7e22
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7767015
    Commit-Queue: Ernesto Izquierdo Clua <eic@google.com>
    Reviewed-by: Gauthier Ambard <gambard@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1618786}
2026-05-22 16:57:35 -04:00
Emerick Rogul d92f0acc63 [cr149][ios] SendTabToSelfModel::AddEntry renamed to SendEntry 2026-05-22 16:57:35 -04:00
Artem Samoilenko b5fb6d3ad8 [cr149][Android] Changes for Lens Overlay feature
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5adc915936b90ddebf40821b4cfd1ff29d5ca307

commit 5adc915936b90ddebf40821b4cfd1ff29d5ca307
Author: Samuel Huang <huangs@chromium.org>
Date:   Fri May 1 11:52:17 2026 -0700

    [Lens Overlay] Add App Menu entry point and JNI scaffolding

    This CL introduces the initial Android App Menu entry point for the Lens
    Overlay feature on Android, alongside foundational Java-to-C++ JNI
    scaffolding.

    Implementation follows a staged approach:
    1. Short-term (Current focus): Build an "Intent-based handoff" pipeline
       that captures a screenshot, formats it for external consumption, and
       delegates the search flow to the Google Lens app (AGSA) via Intent.
    2. Long-term: Host a Chrome-native overlay that provides the feature's
       WebUI directly within the browser, reusing existing Desktop code.

    The JNI bridge established here provides the functional entry point for
    the Stage 1 screenshot and handoff logic. In this initial CL, it is
    utilized to invoke shared C++ metrics code to ensure immediate
    feature-parity in tracking with the Desktop implementation.

    Since our ultimate goal is to align with Desktop functionalities, we
    reuse strings and shared code as much as is practical.

    Note: The feature is temporarily disabled in Incognito mode. Because
    the short-term implementation delegates to Google Lens (an external
    app), disabling it in Incognito prevents sending user data across app
    boundaries without explicit consent. We anticipate enabling Incognito
    support in the long-term implementation (matching Desktop behavior).

    Details:
    * Add IDS_LENS_OVERLAY_APP_MENU = "Search with Google lens" (same as the
      Desktop string) as an Android-specific asset. We duplicate for now to
      avoid massive asset refactorization.
    * Add the "Search with Google Lens" item to the App Menu
      (`TabbedAppMenuPropertiesDelegate`), placed between "Find in page" and
      "Translate...".
    * Guard the new UI behind the `ChromeFeatureList.LENS_OVERLAY_ANDROID`
      feature flag.
    * Create `LensOverlayCoordinator` (Java) and
      `LensOverlayControllerAndroid` (C++), bridging them via JNI to
      establish the functional entry point for the feature.
    * Hook the menu click into `RootUiCoordinator` to launch the
      coordinator. This implements a dual-metrics strategy:
      * Record Android core UI metrics via
        `RecordUserAction("MobileMenuLensOverlay")`.
      * Record Lens feature metrics (`lens::RecordInvocation()`) via the
        C++ controller, which will handle slicing by document MIME type in a
        future CL.
    * Generate `LensOverlayInvocationSource` using `java_cpp_enum` to
      mirror the C++ enum for accurate UMA histogram recording across the
      JNI bridge, preventing future desyncs.
    * Add unit tests to `TabbedAppMenuPropertiesDelegateUnitTest` to verify
      the Lens Overlay menu item is correctly shown on standard web pages
      and correctly hidden on the NTP, in Incognito mode, or when the
      feature flag is disabled.
    * Create `chrome/browser/ui/android/lens/OWNERS` to manage the new
      feature directory.

    Bug: 507533812, 493627069
    Change-Id: I87eaaaee9b4e21f8071a3fd88666cb06ff4e2d3f
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7800658
    Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
    Commit-Queue: Samuel Huang <huangs@chromium.org>
    Reviewed-by: Bryan Nguyen <nguyenbryan@google.com>
    Cr-Commit-Position: refs/heads/main@{#1623965}
2026-05-22 16:57:34 -04:00
Emerick Rogul 4ed9153415 [cr149] Unused argument dropped from component_updater::RegisterPathProvider
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/46850ff1ed8958644e9d3d0f6dbeb948fdf03bdc

commit 46850ff1ed8958644e9d3d0f6dbeb948fdf03bdc
Author: Peter Kvitek <kvitekp@chromium.org>
Date:   Fri Apr 24 09:19:58 2026 -0700

    [chrome paths] Remove unused DIR_INTERNAL_PLUGINS Chrome path

    chrome::DIR_INTERNAL_PLUGINS does not seem to be used anymore, so this
    CL removes its declaration and the related code.

    Change-Id: Ifb82862474606215e2a122d5183eafafadd5970c
    Cq-Include-Trybots: luci.chromium.try:linux-chromeos-rel,linux-chromeos-dbg
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7770000
    Reviewed-by: Mark Cogan <marq@chromium.org>
    Commit-Queue: Peter Kvitek <kvitekp@chromium.org>
    Reviewed-by: Peter Conn <peconn@chromium.org>
    Reviewed-by: Lei Zhang <thestig@chromium.org>
    Reviewed-by: Sorin Jianu <sorin@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1620251}
2026-05-22 16:57:34 -04:00
Artem Samoilenko da9fb06b7f [cr149][Android] Changes for making bottom controls more generic
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d0dca8d3d103b066d551f6713a3ab53b1072ee51

commit d0dca8d3d103b066d551f6713a3ab53b1072ee51
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date:   Fri Mar 13 10:44:15 2026 -0700

    [BottomControls] Make bottom controls more generic

    * Simplify back press logic.
    * Extract LayerType so the component can be reused for multiple layers.
    * Misc. cleanup and reorganization.

    Bug: 492262214
    Change-Id: Ic35a7613f950d73470471b4b5c8b62497c535cee
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7665618
    Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
    Reviewed-by: Sky Malice <skym@chromium.org>
    Reviewed-by: Dan Polanco <polardz@google.com>
    Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1599163}
2026-05-22 16:57:34 -04:00
Artem Samoilenko 99524d8061 [cr149][Android] Changes for Glic entrypoint to bottom bar
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/f81ba7560c5174bef0eb2f11ed640ec099fa3c00

commit f81ba7560c5174bef0eb2f11ed640ec099fa3c00
Author: Madhav Pruthi <madhavpruthi@google.com>
Date:   Fri May 1 12:28:49 2026 -0700

    [Clank IA] Add Glic entrypoint to bottom bar with new action coordinator

    Also, control the visibility of the GLIC button.

    Change-Id: Ieabd067de7d1182dafce3b39db12e52f470d0cab
    Bug: 491509952
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7804770
    Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
    Commit-Queue: Madhav Pruthi <madhavpruthi@google.com>
    Reviewed-by: Dan Polanco <polardz@google.com>
    Cr-Commit-Position: refs/heads/main@{#1623994}
2026-05-22 16:57:34 -04:00
Artem Samoilenko 42e556d3be [cr149][Android] Changes for prototype of WebUI NTP
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}
2026-05-22 16:57:33 -04:00
Claudio DeSouza 349cb452f6 [cr149] Fix CheckRenderFrameType override to global_id
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}
2026-05-22 16:57:33 -04:00
Claudio DeSouza ebd4150618 [cr149] Correcting ntp_pref_names.h due to Android NTP
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}
2026-05-22 16:57:33 -04:00
Claudio DeSouza 4e1567324e [cr149] toolbar_height_side_panel() now just side_panel()
This is an accessor renaming for `BrowserView` and
`BrowserViewLayoutViews`.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/49935f86367082b50b34fc7be3ead05a6a642e0c

commit 49935f86367082b50b34fc7be3ead05a6a642e0c
Author: Caroline Rising <corising@chromium.org>
Date:   Fri May 1 09:28:08 2026 -0700

    [Side panel] Rename uses of toolbar height side panel to be side panel

    Bug: 505776475
    Change-Id: I57b648e79dff947ec18eeb4a3621affb10b3b089
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7807791
    Reviewed-by: Eshwar Stalin <estalin@chromium.org>
    Commit-Queue: Caroline Rising <corising@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1623866}
2026-05-22 16:57:32 -04:00
Claudio DeSouza b9b1ce9657 [cr149] browser_navigator now in its own directory
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/815c5cff075fb58c5ec93d967479af57312a5894

commit 815c5cff075fb58c5ec93d967479af57312a5894
Author: Foromo Daniel Soromou <koretadaniel@chromium.org>
Date:   Thu Apr 30 18:38:51 2026 -0700

    Move browser_navigator files to a subdirectory

    Move the `browser_navigator*` files from `chrome/browser/ui/` to a new
    `chrome/browser/ui/navigator/` subdirectory to better organize the
    codebase. Update all corresponding include paths across the repository
    to reflect the new file locations.

    Bypass-Check-License: This is a file rename only.
    Bug: none
    Change-Id: I512c4119e212966e84001924ab2eb2e501a490d7
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7801797
    Reviewed-by: Darryl James <dljames@chromium.org>
    Reviewed-by: Dana Fried <dfried@chromium.org>
    Commit-Queue: Foromo Daniel Soromou <koretadaniel@chromium.org>
    Reviewed-by: Ashley Prasad <ashleydp@google.com>
    Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
    SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
    Cr-Commit-Position: refs/heads/main@{#1623653}
2026-05-22 16:57:32 -04:00
Claudio DeSouza 5fb940665f [cr149] Fix upstream changes to WindowFrameProvider/FakeLinuxUi
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}
2026-05-22 16:57:32 -04:00
Claudio DeSouza bd450fd91c [cr149] Fixing BraveSpecificsToModel due to last field change
This field used to be a bool, but it is now an enum. This change
corrects the implementation of `BraveSpecificsToModel`, which is
supposed to stay in sycn with `DeviceInfo`.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/2beaaac13944769bdb69f50226ddb84e8e840456

commit 2beaaac13944769bdb69f50226ddb84e8e840456
Author: Theodore Olsauskas-Warren <sauski@google.com>
Date:   Thu Apr 30 10:56:48 2026 -0700

    [Glic] Move experimental triggering in DeviceInfo to use Enum

    Update the recently added bool glic_experimental_triggering_opted_in
    to use an enum, updating its name to match.

    The previously added proto entry is removed and the value reused,
    there is no practical risk of version mismatch (and bool values map to
    enum versions that are reasonably safe).

    Change-Id: I231dca339fa09a72d6b79d7a4aeb12d3e9b3b761
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7796299
    Reviewed-by: Mikel Astiz <mastiz@chromium.org>
    Reviewed-by: David Trainor <dtrainor@chromium.org>
    Reviewed-by: Maria Petrisor <mpetrisor@chromium.org>
    Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
    Reviewed-by: Roman Arora <romanarora@chromium.org>
    Commit-Queue: Theodore Olsauskas-Warren <sauski@google.com>
    Reviewed-by: Min Qin <qinmin@chromium.org>
    Reviewed-by: Rohit Rao <rohitrao@chromium.org>
    Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1623334}
2026-05-22 16:57:32 -04:00
Claudio DeSouza c40fa41402 [cr149] //chrome/browser/ui/navigator componentised
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}
2026-05-22 16:57:31 -04:00
Emerick Rogul c7bf5ee636 [cr149] Upgrading Apple toolchain to 26.4.1
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/287de9bad0833

commit 287de9bad083354f51374c6e1827b31e4a66ebf3
Author: Devon Loehr <dloehr@google.com>
Date:   Fri Apr 17 15:08:17 2026 -0700

    mac: Switch to Xcode 26.4.1 (17E202) and SDK 26.4 (25E251)

    Minor version bump; the metal version is unchanged.

    Change-Id: I5d12ee4666140962f92dd77851a5591d61d40bc3
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7773727
    Commit-Queue: Devon Loehr <dloehr@google.com>
    Reviewed-by: Mark Mentovai <mark@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616889}
2026-05-22 16:57:31 -04:00
Artem Samoilenko 0594d11a2e [cr149][Android] Changes for AutocompleteMatch c-tor
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/46173485057d34f790cbd27eb563ca231f46e121

commit 46173485057d34f790cbd27eb563ca231f46e121
Author: Keigo Oka <oka@google.com>
Date:   Wed Apr 29 23:54:16 2026 -0700

    Site Search: Implement Starter Packs UX for Android Desktop.

    This CL implements the Starter Packs (@bookmarks, @history, etc.) UX for
    Android Desktop, focusing on the suggestion list experience while
    maintaining existing Android chip behavior.

    Key changes:
    1. Enabled FeaturedSearchProvider on Android in AutocompleteClassifier.
    2. Updated BasicSuggestionProcessor to format starter pack suggestions with
       appropriate icons (e.g., star for bookmarks, spark for @gemini) and
       combined text (e.g., '@gemini - Ask Gemini').
    3. Included GROUP_STARTER_PACK in AndroidNonZPSSection to prevent these
       matches from being culled on Android.
    4. Passed StarterPackId from C++ to Java in AutocompleteMatch to allow
       semantic icon selection in BasicSuggestionProcessor without parsing URLs.
    5. Enabled kOmniboxSiteSearch and kStarterPackExpansion by default for Android.

    Fixed: 500863504
    Change-Id: I507e7666c1b68201d178351f5aea166b8db0be46
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7784849
    Reviewed-by: Tomasz Wiszkowski <ender@google.com>
    Auto-Submit: Keigo Oka <oka@chromium.org>
    Commit-Queue: Keigo Oka <oka@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1622980}
2026-05-22 16:57:31 -04:00
Artem Samoilenko 5c258d95e7 [cr149][Android] Fixes for robolectric tests 2026-05-22 16:57:31 -04:00
Max Karolinskiy 033d07fdfc [cr149] Adjusts HistoryEmbeddingsServiceTest test.
Chromium change:
https://chromium.googlesource.com/chromium/src.git/+/009e12b95d04c

commit 009e12b95d04c14133718b7519809c59370fc1d2
Author: Mike Wittman <wittman@chromium.org>
Date:   Thu Apr 23 10:54:06 2026 -0700

    [embeddings] Simplify test embedding vector specification

    Many of the tests that make use of Embedding specify vectors
    of size 768, even though the code under test does not depend on
    that size. This change reduces the sizes to 3 and uses literal
    initializers where feasible to avoid unnecessary size assumptions
    and reduce complexity in the tests.

    Bug: 499323089
2026-05-22 16:57:30 -04:00
Claudio DeSouza 6280a4ab16 [WIP][cr149] SidePanel using toolbar side panel height
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}
2026-05-22 16:57:30 -04:00
Claudio DeSouza 8705bfefe7 [cr149][android] Fixing SearchIndexProviderRegistry plaster imports
This class is now importing a lot of the modules that were being
referred to, which broke the plaster. This change corrects that, and
corrects our own insertion of our types to also use similar imports.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/444fafd03c31e8301faba71cf6703fe522121f57

commit 444fafd03c31e8301faba71cf6703fe522121f57
Author: Sky Malice <skym@chromium.org>
Date:   Wed Apr 29 10:39:32 2026 -0700

    Remove qualified imports from SearchIndexProviderRegistry.java.

    Bug: 505789955
    Change-Id: I5a4640575e2f1897375ce99cdf8b9be4ca9f31ff
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7797509
    Reviewed-by: Moe Adel <adelm@google.com>
    Commit-Queue: Sky Malice <skym@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1622573}
2026-05-22 16:57:30 -04:00
Artem Samoilenko 613195b9ff [cr149][Android] Changes for optional button on LocationBar
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/2d803238f4a71a73decc73a5ec682070f1401750

commit 2d803238f4a71a73decc73a5ec682070f1401750
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date:   Tue Apr 28 18:00:59 2026 -0700

    [IA] Move optional button to LocationBar

    - Create an OptionalButtonCoordinator in LocationBarCoordinator for
      phones only.
    - Add logic to show/hide new optional button dynamically.
    - Update ToolbarPhone to proxy calls into LocationBar except on the
      NTP. On the NTP the identity disk is still presented in the optional
      button. Will refactor post-launch.

    Bug: 491511644
    Change-Id: I81a485c1fa93420c661984523cb0367f737d87be
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7793280
    Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
    Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
    Reviewed-by: Sky Malice <skym@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1622145}
2026-05-22 16:57:29 -04:00
Artem Samoilenko ed83c58fa0 [cr149][Android] Changes for plus button on the ntp fakebox
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/b13bf0ba6e66a140136f05cb57fdc327edbde6f8

commit b13bf0ba6e66a140136f05cb57fdc327edbde6f8
Author: Brandon Wylie <wylieb@google.com>
Date:   Tue Apr 28 20:56:23 2026 -0700

    [aim] Add plus button to the ntp fakebox

    Bug: 496955673
    Change-Id: Ic9cb8cad4489a47e795155db4712131734b87ccb
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7787437
    Commit-Queue: Brandon Wylie <wylieb@google.com>
    Reviewed-by: Sky Malice <skym@chromium.org>
    Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1622213}
2026-05-22 16:57:29 -04:00
Artem Samoilenko da4a404f2c [cr149][Android] Changes for favicon background in StatusView
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ea28e703517df10083777563e9bcf2b982e4f83

commit 5ea28e703517df10083777563e9bcf2b982e4f83
Author: Sky Malice <skym@chromium.org>
Date:   Fri Apr 24 12:00:41 2026 -0700

    [AIM] Show favicon in StatusView during exact match.

    Bug: 495903036
    Change-Id: Iecff15665523280814a6ffa9b1e82e9d4fefd417
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7738777
    Reviewed-by: Tomasz Wiszkowski <ender@google.com>
    Commit-Queue: Sky Malice <skym@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1620374}
2026-05-22 16:57:29 -04:00
Max Karolinskiy d150d7a974 [cr149] Adjusts DataTypeTest.DataTypeCounts test for a new type.
The new type is THEMES_ANDROID.

https://chromium.googlesource.com/chromium/src.git/+/0c6882b3

commit 0c6882b3eb6e3c2573c9276999817d8a3e8c6f56
Author: Xinyi Ji <xinyiji@google.com>
Date:   Fri Apr 24 06:26:48 2026 -0700

    [NTP Customization Sync] Add scaffold for THEMES_ANDROID data type

    This CL adds the initial scaffolding for the THEMES_ANDROID data type.

    - DataType enumeration entry.

    - TODOs for mapping to selectable types.

    - Histogram entries.

    Bug: 488439751
2026-05-22 16:57:29 -04:00
Claudio DeSouza aee373dd92 [cr149] RandInt removed
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5f591f6b5e3cb8a1bd75a75a8cfb63ff4677af01

commit 5f591f6b5e3cb8a1bd75a75a8cfb63ff4677af01
Author: Elly <ellyjones@chromium.org>
Date:   Tue Apr 28 23:29:33 2026 -0700

    base: remove RandInt

    Removed all remaining calls to base::RandInt and deleted the
    function. The new blessed way to do this is base::RandIntInclusive.

    Fixed: 40283703
    Change-Id: I7b3a1737f11b7364e33d32df26caafac17981dd1
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7798357
    Auto-Submit: Elly <ellyjones@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1622254}
2026-05-22 16:57:28 -04:00