hierarchical: Back button to go back in drilldown menu [chromium/src : main]

0 views
Skip to first unread message

Masa Fujita (Gerrit)

unread,
Jul 8, 2026, 10:00:25 AM (3 days ago) Jul 8
to chromium...@chromium.org, yusufo...@chromium.org, gogeral...@chromium.org, yuezhang...@chromium.org, browser-comp...@chromium.org, meilian...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, android-web...@chromium.org, davidj...@chromium.org, wychen...@chromium.org

Masa Fujita has uploaded the change for review

Commit message

hierarchical: Back button to go back in drilldown menu

This patch makes it so that when a hierarchical menu is in drilldown
mode, pressing the back button navigates the menu to the previous list
instead of dismissing the menu. If the menu is at the first page, it
still dismisses the menu.

ESC key behavior is unchanged, and immediately dismisses the menu
regardless of the menu page.

To do this, we register a runnable that calls
`HierarchicalMenuController#handleBackPress()` to
`OnBackInvokedDispatcher`. We also now store the `backRunnable` in a
stack so that we can call the latest one at will instead of having to
simulate a click on the back header.

Demo: http://screencast/cast/NTEyMjQxMTY2MDgzNjg2NHwxMDY5ZjRkMy0zNw
Bug: 530498012
Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd

Change diff


Change information

Files:
  • M android_webview/java/src/org/chromium/android_webview/AwSelectionDropdownMenuDelegate.java
  • M chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabOverflowMenuCoordinator.java
  • M chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabOverflowMenuHolder.java
  • M chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuCoordinator.java
  • M chrome/android/java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java
  • M chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java
  • M components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ContextMenuDialog.java
  • M ui/android/java/src/org/chromium/ui/hierarchicalmenu/HierarchicalMenuController.java
  • M ui/android/junit/src/org/chromium/ui/hierarchicalmenu/HierarchicalMenuControllerUnitTest.java
Change size: M
Delta: 9 files changed, 177 insertions(+), 6 deletions(-)
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newchange
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
Gerrit-Change-Number: 8061450
Gerrit-PatchSet: 1
Gerrit-Owner: Masa Fujita <mas...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Jul 8, 2026, 10:00:31 AM (3 days ago) Jul 8
to chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
Gerrit-Change-Number: 8061450
Gerrit-PatchSet: 1
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Comment-Date: Wed, 08 Jul 2026 14:00:06 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Jul 8, 2026, 10:35:00 AM (3 days ago) Jul 8
to Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
Gerrit-Change-Number: 8061450
Gerrit-PatchSet: 2
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Comment-Date: Wed, 08 Jul 2026 14:34:35 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Jul 8, 2026, 12:16:37 PM (3 days ago) Jul 8
to Jenna Himawan, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org
Attention needed from Jenna Himawan

Masa Fujita added 1 comment

Patchset-level comments
File-level comment, Patchset 2 (Latest):
Masa Fujita . resolved

PTAL~!

Open in Gerrit

Related details

Attention is currently required from:
  • Jenna Himawan
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
Gerrit-Change-Number: 8061450
Gerrit-PatchSet: 2
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Attention: Jenna Himawan <jhim...@google.com>
Gerrit-Comment-Date: Wed, 08 Jul 2026 16:16:04 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Jul 8, 2026, 12:22:13 PM (3 days ago) Jul 8
to Jenna Himawan, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org
Attention needed from Jenna Himawan

Masa Fujita added 1 comment

Patchset-level comments
Masa Fujita . resolved

PTAL~!

Masa Fujita

I will ask someone else for stamp after your review, maybe Wenyu :)

Open in Gerrit

Related details

Attention is currently required from:
  • Jenna Himawan
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
Gerrit-Change-Number: 8061450
Gerrit-PatchSet: 2
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Attention: Jenna Himawan <jhim...@google.com>
Gerrit-Comment-Date: Wed, 08 Jul 2026 16:21:46 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Masa Fujita <mas...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Jenna Himawan (Gerrit)

unread,
Jul 8, 2026, 12:58:47 PM (3 days ago) Jul 8
to Masa Fujita, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org
Attention needed from Masa Fujita

Jenna Himawan added 2 comments

Patchset-level comments
Jenna Himawan . unresolved

I think we should use BackPressHandler; here are some code references -

https://source.chromium.org/chromium/chromium/src/+/main:components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/gesture/BackPressHandler.java;drc=aefc135e9414a43c336ceca186ba59831d6f11d4;l=119

