[iOS][Composebox] Introduce Tab Drag and Drop [chromium/src : main]

0 views
Skip to first unread message

Eric Ekey (Gerrit)

unread,
Jan 14, 2026, 4:05:54 PM (yesterday) Jan 14
to Chris Lu, Christian Xu, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Chris Lu and Christian Xu

Eric Ekey voted and added 1 comment

Votes added by Eric Ekey

Commit-Queue+1

1 comment

Patchset-level comments
Open in Gerrit

Related details

Attention is currently required from:
  • Chris Lu
  • Christian Xu
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: Ic0c467e3eea65322245995bc6c855ac83f9c880e
Gerrit-Change-Number: 7476864
Gerrit-PatchSet: 2
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Chris Lu <thegre...@chromium.org>
Gerrit-Reviewer: Christian Xu <chris...@chromium.org>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Attention: Chris Lu <thegre...@chromium.org>
Gerrit-Attention: Christian Xu <chris...@chromium.org>
Gerrit-Comment-Date: Wed, 14 Jan 2026 21:05:41 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Eric Ekey (Gerrit)

unread,
10:07 AM (11 hours ago) 10:07 AM
to Chromium LUCI CQ, Chris Lu, Christian Xu, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Chris Lu and Christian Xu

Eric Ekey voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Chris Lu
  • Christian Xu
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: Ic0c467e3eea65322245995bc6c855ac83f9c880e
Gerrit-Change-Number: 7476864
Gerrit-PatchSet: 4
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Chris Lu <thegre...@chromium.org>
Gerrit-Reviewer: Christian Xu <chris...@chromium.org>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Attention: Chris Lu <thegre...@chromium.org>
Gerrit-Attention: Christian Xu <chris...@chromium.org>
Gerrit-Comment-Date: Thu, 15 Jan 2026 15:07:36 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Eric Ekey (Gerrit)

unread,
10:22 AM (10 hours ago) 10:22 AM
to Chromium LUCI CQ, Chris Lu, Christian Xu, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Chris Lu and Christian Xu

Eric Ekey voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Chris Lu
  • Christian Xu
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: Ic0c467e3eea65322245995bc6c855ac83f9c880e
Gerrit-Change-Number: 7476864
Gerrit-PatchSet: 5
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Chris Lu <thegre...@chromium.org>
Gerrit-Reviewer: Christian Xu <chris...@chromium.org>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Attention: Chris Lu <thegre...@chromium.org>
Gerrit-Attention: Christian Xu <chris...@chromium.org>
Gerrit-Comment-Date: Thu, 15 Jan 2026 15:21:58 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Christian Xu (Gerrit)

unread,
6:19 PM (2 hours ago) 6:19 PM
to Eric Ekey, Chromium LUCI CQ, Chris Lu, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Chris Lu and Eric Ekey

Christian Xu added 5 comments

File ios/chrome/browser/composebox/coordinator/composebox_input_plate_mediator.mm
Line 385, Patchset 12: std::set<web::WebStateID> tabs = {tabInfo.tabID};
Christian Xu . unresolved

Instead of doing that, we should first verify that the tab is from the current web state list. Then do a union of currently attached tabs with the new web state ID and call attachSelectedTabsWithWebStateIDs with the merged list.

Line 387, Patchset 12: [self attachSelectedTabsWithWebStateIDs:tabs
Christian Xu . unresolved

This will detach the tabs that where already attached.

Line 388, Patchset 12: cachedWebStateIDs:{}
Christian Xu . unresolved

What if the tab has cached APC ?

Line 524, Patchset 12: // Check if the tab belongs to the current window's WebStateList.
WebStateSearchCriteria searchCriteria{
.identifier = webStateID,
.pinned_state = WebStateSearchCriteria::PinnedState::kAny,
};
if (GetWebStateIndex(_webStateList, searchCriteria) !=
WebStateList::kInvalidIndex) {
webStateIDs.insert(webStateID);
}
}
}
Christian Xu . unresolved

Why are we changing this logic ?

File ios/chrome/browser/composebox/ui/composebox_input_plate_view_controller.mm
Line 1737, Patchset 12:
if (_theme.incognito) {
return NO;
}

for (UIDragItem* item in session.items) {
if ([item.localObject isKindOfClass:[TabInfo class]]) {
// Disallow drops of off-the-record tabs.
TabInfo* tab = item.localObject;
return tab.incognito ? NO : YES;
}
}
Christian Xu . unresolved

Why is tab drag and drop disabled in incognito ?
Incognito should allow incognito tabs to be dragged and dropped. Same for regular mode, it should only allow regular tabs to be dropped.

Open in Gerrit

Related details

Attention is currently required from:
  • Chris Lu
  • Eric Ekey
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: Ic0c467e3eea65322245995bc6c855ac83f9c880e
Gerrit-Change-Number: 7476864
Gerrit-PatchSet: 13
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Chris Lu <thegre...@chromium.org>
Gerrit-Reviewer: Christian Xu <chris...@chromium.org>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Attention: Eric Ekey <eric...@google.com>
Gerrit-Attention: Chris Lu <thegre...@chromium.org>
Gerrit-Comment-Date: Thu, 15 Jan 2026 23:19:30 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Christian Xu (Gerrit)

unread,
6:21 PM (2 hours ago) 6:21 PM
to Eric Ekey, Chromium LUCI CQ, Chris Lu, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Chris Lu and Eric Ekey

Christian Xu added 1 comment

File ios/chrome/browser/composebox/ui/composebox_input_plate_view_controller.mm
Line 1753, Patchset 13 (Latest):
Christian Xu . unresolved

Maybe here there should already be indication that a tab that is not from the current web state list can't be dropped.

Gerrit-Comment-Date: Thu, 15 Jan 2026 23:21:35 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Chris Lu (Gerrit)

unread,
6:58 PM (2 hours ago) 6:58 PM
to Eric Ekey, Chromium LUCI CQ, Christian Xu, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Eric Ekey

Chris Lu added 1 comment

File ios/chrome/browser/composebox/coordinator/composebox_input_plate_mediator.mm
Line 385, Patchset 12: std::set<web::WebStateID> tabs = {tabInfo.tabID};
Christian Xu . unresolved

Instead of doing that, we should first verify that the tab is from the current web state list. Then do a union of currently attached tabs with the new web state ID and call attachSelectedTabsWithWebStateIDs with the merged list.

Chris Lu

This functionality is for dragging tabs from another window into the composebox. I don't think it is possible to drop a tab from the same window as is currently presenting the composebox.

Open in Gerrit

Related details

Attention is currently required from:
  • Eric Ekey
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: Ic0c467e3eea65322245995bc6c855ac83f9c880e
Gerrit-Change-Number: 7476864
Gerrit-PatchSet: 13
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Chris Lu <thegre...@chromium.org>
Gerrit-Reviewer: Christian Xu <chris...@chromium.org>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Attention: Eric Ekey <eric...@google.com>
Gerrit-Comment-Date: Thu, 15 Jan 2026 23:57:55 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Christian Xu <chris...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages