actions revamp: Add actions list to the toolbar rankings [chromium/src : main]

0 views
Skip to first unread message

Masa Fujita (Gerrit)

unread,
Feb 13, 2026, 12:04:44 AM (7 days ago) Feb 13
to chromium...@chromium.org, peilinwa...@google.com, chromium-a...@chromium.org, hanxi...@chromium.org, extension...@chromium.org

Masa Fujita has uploaded the change for review

Commit message

actions revamp: Add actions list to the toolbar rankings
Change-Id: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe

Change diff


Change information

Files:
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListRecyclerView.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
Change size: M
Delta: 5 files changed, 164 insertions(+), 42 deletions(-)
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574574
Gerrit-PatchSet: 1
Gerrit-Owner: Masa Fujita <mas...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 13, 2026, 1:11:22 AM (7 days ago) Feb 13
to chromium...@chromium.org, peilinwa...@google.com, chromium-a...@chromium.org, hanxi...@chromium.org, extension...@chromium.org

Masa Fujita has uploaded the change for review

Commit message

actions revamp: Add actions list to the toolbar rankings
Change-Id: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe

Change diff


Change information

Files:
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListRecyclerView.java
  • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
Change size: L
Delta: 5 files changed, 242 insertions(+), 58 deletions(-)
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574654
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 13, 2026, 1:12:37 AM (7 days ago) Feb 13
to chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574654
Gerrit-PatchSet: 1
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Comment-Date: Fri, 13 Feb 2026 06:12:04 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 13, 2026, 2:01:28 AM (7 days ago) Feb 13
to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
Attention needed from Sirisha Kavuluru

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Sirisha Kavuluru
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574654
Gerrit-PatchSet: 4
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
Gerrit-Attention: Sirisha Kavuluru <skav...@google.com>
Gerrit-Comment-Date: Fri, 13 Feb 2026 07:01:01 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 13, 2026, 3:47:38 AM (7 days ago) Feb 13
to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
Attention needed from Sirisha Kavuluru

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Sirisha Kavuluru
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574654
Gerrit-PatchSet: 5
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
Gerrit-Attention: Sirisha Kavuluru <skav...@google.com>
Gerrit-Comment-Date: Fri, 13 Feb 2026 08:47:17 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 13, 2026, 5:18:29 AM (7 days ago) Feb 13
to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
Gerrit-Comment-Date: Fri, 13 Feb 2026 10:18:07 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 17, 2026, 6:42:05 AM (3 days ago) Feb 17
to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
Attention needed from Sirisha Kavuluru

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Sirisha Kavuluru
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574654
Gerrit-PatchSet: 8
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
Gerrit-Attention: Sirisha Kavuluru <skav...@google.com>
Gerrit-Comment-Date: Tue, 17 Feb 2026 11:41:43 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Masa Fujita (Gerrit)

unread,
Feb 18, 2026, 9:14:53 AM (2 days ago) Feb 18
to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
Attention needed from Sirisha Kavuluru

Masa Fujita voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Sirisha Kavuluru
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
Gerrit-Change-Number: 7574654
Gerrit-PatchSet: 10
Gerrit-Owner: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Masa Fujita <mas...@google.com>
Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
Gerrit-Attention: Sirisha Kavuluru <skav...@google.com>
Gerrit-Comment-Date: Wed, 18 Feb 2026 14:14:31 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Sirisha Kavuluru (Gerrit)

unread,
Feb 19, 2026, 7:04:15 PM (10 hours ago) Feb 19
to Masa Fujita, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
Attention needed from Masa Fujita

Sirisha Kavuluru added 4 comments

File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
Line 172, Patchset 11 (Latest): // This method gets called when icons are being dragged, but we don't want width update
// to happen then.
Sirisha Kavuluru . unresolved

Curious - why does this get called during icon drag?

Line 182, Patchset 11 (Latest): // We have to calculate the width ourselves because {@link RecyclerView} updates its Views
// async.
Sirisha Kavuluru . unresolved

Are we seeing issues if we use recyclerView.getWidth() instead? I thought recyclerView requestLayout should be sync..

Line 185, Patchset 11 (Latest): mContext.getResources()
.getDimensionPixelSize(
org.chromium.chrome.browser.toolbar.R.dimen.toolbar_button_width);
Sirisha Kavuluru . unresolved

nit: Can we get this from mediator - maybe expose a mMediator.getViewWidth()?

File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
Line 125, Patchset 11 (Latest): int maxNumberOfItems = Integer.MAX_VALUE;
if (mAvailableWidth != null) {
int itemWidth =
mContext.getResources().getDimensionPixelSize(R.dimen.toolbar_button_width);
assert itemWidth > 0;
maxNumberOfItems = mAvailableWidth / itemWidth;
}