https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/back_press/android/java/src/org/chromium/chrome/browser/back_press/BackPressHelper.java;l=23;drc=aefc135e9414a43c336ceca186ba59831d6f11d4?q=BackPress&sq=&ss=chromium%2Fchromium%2Fsrc

https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/back_press/android/java/src/org/chromium/chrome/browser/back_press/BackPressManager.java;l=51;drc=aefc135e9414a43c336ceca186ba59831d6f11d4?q=BackPressMana&sq=&ss=chromium%2Fchromium%2Fsrc

File components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ContextMenuDialog.java
Line 416, Patchset 2 (Latest): new OnBackPressedCallback(true) {
Jenna Himawan . unresolved

This will leak. Make sure you store it and then clean it up later.

Open in Gerrit

Related details

Attention is currently required from:
  • Masa Fujita
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
    Gerrit-Change-Number: 8061450
    Gerrit-PatchSet: 2
    Gerrit-Owner: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
    Gerrit-Reviewer: Masa Fujita <mas...@google.com>
    Gerrit-Attention: Masa Fujita <mas...@google.com>
    Gerrit-Comment-Date: Wed, 08 Jul 2026 16:58:33 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Masa Fujita (Gerrit)

    unread,
    Jul 10, 2026, 10:54:33 AM (yesterday) Jul 10
    to Jenna Himawan, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org

    Masa Fujita voted Commit-Queue+1

    Commit-Queue+1
    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
    Gerrit-Change-Number: 8061450
    Gerrit-PatchSet: 6
    Gerrit-Owner: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
    Gerrit-Reviewer: Masa Fujita <mas...@google.com>
    Gerrit-Comment-Date: Fri, 10 Jul 2026 14:53:57 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Masa Fujita (Gerrit)

    unread,
    Jul 10, 2026, 11:06:25 AM (yesterday) Jul 10
    to Jenna Himawan, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org

    Masa Fujita voted and added 2 comments

    Votes added by Masa Fujita

    Commit-Queue+1

    2 comments

    Patchset-level comments
    File-level comment, Patchset 2:
    Jenna Himawan . resolved
    Masa Fujita

    Thank you for the pointer, I had completely missed this. Now we implement `BackPressHandler`

    File components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ContextMenuDialog.java
    Line 416, Patchset 2: new OnBackPressedCallback(true) {
    Jenna Himawan . resolved

    This will leak. Make sure you store it and then clean it up later.

    Masa Fujita

    Good catch!

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
      Gerrit-Change-Number: 8061450
      Gerrit-PatchSet: 7
      Gerrit-Owner: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
      Gerrit-Reviewer: Masa Fujita <mas...@google.com>
      Gerrit-Comment-Date: Fri, 10 Jul 2026 15:06:00 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Jenna Himawan <jhim...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Masa Fujita (Gerrit)

      unread,
      Jul 10, 2026, 11:57:49 AM (yesterday) Jul 10
      to Jenna Himawan, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org

      Masa Fujita voted Commit-Queue+1

      Commit-Queue+1
      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
      Gerrit-Change-Number: 8061450
      Gerrit-PatchSet: 8
      Gerrit-Owner: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
      Gerrit-Reviewer: Masa Fujita <mas...@google.com>
      Gerrit-Comment-Date: Fri, 10 Jul 2026 15:57:24 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Masa Fujita (Gerrit)

      unread,
      7:38 AM (7 hours ago) 7:38 AM
      to Jenna Himawan, Chromium LUCI CQ, chromium...@chromium.org, android-web...@chromium.org, browser-comp...@chromium.org, davidj...@chromium.org, gogeral...@chromium.org, hanxi...@chromium.org, mattsimm...@chromium.org, meilian...@chromium.org, wychen...@chromium.org, yuezhang...@chromium.org, yusufo...@chromium.org
      Attention needed from Jenna Himawan

      Masa Fujita voted Commit-Queue+1

      Commit-Queue+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jenna Himawan
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia3ef687d52e5d1de5a8b95f926e2e6bf051131bd
      Gerrit-Change-Number: 8061450
      Gerrit-PatchSet: 9
      Gerrit-Owner: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Jenna Himawan <jhim...@google.com>
      Gerrit-Reviewer: Masa Fujita <mas...@google.com>
      Gerrit-Attention: Jenna Himawan <jhim...@google.com>
      Gerrit-Comment-Date: Sat, 11 Jul 2026 11:37:49 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages