Commit Graph
78414 Commits
Author SHA1 Message Date
Claudio DeSouza 5f1d48ebae [cr149] ToolbarView now handles WebUIAvatarToolbarButton
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}
2026-05-22 16:25:10 -04:00
Max Karolinskiy 344f4e6232 [cr149] Disables kHorizontalTabStripComboButton feature.
This feature is now enabled by default upstream.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/93d66bb224293efa6bec34803570e808e575feb9

commit 93d66bb224293efa6bec34803570e808e575feb9
Author: Emily Shack <emshack@chromium.org>
Date:   Thu Apr 16 11:25:44 2026 -0700

    [ComboButton] Enable combo button on ToT

    Pre-req for 100% Stable launch

    Bug: 503351191
2026-05-22 16:25:10 -04:00
Artem Samoilenko c5b5a1e57d [cr149][Android] Remove SigninManager.revokeSyncConsent()
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/960d5db5ab29411f0289086c362f324cb648299f

commit 960d5db5ab29411f0289086c362f324cb648299f
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date:   Wed Apr 22 01:45:07 2026 -0700

    [sync/android] Remove SigninManager.revokeSyncConsent()

    Bug: 40066949
    Change-Id: I8f3f28adbc4af00a875d7ffd509413fe7780efcb
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7776209
    Commit-Queue: Victor Vianna <victorvianna@google.com>
    Reviewed-by: Boris Sazonov <bsazonov@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1618720}
2026-05-22 16:25:10 -04:00
Claudio DeSouza 5fe7b5b8fd [cr149] //chrome/browser/lifetime modularised
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}
2026-05-22 16:25:10 -04:00
Artem Samoilenko 645e789a84 [cr149][Android] Remove getSetupInProgressHandle()
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/24cc34c57c5013cf7e27d1c9319cd506770b6477