// O(N) for removals/no-ops; O(N^2) for reordering/insertions.
int currentModelIndex = 0;
for (String actionId : actionIds) {
if (currentModelIndex >= maxNumberOfItems) {
break;
}
Sirisha Kavuluru . unresolved

iiuc this method updates mModels when new action is added, pinned , unpinned..

1. Is onActionAdded() is called when a new extension is installed? If not, when is this invoked? I see on desktop we temporarily add a button to the toolbar which could show a popup or hide after a few seconds.
2. onActionRemoved() removed item from the models. iiuc this is invoked if extension is uninstalled? Do we need to reconcile the items to since we now have space to show 1 more?

Open in Gerrit

Related details

Attention is currently required from:
  • Masa Fujita
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
    Gerrit-Change-Number: 7574654
    Gerrit-PatchSet: 11
    Gerrit-Owner: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
    Gerrit-Attention: Masa Fujita <mas...@google.com>
    Gerrit-Comment-Date: Fri, 20 Feb 2026 00:04:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Masa Fujita (Gerrit)

    unread,
    Feb 19, 2026, 10:33:26 PM (6 hours ago) Feb 19
    to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
    Attention needed from Sirisha Kavuluru

    Masa Fujita voted and added 4 comments

    Votes added by Masa Fujita

    Commit-Queue+1

    4 comments

    File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
    Line 172, Patchset 11: // This method gets called when icons are being dragged, but we don't want width update
    // to happen then.
    Sirisha Kavuluru . unresolved

    Curious - why does this get called during icon drag?

    Masa Fujita

    Items swapping triggers a layout pass for the RecyclerView.

    Line 182, Patchset 11: // We have to calculate the width ourselves because {@link RecyclerView} updates its Views
    // async.
    Sirisha Kavuluru . resolved

    Are we seeing issues if we use recyclerView.getWidth() instead? I thought recyclerView requestLayout should be sync..

    Masa Fujita

    Yeah sorry, this is remnants from my previous impl attempt

    Line 185, Patchset 11: mContext.getResources()
    .getDimensionPixelSize(
    org.chromium.chrome.browser.toolbar.R.dimen.toolbar_button_width);
    Sirisha Kavuluru . resolved

    nit: Can we get this from mediator - maybe expose a mMediator.getViewWidth()?

    Masa Fujita

    Acknowledged

    File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
    Line 125, Patchset 11: int maxNumberOfItems = Integer.MAX_VALUE;

    if (mAvailableWidth != null) {
    int itemWidth =
    mContext.getResources().getDimensionPixelSize(R.dimen.toolbar_button_width);
    assert itemWidth > 0;
    maxNumberOfItems = mAvailableWidth / itemWidth;
    }

    // O(N) for removals/no-ops; O(N^2) for reordering/insertions.
    int currentModelIndex = 0;
    for (String actionId : actionIds) {
    if (currentModelIndex >= maxNumberOfItems) {
    break;
    }
    Sirisha Kavuluru . unresolved

    iiuc this method updates mModels when new action is added, pinned , unpinned..

    1. Is onActionAdded() is called when a new extension is installed? If not, when is this invoked? I see on desktop we temporarily add a button to the toolbar which could show a popup or hide after a few seconds.
    2. onActionRemoved() removed item from the models. iiuc this is invoked if extension is uninstalled? Do we need to reconcile the items to since we now have space to show 1 more?

    Masa Fujita

    1. On Clank, the UX requirements are different than Desktop (per UX decisions) - on install we show a dialog instead of popped out actions (temporarily pinned action). So as for what's displayed on the toolbar, we just have to match it to the stored pinned_actions. That said, popped out actions will be necessary (e.g. for popups opened via the extensions menu) and it's implemented in the stacked CL
    2. When an extension is uninstalled, that model should be removed from the ModelList and the width of the RecyclerView should shrink, unless there are hidden icons due to space concerns, in which case this logic should swap the model (I'm not sure if I understand the question, does this answer it?)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sirisha Kavuluru
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
    Gerrit-Change-Number: 7574654
    Gerrit-PatchSet: 12
    Gerrit-Owner: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
    Gerrit-Attention: Sirisha Kavuluru <skav...@google.com>
    Gerrit-Comment-Date: Fri, 20 Feb 2026 03:32:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Sirisha Kavuluru <skav...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sirisha Kavuluru (Gerrit)

    unread,
    1:57 AM (3 hours ago) 1:57 AM
    to Masa Fujita, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
    Attention needed from Masa Fujita

    Sirisha Kavuluru added 3 comments

    File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
    Line 172, Patchset 11: // This method gets called when icons are being dragged, but we don't want width update
    // to happen then.
    Sirisha Kavuluru . resolved

    Curious - why does this get called during icon drag?

    Masa Fujita

    Items swapping triggers a layout pass for the RecyclerView.

    Sirisha Kavuluru

    Acknowledged

    File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
    Line 96, Patchset 12 (Latest): /** Returns the number of actions that are visible in the {@link RecyclerView}. */
    int getNumberOfVisibleActions() {
    return mModels.size();
    }
    Sirisha Kavuluru . unresolved

    Not needed anymore?

    Line 125, Patchset 11: int maxNumberOfItems = Integer.MAX_VALUE;
    if (mAvailableWidth != null) {
    int itemWidth =
    mContext.getResources().getDimensionPixelSize(R.dimen.toolbar_button_width);
    assert itemWidth > 0;
    maxNumberOfItems = mAvailableWidth / itemWidth;
    }

    // O(N) for removals/no-ops; O(N^2) for reordering/insertions.
    int currentModelIndex = 0;
    for (String actionId : actionIds) {
    if (currentModelIndex >= maxNumberOfItems) {
    break;
    }
    Sirisha Kavuluru . unresolved

    iiuc this method updates mModels when new action is added, pinned , unpinned..

    1. Is onActionAdded() is called when a new extension is installed? If not, when is this invoked? I see on desktop we temporarily add a button to the toolbar which could show a popup or hide after a few seconds.
    2. onActionRemoved() removed item from the models. iiuc this is invoked if extension is uninstalled? Do we need to reconcile the items to since we now have space to show 1 more?

    Masa Fujita

    1. On Clank, the UX requirements are different than Desktop (per UX decisions) - on install we show a dialog instead of popped out actions (temporarily pinned action). So as for what's displayed on the toolbar, we just have to match it to the stored pinned_actions. That said, popped out actions will be necessary (e.g. for popups opened via the extensions menu) and it's implemented in the stacked CL
    2. When an extension is uninstalled, that model should be removed from the ModelList and the width of the RecyclerView should shrink, unless there are hidden icons due to space concerns, in which case this logic should swap the model (I'm not sure if I understand the question, does this answer it?)

    Sirisha Kavuluru

    On #2 - the usecase I am referring to:

    • We have 10 pinned actions but availableWidth can only accommodate 5. mModel has 5 items that are visible
    • User then uninstalls an extension -> onActionRemoved() is called which just removes the action from mModel. Don't we need to update mModel to add another item from 9 pinned actions since we available width hasn't changed and we have space to show 1 more? Where is this being handled?
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Masa Fujita
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
    Gerrit-Change-Number: 7574654
    Gerrit-PatchSet: 12
    Gerrit-Owner: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
    Gerrit-Attention: Masa Fujita <mas...@google.com>
    Gerrit-Comment-Date: Fri, 20 Feb 2026 06:57:50 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Masa Fujita <mas...@google.com>
    Comment-In-Reply-To: Sirisha Kavuluru <skav...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Masa Fujita (Gerrit)

    unread,
    2:40 AM (2 hours ago) 2:40 AM
    to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
    Attention needed from Sirisha Kavuluru

    Masa Fujita voted and added 2 comments

    Votes added by Masa Fujita

    Commit-Queue+1

    2 comments

    File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
    Line 96, Patchset 12: /** Returns the number of actions that are visible in the {@link RecyclerView}. */
    int getNumberOfVisibleActions() {
    return mModels.size();
    }
    Sirisha Kavuluru . unresolved

    Not needed anymore?

    Masa Fujita

    Sorry!

    Line 125, Patchset 11: int maxNumberOfItems = Integer.MAX_VALUE;
    if (mAvailableWidth != null) {
    int itemWidth =
    mContext.getResources().getDimensionPixelSize(R.dimen.toolbar_button_width);
    assert itemWidth > 0;
    maxNumberOfItems = mAvailableWidth / itemWidth;
    }

    // O(N) for removals/no-ops; O(N^2) for reordering/insertions.
    int currentModelIndex = 0;
    for (String actionId : actionIds) {
    if (currentModelIndex >= maxNumberOfItems) {
    break;
    }
    Sirisha Kavuluru . resolved

    iiuc this method updates mModels when new action is added, pinned , unpinned..

    1. Is onActionAdded() is called when a new extension is installed? If not, when is this invoked? I see on desktop we temporarily add a button to the toolbar which could show a popup or hide after a few seconds.
    2. onActionRemoved() removed item from the models. iiuc this is invoked if extension is uninstalled? Do we need to reconcile the items to since we now have space to show 1 more?

    Masa Fujita

    1. On Clank, the UX requirements are different than Desktop (per UX decisions) - on install we show a dialog instead of popped out actions (temporarily pinned action). So as for what's displayed on the toolbar, we just have to match it to the stored pinned_actions. That said, popped out actions will be necessary (e.g. for popups opened via the extensions menu) and it's implemented in the stacked CL
    2. When an extension is uninstalled, that model should be removed from the ModelList and the width of the RecyclerView should shrink, unless there are hidden icons due to space concerns, in which case this logic should swap the model (I'm not sure if I understand the question, does this answer it?)

    Sirisha Kavuluru

    On #2 - the usecase I am referring to:

    • We have 10 pinned actions but availableWidth can only accommodate 5. mModel has 5 items that are visible
    • User then uninstalls an extension -> onActionRemoved() is called which just removes the action from mModel. Don't we need to update mModel to add another item from 9 pinned actions since we available width hasn't changed and we have space to show 1 more? Where is this being handled?
    Masa Fujita

    Ah I understand! We were relient on the next `onPinnedActionsChanged()` call but I think it might be better to just use `reconcileActionItems()` here too. It's conceptually only very worse performance worse, but this is only called when the user uninstalls an extension

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sirisha Kavuluru
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
    Gerrit-Change-Number: 7574654
    Gerrit-PatchSet: 13
    Gerrit-Owner: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Masa Fujita <mas...@google.com>
    Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
    Gerrit-Attention: Sirisha Kavuluru <skav...@google.com>
    Gerrit-Comment-Date: Fri, 20 Feb 2026 07:39:54 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sirisha Kavuluru (Gerrit)

    unread,
    2:49 AM (2 hours ago) 2:49 AM
    to Masa Fujita, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com
    Attention needed from Masa Fujita

    Sirisha Kavuluru voted and added 1 comment

    Votes added by Sirisha Kavuluru

    Code-Review+1

    1 comment

    File chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
    Line 96, Patchset 12: /** Returns the number of actions that are visible in the {@link RecyclerView}. */
    int getNumberOfVisibleActions() {
    return mModels.size();
    }
    Sirisha Kavuluru . resolved

    Not needed anymore?

    Masa Fujita

    Sorry!

    Sirisha Kavuluru

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Masa Fujita
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
      Gerrit-Change-Number: 7574654
      Gerrit-PatchSet: 13
      Gerrit-Owner: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
      Gerrit-Attention: Masa Fujita <mas...@google.com>
      Gerrit-Comment-Date: Fri, 20 Feb 2026 07:49:12 +0000
      satisfied_requirement
      open
      diffy

      Masa Fujita (Gerrit)

      unread,
      3:32 AM (1 hour ago) 3:32 AM
      to Sirisha Kavuluru, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com

      Masa Fujita voted and added 1 comment

      Votes added by Masa Fujita

      Commit-Queue+2

      1 comment

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

      Thank you for the review!

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement 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: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
      Gerrit-Change-Number: 7574654
      Gerrit-PatchSet: 14
      Gerrit-Owner: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Masa Fujita <mas...@google.com>
      Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
      Gerrit-Comment-Date: Fri, 20 Feb 2026 08:32:36 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Chromium LUCI CQ (Gerrit)

      unread,
      4:19 AM (22 minutes ago) 4:19 AM
      to Masa Fujita, Sirisha Kavuluru, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, hanxi...@chromium.org, peilinwa...@google.com

      Chromium LUCI CQ submitted the change with unreviewed changes

      Unreviewed changes

      13 is the latest approved patch-set.
      The change was submitted with unreviewed changes in the following files:

      ```
      The name of the file: chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java
      Insertions: 0, Deletions: 23.

      The diff is too large to show. Please review the diff.
      ```

      Change information

      Commit message:
      actions revamp: Add actions list to the toolbar rankings

      This CL adds the actions list to the toolbar ranking. We follow the
      request by `ToolbarTablet` and add or remove actions from the
      `ModelList` to make sure that the actions list width is under the
      provided `availableWidth`.

      Demo: http://screencast/cast/NTM1NTUyMzcyODczNjI1NnxiMDliNzU5Mi1jOQ
      Bug: 476928822
      Change-Id: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
      Reviewed-by: Sirisha Kavuluru <skav...@google.com>
      Commit-Queue: Masa Fujita <mas...@google.com>
      Cr-Commit-Position: refs/heads/main@{#1587679}
      Files:
      • M chrome/browser/ui/android/extensions/java/res/values/dimens.xml
      • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
      • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
      • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java
      • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListRecyclerView.java
      • M chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
        Change size: M
        Delta: 6 files changed, 94 insertions(+), 93 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Sirisha Kavuluru
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I441205cb997a5d7da53c3d4aec53dbd8bf14ecfe
        Gerrit-Change-Number: 7574654
        Gerrit-PatchSet: 15
        Gerrit-Owner: Masa Fujita <mas...@google.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Masa Fujita <mas...@google.com>
        Gerrit-Reviewer: Sirisha Kavuluru <skav...@google.com>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages