[cr147][Android] Replace TabContextMenuItemDelegate to ContextMenuItemDelegate

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/08483c4fea866719a9712db5d9a2d1ed531628f4

commit 08483c4fea866719a9712db5d9a2d1ed531628f4
Author: Hitarth Kothari <hitarthkothari@google.com>
Date:   Mon Feb 23 12:50:37 2026 -0800

    [ThinWebView] Add ThinWebViewContextMenuItemDelegate

    This CL adds context menu support for ThinWebView (used in the
    Preview/Ephemeral Tab) on Android.

    Key Changes:

    New Delegate: Implemented ThinWebViewContextMenuItemDelegate to handle
    actions like "Copy to clipboard" and "Open in default browser" for
    ThinWebView.

    New Menu Mode: Added ContextMenuMode.THIN_WEB_VIEW to
    ChromeContextMenuPopulator, providing a streamlined menu that excludes
    standard tab features (like "Read Later" or "Open in New Tab").

    Integration: Updated EphemeralTabCoordinator and ThinWebViewImpl to initialize and pass the context menu populator factory through the UI stack.

    ChromeContextMenuPopulatorTest to verify correct menu item filtering for the new mode.

    Testing: Added comprehensive unit tests in
    Bug: 483656137
    Change-Id: I4f293a21bd1a7eb74f90b2b06750aa7bb6473b67
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7572842
    Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
    Auto-Submit: Hitarth Kothari <hitarthkothari@google.com>
    Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
    Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
    Commit-Queue: Hitarth Kothari <hitarthkothari@google.com>
    Cr-Commit-Position: refs/heads/main@{#1588868}
This commit is contained in:
Artem Samoilenko
2026-03-26 19:25:20 -04:00
committed by Max Karolinskiy
parent 6ed5d5cdf3
commit a655f3b176
2 changed files with 4 additions and 5 deletions
@@ -13,7 +13,6 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.shields.UrlSanitizerServiceFactory;
import org.chromium.chrome.browser.tab.TabContextMenuItemDelegate;
import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
import org.chromium.components.embedder_support.contextmenu.ContextMenuNativeDelegate;
import org.chromium.components.embedder_support.contextmenu.ContextMenuParams;
@@ -24,12 +23,12 @@ import java.util.function.Supplier;
public class BraveChromeContextMenuPopulator extends ChromeContextMenuPopulator {
// To be deleted via bytecode and super field to be used
private TabContextMenuItemDelegate mItemDelegate;
private ContextMenuItemDelegate mItemDelegate;
// To be deleted via bytecode and super field to be used
private ContextMenuParams mParams;
public BraveChromeContextMenuPopulator(
TabContextMenuItemDelegate itemDelegate,
ContextMenuItemDelegate itemDelegate,
Supplier<ShareDelegate> shareDelegate,
List<CustomContentAction> customContentActions,
@ContextMenuMode int mode,
@@ -126,7 +126,6 @@ import org.chromium.chrome.browser.share.ShareDelegateImpl;
import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout;
import org.chromium.chrome.browser.suggestions.tile.TileRenderer;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabContextMenuItemDelegate;
import org.chromium.chrome.browser.tab.TabObscuringHandler;
import org.chromium.chrome.browser.tab_ui.TabContentManager;
import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
@@ -196,6 +195,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectableListL
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.components.commerce.core.ShoppingService;
import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
import org.chromium.components.embedder_support.contextmenu.ContextMenuNativeDelegate;
import org.chromium.components.embedder_support.contextmenu.ContextMenuParams;
import org.chromium.components.external_intents.ExternalNavigationDelegate;
@@ -2070,7 +2070,7 @@ public class BytecodeTest {
constructorsMatch(
"org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator",
"org/chromium/chrome/browser/contextmenu/BraveChromeContextMenuPopulator",
TabContextMenuItemDelegate.class,
ContextMenuItemDelegate.class,
Supplier.class,
List.class,
int.class,