commit 24cc34c57c5013cf7e27d1c9319cd506770b6477
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date:   Tue Apr 21 05:19:50 2026 -0700

    [sync/android] Remove getSetupInProgressHandle()

    There was only one remaining call. It was originally added for the
    "advanced sync setup" flow, to ensure sync only started after the user
    confirmed data type settings (thus preventing an irreversible upload
    of unwanted data). That flow doesn't exist anymore, since existing data
    is not uploaded when the user signs in. So the call is removed.

    Strictly speaking, there is a chance this changes behavior, as the
    call was done for both syncing and signed-in users. But if that's the
    case, it's a bug to be fixed separately. Notice this function doesn't
    exist on iOS anymore.

    Bug: 40066949
    Change-Id: I6aacd39823972c5bc1b7181a9f1a52f57a62eba2
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7771958
    Commit-Queue: Victor Vianna <victorvianna@google.com>
    Reviewed-by: Mahmoud Rashad <mmrashad@google.com>
    Cr-Commit-Position: refs/heads/main@{#1618071}
2026-05-22 16:25:09 -04:00
Artem Samoilenko 93115acab6 [cr149][Android] Adds new 'Site controls' to three dot app menu
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/ecb3333dc0743a60d22e3f1a5999779b2650999b

commit ecb3333dc0743a60d22e3f1a5999779b2650999b
Author: Joel Tan-Aristy <jtanaristy@google.com>
Date:   Wed Apr 1 10:43:20 2026 -0700

    [BackButton] Adds new 'Site controls' to three dot app menu

    Makes the 'Site controls' available to the CCT three dot menu.

    https://screenshot.googleplex.com/8ozAFMVopZ8V2W9

    Also adds 'Site controls' behind the three dot app menu feature flag.

    https://screenshot.googleplex.com/7HvdevHy3Ys5Beq

    Bug: 493306650
    Change-Id: Ia436ea9b28fc27749609ed585e36a612401ca9f4
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7717669
    Reviewed-by: Theresa Sullivan <twellington@chromium.org>
    Commit-Queue: Joel Tan-Aristy <jtanaristy@google.com>
    Reviewed-by: Madhav Pruthi <madhavpruthi@google.com>
    Cr-Commit-Position: refs/heads/main@{#1608645}
2026-05-22 16:25:09 -04:00
Artem Samoilenko 112cdc83df [cr149][Android] Fixes for AssertThrowsMinimizer warning 2026-05-22 16:25:09 -04:00
Claudio DeSouza abbf8cc947 [cr149] IsWebContentsVisible cannot be override through Browser
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}
2026-05-22 16:25:09 -04:00
Claudio DeSouza c74b5da1ec [cr149] BrowserList was deleted
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/499cfaea23ab8386461cbfeec1c4a2dcbd8ca8f6

commit 499cfaea23ab8386461cbfeec1c4a2dcbd8ca8f6
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date:   Wed Apr 22 11:19:07 2026 -0700

    [bedrock] Remove BrowserList

    There are no remaining clients of BrowserList and no behavior changes
    in this CL.

    The changes involve removing the files and cleaning up any remaining
    includes / comments.

    Bug: 431671320
    Change-Id: Ie61bbd3f8371cd5777d179d08ac4f47b9e29dd01
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7744394
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
    Cr-Commit-Position: refs/heads/main@{#1618978}
2026-05-22 16:25:09 -04:00
Artem Samoilenko 9a7833bd45 [cr149][WIP][Android] Sync code in removed from ManageSyncSettings
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/008e21eee2ca1b4d967a68367121423f6e411e2b

commit 008e21eee2ca1b4d967a68367121423f6e411e2b
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date:   Mon Apr 20 04:59:40 2026 -0700

    [sync/android] Remove sync-the-feature code in ManageSyncSettings

    kForceMigrateSyncingUserToSignedIn was enabled by default on Android
    in M148.

    OBSOLETE_HISTOGRAMS=The sync error card was removed, along with its histograms.

    Bug: 40066949
    Change-Id: I8317957d3ad7cdeecaac415a11a2974af90d65d4
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7772912
    Reviewed-by: Ankush Singh <ankushkush@google.com>
    Reviewed-by: Marc Treib <treib@chromium.org>
    Commit-Queue: Victor Vianna <victorvianna@google.com>
    Auto-Submit: Victor Vianna <victorvianna@google.com>
    Cr-Commit-Position: refs/heads/main@{#1617409}
2026-05-22 16:25:08 -04:00
Artem Samoilenko b42e1d7584 [cr149][Android] Fixes for AlreadyChecked nullaway warning 2026-05-22 16:25:08 -04:00
Max Karolinskiy 5bdd8c5220 [cr149] Disables kInfobarRefresh feature.
Our infobar is not ready for this flag to be turned on.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/e6f05260cfb28bdb2219f4b30e6d5ff9ddb2aab6

commit e6f05260cfb28bdb2219f4b30e6d5ff9ddb2aab6
Author: Foromo Daniel Soromou <koretadaniel@chromium.org>
Date:   Mon Apr 20 15:07:25 2026 -0700

    Enable infobar refresh and prioritization by default

    Update the `kInfobarRefresh` and `kInfobarPrioritization` feature flags
    to be enabled by default. This rolls out the refreshed infobar UI and
    the associated prioritization logic as the standard behavior.

    Fixed: 447176374
2026-05-22 16:25:08 -04:00
Artem Samoilenko 1936424dcb [cr149][Android] Changes for ThinWebViewFactory
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0e9f87c1f965e3a4ec98bb5334ca4d70d95c62df

commit 0e9f87c1f965e3a4ec98bb5334ca4d70d95c62df
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date:   Fri Apr 17 08:07:47 2026 -0700

    [TabBottomSheet] Add permissions support

    Bug: 491498632
    Change-Id: I44e91ce4ac8ef0bbc413503dd73123caba8cbbc5
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763465
    Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
    Reviewed-by: Theresa Wellington <twellington@chromium.org>
    Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616570}
2026-05-22 16:25:08 -04:00
Artem Samoilenko 6c0af000b6 [cr149][Android] Changes for locking the toolbar when actuating
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6e0e9337f49ea19d9e9246160c199089d3f21892

commit 6e0e9337f49ea19d9e9246160c199089d3f21892
Author: Hailey Wang <haileywang@google.com>
Date:   Mon Apr 20 12:27:25 2026 -0700

    [Glic] Lock the toolbar when actuating

    Bug: 501465099
    Change-Id: Ic5ad6bd5a247193c62d14f5c0ab7bc27f11022cd
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7762873
    Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
    Commit-Queue: Hailey Wang <haileywang@google.com>
    Cr-Commit-Position: refs/heads/main@{#1617694}
2026-05-22 16:25:07 -04:00
Artem Samoilenko 3de1ba4f5c [cr149][Android] Nullmark Supplier<TabCreatorManager> correctly
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e08a5701d07c631663f475bb1ba331e303a6fb6c

commit e08a5701d07c631663f475bb1ba331e303a6fb6c
Author: Henrique Nakashima <hnakashima@chromium.org>
Date:   Fri Apr 17 12:02:30 2026 -0700

    [Android] Nullmark Supplier<TabCreatorManager> correctly

    This is part of adding @NullMarked to TabbedRootUiCoordinator

    Change-Id: I6ac5aa86205963624397e99b15180f06c1c7b488
    Bug: 389129271
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7766565
    Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
    Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616739}
2026-05-22 16:25:07 -04:00
Artem Samoilenko 1d33bdf24c [cr149][Android] Changes for optional/adaptive code in new build target
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/eb9d7815cb653e948dda93f5f7e6df48080ab8ac

commit eb9d7815cb653e948dda93f5f7e6df48080ab8ac
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date:   Tue Apr 21 10:28:47 2026 -0700

    [IA] Move optional/adaptive code to new build target

    When moved to LocationBar this will create a cyclic dependency between
    omnibox and toolbar. Break this by moving the optional/adaptive button
    code to a separate build target.

    Bug: 491511644
    Change-Id: I4531d28de4507d5590f0ba447e6b66cc2a9766a0
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7771432
    Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
    Reviewed-by: Theresa Wellington <twellington@chromium.org>
    Reviewed-by: Sky Malice <skym@chromium.org>
    Commit-Queue: Theresa Wellington <twellington@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1618292}
2026-05-22 16:25:07 -04:00
Artem Samoilenko 166a0147a5 [cr149][Android] Changes for TabbedAppMenuPropertiesDelegate c-tor
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/bafb125de13ea5ef6b6bf0a39398f836c834efc2

commit bafb125de13ea5ef6b6bf0a39398f836c834efc2
Author: Yanling <yanlinghu@google.com>
Date:   Mon Apr 20 11:56:14 2026 -0700

    [Feed] Part2 of remove web feed feature: Delete Web Feed small UI components and associated IPHs

    this CL cleans up various small UI components, including removing
    related In-Product Help (IPH) features and preference keys.

    1. Removed WebFeedMainMenuItem, WebFeedFollowIntroController,
    WebFeedFollowIntroView,WebFeedRecommendationFollowAcceleratorController,
    ClickableTextBubble and WebFeedSnackbarController.

    2. Removed IPH Features: Deletion reference: https://crrev.com/c/7067894
    - IPH_WebFeedFollow
      * Added in: https://crrev.com/c/2817518
    - IPH_WebFeedAwareness
      * Added in: https://crrev.com/c/3632953
    - IPH_WebFeedPostFollowDialogWithUIUpdate
      * Added in: https://crrev.com/c/4867332
    - IPH_WebFeedPostFollowDialog
      * Added in: https://crrev.com/c/4867332

    3. Removed Chrome Preference Keys:
    - WEB_FEED_INTRO_LAST_SHOWN_TIME_MS
    - WEB_FEED_INTRO_WEB_FEED_ID_SHOWN_TIME_MS_PREFIX
    - WEB_FEED_INTRO_WEB_FEED_ID_SHOWN_COUNT_PREFIX
      * Added in: https://crrev.com/c/2817518 and https://crrev.com/c/3692349
      * Deletion reference: https://crrev.com/c/7561272
      * Followed deprecation instructions from ChromePreferenceKeys.java: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java;l=36-39;drc=30c17203494464b1b107c90273c1358db359e04a

    Cq-Include-Trybots: luci.chrome.try:android-internal-binary-size;luci.chrome.try:android-internal-rel;luci.chrome.try:android-internal-dbg
    Bug: 407797637
    Change-Id: I0e3669255394f6121f5d5b4352171767d0f43fa3
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7757080
    Reviewed-by: Theresa Wellington <twellington@chromium.org>
    Reviewed-by: Xi Han <hanxi@chromium.org>
    Commit-Queue: Yanling Hu <yanlinghu@google.com>
    Cr-Commit-Position: refs/heads/main@{#1617671}
2026-05-22 16:25:07 -04:00
Artem Samoilenko ed7896dca4 [cr149][Android] Changes for tab favicon feature
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ee2afaf87b258f0f692c32d17866114a996eb66

commit 5ee2afaf87b258f0f692c32d17866114a996eb66
Author: Zhe Li <zheliooo@google.com>
Date:   Mon Apr 20 13:08:32 2026 -0700

    [TabFavicon] Do not fallback to host for tab switcher and tab strip

    - Guarded behind feature flag sFaviconDisableHostFallback.
    - Sets `fallbackToHost = false` in LayerTitleCache.java and TabListFaviconProvider.java when feature is enabled.
    - Default `fallbackToHost = true` for all the other callsites.
    - Added histograms Favicons.AndroidHostFallbackFetchResult.* in favicon_helper.cc

    Bug: 468979189
    Change-Id: I5574adf85647c1d5205889dddc2bc42bfba35305
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7745223
    Reviewed-by: Theresa Wellington <twellington@chromium.org>
    Commit-Queue: Zhe Li <zheliooo@google.com>
    Auto-Submit: Zhe Li <zheliooo@google.com>
    Cr-Commit-Position: refs/heads/main@{#1617726}
2026-05-22 16:25:06 -04:00
Claudio DeSouza 75804a38a6 [cr149] //chrome/browser/metrics modularised
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}
2026-05-22 16:25:06 -04:00
Claudio DeSouza 645d1b92c1 [cr149][WIP] ReadingListPageHandler has WebContentsObserver
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}
2026-05-22 16:25:06 -04:00
Claudio DeSouza 44051d8b9f [WIP][cr149] AvatarToolbarButton using more of state_manager_
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}
2026-05-22 16:25:06 -04:00
Claudio DeSouza 611ecdf354 [cr149] //chrome/browser/first_run modularised
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}
2026-05-22 16:25:06 -04:00
Claudio DeSouza e45264bb6c [cr149] ToolbarButtonProvider now unowned data
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/d37c85afb67b54cef97da7097943b250dc8e6590

commit d37c85afb67b54cef97da7097943b250dc8e6590
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date:   Mon Apr 20 11:08:23 2026 -0700

    [bedrock] Update ToolbarButtonProvider to support UnownedUserData

    Allows clients to depend on ToolbarButtonProvider without a
    direct dependency on BrowserView or Browser.

    Bug: 502745808
    Change-Id: If060854181eceba5942c69570f36e3cbb2ac7af9
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7770291
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Reviewed-by: David Yeung <dayeung@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1617621}
2026-05-22 16:25:05 -04:00
Claudio DeSouza 824695407f [cr149] Fixing kLearnMoreLink override and others
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}
2026-05-22 16:25:05 -04:00
Claudio DeSouza 75e381f5a4 [android][cr149] ChromeBaseCheckBoxPreference dropped from sync settings
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/008e21eee2ca1b4d967a68367121423f6e411e2b

commit 008e21eee2ca1b4d967a68367121423f6e411e2b
Author: Victor Hugo Vianna Silva <victorvianna@google.com>
Date:   Mon Apr 20 04:59:40 2026 -0700

    [sync/android] Remove sync-the-feature code in ManageSyncSettings

    kForceMigrateSyncingUserToSignedIn was enabled by default on Android
    in M148.

    OBSOLETE_HISTOGRAMS=The sync error card was removed, along with its histograms.

    Bug: 40066949
    Change-Id: I8317957d3ad7cdeecaac415a11a2974af90d65d4
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7772912
    Reviewed-by: Ankush Singh <ankushkush@google.com>
    Reviewed-by: Marc Treib <treib@chromium.org>
    Commit-Queue: Victor Vianna <victorvianna@google.com>
    Auto-Submit: Victor Vianna <victorvianna@google.com>
    Cr-Commit-Position: refs/heads/main@{#1617409}
2026-05-22 16:25:05 -04:00
Claudio DeSouza 2d41d7aa65 [cr149] UpdateDevtools simplified
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}
2026-05-22 16:25:05 -04:00
Claudio DeSouza ba22be5679 [cr149] GetAvatarToolbarButton() deleted
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}
2026-05-22 16:25:04 -04:00
Claudio DeSouza ca98abdf61 [cr149] Reanchoring clipboard_host_impl.h override
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/32963b6b2e6886a83b4c5bb02d938f209bb54400

commit 32963b6b2e6886a83b4c5bb02d938f209bb54400
Author: Ahmed Raslan <rslan@google.com>
Date:   Thu Apr 16 11:24:18 2026 -0700

    Unify ClipboardEndpoint creation

    This change centralizes the logic for creating ui::DataTransferEndpoint
    and content::ClipboardEndpoint instances by moving the helper functions
    CreateDataEndpoint and CreateClipboardEndpoint into
    content/public/browser/clipboard_types.h

    Bug: 410835513
    Change-Id: I42461c2551fa3ddbd479f4c2c47c1d18417eeba7
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7748266
    Reviewed-by: Bo Liu <boliu@chromium.org>
    Reviewed-by: Dominique Fauteux-Chapleau <domfc@chromium.org>
    Reviewed-by: Nasko Oskov <nasko@chromium.org>
    Commit-Queue: Ahmed Raslan <rslan@google.com>
    Cr-Commit-Position: refs/heads/main@{#1616013}
2026-05-22 16:25:04 -04:00
Claudio DeSouza 1a56382987 [cr149] Fixing @typescript-eslint/no-explicit-any
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/3de9c88e2d8b97d42020b68371f93044d366d3f4

commit 3de9c88e2d8b97d42020b68371f93044d366d3f4
Author: dpapad <dpapad@chromium.org>
Date:   Fri Apr 17 12:17:03 2026 -0700

    WebUI: Fix violations of @typescript-eslint/no-explicit-any, part 5.

    Bug: 494464740
    Change-Id: I5dc211b93b5c7dcd6cb61fb92451b0d4d11d3742
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7769450
    Reviewed-by: Fred Shih <ffred@chromium.org>
    Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616760}
2026-05-22 16:25:04 -04:00
Claudio DeSouza ee21a68e88 [cr149] Correcting how PageActionPassKey is passed around
This follows the upstream change to change the type alias.

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

commit 2e10893b38937e012a704bcfc3fe0d31e2a5e6a6
Author: Kaan Alsan <alsan@chromium.org>
Date:   Fri Apr 17 08:39:41 2026 -0700

    Refactor PageActionController to decouple from PageActionView

    Change-Id: Ibbe900b983c980e7af502e89eda530082015dd4c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7755799
    Commit-Queue: Kaan Alsan <alsan@chromium.org>
    Reviewed-by: Muhammad Salmaan <musalmaan@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616595}
2026-05-22 16:25:04 -04:00
Claudio DeSouza 3b6b6f1a07 [cr149] window_finder.h moved under dragging/
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/65bd2a06e6234336695791f408fa1de79f6d9c83

commit 65bd2a06e6234336695791f408fa1de79f6d9c83
Author: Alison Gale <agale@chromium.org>
Date:   Thu Apr 16 11:46:19 2026 -0700

    Move window finder into dragging subfolder

    Bug: 475568167
    Change-Id: I21eb567e5c5b69bd83be735d2d81b271ea75274b
    Bypass-Check-License: files moved
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7762340
    Commit-Queue: Alison Gale <agale@chromium.org>
    Reviewed-by: Vince Lugli <lugli@google.com>
    Cr-Commit-Position: refs/heads/main@{#1616028}
2026-05-22 16:25:03 -04:00
Claudio DeSouza dd6dae5f42 [cr149] tab_strip_observer.h moved under shared/
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0c88dc794ab433f902d690ed5d793b535c79c8c2

commit 0c88dc794ab433f902d690ed5d793b535c79c8c2
Author: Alison Gale <agale@chromium.org>
Date:   Thu Apr 16 13:17:30 2026 -0700

    Move shared tabs files to shared subdirectory

    Bug: 475568167
    Change-Id: I3099c519174a4860701c64c46c61bea0f3801234
    Bypass-Check-License: Moving files
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763412
    Auto-Submit: Alison Gale <agale@chromium.org>
    Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
    Reviewed-by: Vince Lugli <lugli@google.com>
    Commit-Queue: Mitsuru Oshima <oshima@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616085}
2026-05-22 16:25:03 -04:00
Claudio DeSouza 00d7fccd8a [cr149] Several fixes around NativeFrameViewLinux
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}
2026-05-22 16:25:03 -04:00
Claudio DeSouza b4591a82e3 [cr149] Update BraveUpdateClientConfig ctor calls
`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}
2026-05-22 16:25:03 -04:00
Claudio DeSouza fed5a45acd [cr149] Upgrading Apple toolchain to 26.4
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/8e4be4466c32838b84511a1f65130f6b7ac097f6

commit 8e4be4466c32838b84511a1f65130f6b7ac097f6
Author: Devon Loehr <dloehr@google.com>
Date:   Fri Apr 17 09:48:46 2026 -0700

    mac: Switch to Xcode 26.4 (17E192) and SDK 26.4 (25E236)

    Additionally, update the instructions in xcode_binaries.yaml to make it
    more convenient to compute the version numbers during the cipd upload.

    Bug: 503714260
    Change-Id: Ie981bc0d96118293194300ef8506070d91331847
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7726997
    Reviewed-by: Hans Wennborg <hans@chromium.org>
    Reviewed-by: Mark Mentovai <mark@chromium.org>
    Commit-Queue: Devon Loehr <dloehr@google.com>
    Cr-Commit-Position: refs/heads/main@{#1616640}
2026-05-22 16:25:02 -04:00
Claudio DeSouza b8aa9d78ba [cr149] components/os_crypt/sync deleted
Remove any remnants of os_crypt/sync from Brave - all Brave code has
already been transitioned to async OSCrypt.

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

commit a4cab4afb48c24f4557ec6dc7cbd1bd192fb65b4
Author: Tom Anderson <thomasanderson@chromium.org>
Date:   Fri Apr 17 15:10:45 2026 -0700

    [OSCrypt] Remove sync backend

    R=thestig

    Fixed: 447372315
    Change-Id: I56d58c4326aa74f540370cd1daf6cf974b15d4d6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7765593
    Reviewed-by: Lei Zhang <thestig@chromium.org>
    Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1616892}
2026-05-22 16:25:02 -04:00
Claudio DeSouza affc277c28 [cr149] Use //components/one_time_tokens/core/common:features
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}
2026-05-22 16:25:02 -04:00
Max Karolinskiy 85b7089c0b [cr149] Fixes dangling pointer in ApplicationStateMonitor.
Memory was released on:
 base::debug::CollectStackTrace() [../../base/debug/stack_trace_posix.cc:1050:7]
 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:280:20]
 base::allocator::(anonymous namespace)::DanglingRawPtrDetected() [../../base/allocator/partition_alloc_support.cc:439:11]
 allocator_shim::internal::PartitionAllocFunctionsInternal<>::FreeWithSize() [../../base/allocator/partition_allocator/src/partition_alloc/in_slot_metadata.h:389:5]
 GlobalFeatures::~GlobalFeatures() [gen/third_party/libc++/src/include/__memory/unique_ptr.h:74:5]
 BraveGlobalFeatures::~BraveGlobalFeatures() [../../brave/browser/brave_global_features.cc:12:43]
 BrowserProcessImpl::~BrowserProcessImpl() [gen/third_party/libc++/src/include/__memory/unique_ptr.h:74:5]
 BraveBrowserProcessImpl::~BraveBrowserProcessImpl() [../../brave/browser/brave_browser_process_impl.cc:142:51]
 BraveBrowserProcessImpl::~BraveBrowserProcessImpl() [../../brave/browser/brave_browser_process_impl.cc:142:51]
 ChromeBrowserMainParts_ChromiumImpl::PostDestroyThreads() [gen/third_party/libc++/src/include/__memory/unique_ptr.h:74:5]
 content::BrowserMainLoop::ShutdownThreadsAndCleanUp() [../../content/browser/browser_main_loop.cc:1281:13]
 content::BrowserMainRunnerImpl::Shutdown() [../../content/browser/browser_main_runner_impl.cc:175:17]

Dangling reference from:
 base::ScopedObservation<>::Observe() [../../base/allocator/partition_allocator/src/partition_alloc/pointers/instance_tracer.h:49:5]
 base::NoDestructor<>::NoDestructor<>() [../../brave/browser/brave_ads/application_state/application_state_monitor/application_state_monitor_linux.cc:40:35]
 brave_ads::ApplicationStateMonitor::GetInstance() [../../brave/browser/brave_ads/application_state/application_state_monitor/application_state_monitor_linux.cc:35:59]
 brave_ads::AdsServiceImpl::InitializeBatAdsCallback() [../../brave/components/brave_ads/browser/ads_service_impl.cc:430:7]
2026-05-22 16:25:01 -04:00
Max Karolinskiy d99ea245ce [cr149] Fixes BraveWindowTracker dangling pointer.
BraveWindowTracker is initialized in
BraveBrowserMainExtraParts::PreMainMessageLoopRun. It uses
base::ScopedObservation<BrowserCollection, BrowserCollectionObserver>,
which obseves browser collection which goes out of scope with
GlobalFeatures. BraveWindowTracker needs to stop observing before then.

Added HasInstance/ClearInstance to BraveWindowTracker modeling this
behavior on upstream's ChromeBrowserMainExtraPartsMetrics and
metrics::TabStatsTracker.

[33240:46492:0417/173936.000:ERROR:base\allocator\partition_alloc_support.cc:683] A freed allocation is still referenced by a dangling pointer at exit, or at test end. Leaked raw_ptr/raw_ref could cause PartitionAlloc's quarantine memory bloat.

Memory was released on:
        brave_browser_tests!base::allocator::`anonymous namespace'::DanglingRawPtrDetected [0x7ff7130f09ee+3ee] (base\allocator\partition_alloc_support.cc:438)
        brave_browser_tests!GlobalFeatures::~GlobalFeatures [0x7ff711aec13d+cd] (chrome\browser\global_features.cc:96)
        brave_browser_tests!BraveGlobalFeatures::~BraveGlobalFeatures [0x7ff710d19780+10] (brave\browser\brave_global_features.cc:12)
        brave_browser_tests!BrowserProcessImpl::~BrowserProcessImpl [0x7ff711b8ccb8+138] (chrome\browser\browser_process_impl.cc:565)
        brave_browser_tests!BraveBrowserProcessImpl::~BraveBrowserProcessImpl [0x7ff711b46128+3c8] (brave\browser\brave_browser_process_impl.cc:142)
        brave_browser_tests!BraveBrowserProcessImpl::~BraveBrowserProcessImpl [0x7ff711b47fa0+10] (brave\browser\brave_browser_process_impl.cc:142)
        brave_browser_tests!ChromeBrowserMainParts_ChromiumImpl::PostDestroyThreads [0x7ff711b52658+168] (chrome\browser\chrome_browser_main.cc:2291)
        brave_browser_tests!content::BrowserMainLoop::ShutdownThreadsAndCleanUp [0x7ff70d2638c7+7b7] (content\browser\browser_main_loop.cc:1282)
        brave_browser_tests!content::BrowserMainRunnerImpl::Shutdown [0x7ff70d265b86+106] (content\browser\browser_main_runner_impl.cc:177)

ERROR:base\allocator\partition_alloc_support.cc:700] Dangling reference from:
ERROR:base\allocator\partition_alloc_support.cc:701]      brave_browser_tests!partition_alloc::internal::base::debug::CollectStackTrace [0x7ff713271b82+12] (base\allocator\partition_allocator\src\partition_alloc\partition_alloc_base\debug\stack_trace_win.cc:103)
        brave_browser_tests!base::internal::InstanceTracer::TraceImpl [0x7ff7132712ee+1fe] (base\allocator\partition_allocator\src\partition_alloc\pointers\instance_tracer.cc:66)
        brave_browser_tests!base::ScopedObservation<brave_rewards::RewardsService,brave_rewards::RewardsServiceObserver,0>::Observe [0x7ff707af12d8+128] (base\scoped_observation.h:117)
        brave_browser_tests!brave::BraveWindowTracker::BraveWindowTracker [0x7ff7119c682d+11d] (brave\browser\p3a\p3a_core_metrics.cc:60)
        brave_browser_tests!brave::BraveWindowTracker::CreateInstance [0x7ff7119c6de1+21] (brave\browser\p3a\p3a_core_metrics.cc:71)
        brave_browser_tests!BraveBrowserMainExtraParts::PreMainMessageLoopRun [0x7ff711a00915+185] (brave\browser\brave_browser_main_extra_parts.cc:104)
        brave_browser_tests!ChromeBrowserMainParts_ChromiumImpl::PreMainMessageLoopRun [0x7ff711b4fd60+60] (chrome\browser\chrome_browser_main.cc:1465)
2026-05-22 16:25:01 -04:00
Max Karolinskiy a6724631df [cr149] MV2DeprecationImpactChecker moved to //extensions.
Chromium change:
https://chromium.googlesource.com/chromium/src.git/+/b11ac9f51e136dd9f345c3f9f79b83aca5d6cb1f

commit b11ac9f51e136dd9f345c3f9f79b83aca5d6cb1f
Author: Miyoung shin <myid.shin@igalia.com>
Date:   Tue Apr 14 17:37:04 2026 -0700

    Move MV2DeprecationImpactChecker to //extensions

    This CL relocate MV2DeprecationImpactChecker to //extensions since
    it no longer depends on //chrome.

    Bug: 358567092
2026-05-22 16:25:01 -04:00
Max Karolinskiy 39daa64694 [cr149] Removes the override for an unused icon.
Chromium change:
https://chromium.googlesource.com/chromium/src.git/+/84fb307ed868ca8903dba11a75a1f0afc34bffb3

commit 84fb307ed868ca8903dba11a75a1f0afc34bffb3
Author: Emily Shack <emshack@chromium.org>
Date:   Tue Apr 14 17:13:19 2026 -0700

    [GlowUp] Remove unused Views icons

    These icons are not referenced anywhere in the codebase, remove them
    prior to a planned mass icon update

    Bug: 498731414
2026-05-22 16:25:01 -04:00
Artem Samoilenko 0ec29d0b7a [cr149][Android] Changes for partner bookmarks override
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/da43416448f4755db99108cd2361f328d3090f0e

commit da43416448f4755db99108cd2361f328d3090f0e
Author: Andrew Grieve <agrieve@chromium.org>
Date:   Wed Apr 15 08:31:29 2026 -0700

    Android: Roll NullAway 0.13.1 -> 0.13.3

    Bug: 502166094
    Change-Id: I6af3871c9cf3b529c654e466b2167282279e9537
    Cq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7762582
    Owners-Override: Andrew Grieve <agrieve@chromium.org>
    Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
    Auto-Submit: Andrew Grieve <agrieve@chromium.org>
    Commit-Queue: Andrew Grieve <agrieve@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1615193}
2026-05-22 16:25:00 -04:00
Artem Samoilenko 6096b5e237 [cr149][Android] Refactor baseButtonDataProvider to user button spec builder
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/cd92b2ad88f24a127a8bc1aa36f7eb6efbcf7b3b

commit cd92b2ad88f24a127a8bc1aa36f7eb6efbcf7b3b
Author: Hailey Wang <haileywang@google.com>
Date:   Tue Apr 14 19:02:01 2026 -0700

    [Glic] Refactor baseButtonDataProvider to user button spec builder

    Bug: 485624827
    Change-Id: Ib0812fd83c81b13f1b1f246139bb38beb0194e1a
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7667476
    Reviewed-by: Siddhartha S <ssid@chromium.org>
    Reviewed-by: Salvador Guerrero Ramos <salg@google.com>
    Commit-Queue: Hailey Wang <haileywang@google.com>
    Cr-Commit-Position: refs/heads/main@{#1614895}
2026-05-22 16:25:00 -04:00
Artem Samoilenko 2e02037cce [cr149][Android] Fix for gn check
Error fixed:
ERROR at //brave/browser/brave_ads/tabs/ads_tab_helper.cc:28:11: Can't include this header from here.
          ^------------------------------------------------------------------
The target:
  //brave/browser/brave_ads/tabs:tabs
is including a file from the target:
  //chrome/browser/ui/browser_window:browser_window

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

commit 2ebf7353bb2535b6121d1a26340d3f4e74046e42
Author: Thomas Lukaszewicz <tluk@chromium.org>
Date:   Tue Apr 14 21:51:30 2026 -0700

    [bedrock] Remove BrowserListObserver

    Bug: 431671320
    Change-Id: Iff946bf520ab44049c855d91576ef53ca1916e00
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7744448
    Reviewed-by: Qikai Zhong <qikaizhong@microsoft.com>
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1614935}
2026-05-22 16:25:00 -04:00
Max Karolinskiy 0525d152fb [cr149] ManifestV2ExperimentManager moved to //extensions
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c1c2d43e698d1109f8924adee57dd21062ad9a2d

commit c1c2d43e698d1109f8924adee57dd21062ad9a2d
Author: Miyoung shin <myid.shin@igalia.com>
Date:   Thu Apr 16 04:33:36 2026 -0700

    Move ManifestV2ExperimentManager to //extensions

    This CL relocates ManifestV2ExperimentManager to //extensions,
    as it no longer depends on //chrome.
    It also introduces interfaces to check whether a manifest version
    is allowed and whether a profile can use non-component extensions.

    Bug: 358567092
    Change-Id: I74667a139b36de0c16159d7de17f78ee76aea2ab
    Bypass-Check-License: Moving files
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7735248
    Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
    Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
    Cr-Commit-Position: refs/heads/main@{#1615751}
2026-05-22 16:24:59 -04:00
Claudio DeSouza cffb249298 [cr149] FindLastActiveWithProfile returning BWI
This change allows a couple of more places to be migrated to
`BrowserWindowInterface`.

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

commit e8d0df41d25900497716dd3a4b070c6436fa1a97
Author: Kun Wang <kunwang@microsoft.com>
Date:   Wed Apr 15 23:35:39 2026 -0700

    [bedrock] Migrate FindLastActiveWithProfile Step 1

    Bug: 494010890
    Change-Id: Ie0385deeda2e2f28baf75a810ada0becf5807c78
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7753884
    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@{#1615659}
2026-05-22 16:24:59 -04:00
Jay Harris b69c05894e [cr149][Typescript]: Fix builds
Chromium has turned on noUncheckedSideEffectImports flag which requires
type definitions to be generated for side effect imports, i.e.

import './foo'

However, the build process we use for generating a bunch of our bundles
doesn't emit type definitions. I've got a work in progress branch on
master which gets things kind of working but I think I hit a bit of a
road block.
2026-05-22 16:24:59 -04:00
Max Karolinskiy f050aa50b3 [cr149][iOS] SendTabToSelfModel::AddEntry takes a callback param now.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/7ff606db0b865f1b09886ff5ae61ffbc4b54385c

commit 7ff606db0b865f1b09886ff5ae61ffbc4b54385c
Author: Michael Tatarski <mtatarski@google.com>
Date:   Tue Apr 14 04:43:13 2026 -0700

    [STTS] Add commit confirmation callback to Send Tab To Self

    This CL introduces the infrastructure to support commit confirmation
    notifications when a tab is sent to another device. Currently, the UI
    provides feedback either immediately after the send action is initiated
    (Android) or none at all (iOS, Desktop).

    This change updates the Send Tab To Self model and bridge to accept a
    confirmation callback. The bridge executes the callback with success
    immediately after the entry is successfully queued in the local sync
    pipeline, and invokes it with failure if it cannot be queued (e.g. if
    the URL is invalid or sync is not tracking metadata). This allows the UI
    to reliably react to the operation's initial result.

    Bug: 492072882
2026-05-22 16:24:59 -04:00
Artem Samoilenko b40d81b10a [cr149][Android] Changes for isPanelShowingForBrowser check to toolbar button
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/987491a33cac6fd9e68a3fe310fa3731bb9deb87

commit 987491a33cac6fd9e68a3fe310fa3731bb9deb87
Author: Hailey Wang <haileywang@google.com>
Date:   Mon Apr 13 19:38:50 2026 -0700

    [Glic] Add isPanelShowingForBrowser check to toolbar button

    Tracks the panel open state via GlobalShowHideObserver and
    isPanelShowingForBrowser.

    Did a small readability refactor for updateButtonState.

    Bug: 485624827
    Change-Id: Ic986e11bff70bdc52653518d309f79059828d2f5
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7728992
    Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
    Commit-Queue: Hailey Wang <haileywang@google.com>
    Cr-Commit-Position: refs/heads/main@{#1614158}
2026-05-22 16:24:58 -04:00
Claudio DeSouza 93b24be10d [cr149] //chrome/browser/password_manager introduced
This is part of the broader browser modularisation.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/9ddae426e2086192e5dcef713af29ccb535784f8

commit 9ddae426e2086192e5dcef713af29ccb535784f8
Author: Erik Chen <erikchen@chromium.org>
Date:   Wed Apr 15 17:38:39 2026 -0700

    Reland "Modularize //chrome/browser/password_manager"

    This reverts commit d781c61029b64c262748f62b5968c3ab85f4cc9f.

    Reason for revert: The revert was not necessary. Two CLs landed at the same time and caused issues:
    https://chromium-review.googlesource.com/c/chromium/src/+/7762999
    https://chromium-review.googlesource.com/c/chromium/src/+/7763756

    Both CLs were reverted. The second revert was not necessary.

    Original change's description:
    > Revert "Modularize //chrome/browser/password_manager"
    >
    > This reverts commit cbf43bd0c009932dcdd962090bfd1bd83aec840d.
    >
    > Reason for revert: Suspect culprit of tree closure https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Builder/119674/overview, https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Builder/119672/overview
    >
    > Original change's description:
    > > Modularize //chrome/browser/password_manager
    > >
    > > This change refactors the `chrome/browser/password_manager` BUILD.gn to
    > > split it into a separate `:password_manager` (headers/public interface)
    > > and `:impl` (implementation) source sets. The file listings are moved
    > > out of the top-level `chrome/browser/BUILD.gn` into the
    > > password_manager-local BUILD.gn, improving modularity. Downstream
    > > BUILD.gn files across the tree are updated to add the new dependency
    > > targets as needed.
    > >
    > > AGENT_GENERATED_CL
    > >
    > > Bug: 353332589
    > > Change-Id: I813398f6d49fc57a247663533d9707d9cd84c04f
    > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7763756
    > > Commit-Queue: Erik Chen <erikchen@chromium.org>
    > > Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
    > > Cr-Commit-Position: refs/heads/main@{#1615417}
    >
    > Bug: 353332589
    > No-Presubmit: true
    > No-Tree-Checks: true
    > No-Try: true
    > Change-Id: I89659141371c73ed2bca7ce278ae052e914dd097
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7765706
    > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
    > Owners-Override: Anthony Cui <cuianthony@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#1615431}

    Bug: 353332589
    Change-Id: Ic15570d8da995828e705853aceadcd653e1fed49
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7766729
    Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
    Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
    Commit-Queue: Erik Chen <erikchen@chromium.org>
    Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1615521}
2026-05-22 16:24:58 -04:00