Skip to content

Commit

Permalink
[iOS] Disable tab selection in context menu for thumbstrip.
Browse files Browse the repository at this point in the history
Since the thumb strip doesn't have a toolbar on which to choose actions
for selected tabs, this CL removes the "select tabs" option from the
context menu in the thumb strip.

This also adds the enum value (in enums.xml) for
MenuScenario::kTabGridSearchResult

Fixed: 1305979
Change-Id: Ia81df98a4d30a3045e0ff90270dbaf74b1cf988c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3523024
Reviewed-by: Mike Dougherty <michaeldo@chromium.org>
Commit-Queue: Mark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/main@{#981066}
  • Loading branch information
marcq authored and Chromium LUCI CQ committed Mar 15, 2022
1 parent 681d03b commit 9c368b4
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 6 deletions.
3 changes: 2 additions & 1 deletion ios/chrome/browser/ui/menu/menu_histograms.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ enum class MenuScenario {
kTabGridEdit = 12,
kToolbarMenu = 13,
kTabGridSearchResult = 14,
kMaxValue = kTabGridSearchResult,
kThumbStrip = 15,
kMaxValue = kThumbStrip,
};

// Records a menu shown histogram metric for the |scenario|.
Expand Down
1 change: 1 addition & 0 deletions ios/chrome/browser/ui/menu/menu_histograms.mm
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ void RecordMenuShown(MenuScenario scenario) {
case MenuScenario::kContextMenuLink:
return KContextMenuLinkActionsHistogram;
case MenuScenario::kTabGridEntry:
case MenuScenario::kThumbStrip:
return kTabGridActionsHistogram;
case MenuScenario::kTabGridAddTo:
return kTabGridAddToActionsHistogram;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,11 @@ - (void)dealloc {
}
}

if (scenario != MenuScenario::kTabGridSearchResult &&
// Thumb strip and search results menus don't support tab selection.
BOOL scenarioDisablesSelection =
scenario == MenuScenario::kTabGridSearchResult ||
scenario == MenuScenario::kThumbStrip;
if (!scenarioDisablesSelection &&
[self.contextMenuDelegate respondsToSelector:@selector(selectTabs)]) {
[menuElements addObject:[actionFactory actionToSelectTabsWithBlock:^{
[self.contextMenuDelegate selectTabs];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -657,9 +657,16 @@ - (UIContextMenuConfiguration*)collectionView:(UICollectionView*)collectionView

GridCell* cell = base::mac::ObjCCastStrict<GridCell>(
[self.collectionView cellForItemAtIndexPath:indexPath]);
MenuScenario scenario = _mode == TabGridModeSearch
? MenuScenario::kTabGridSearchResult
: MenuScenario::kTabGridEntry;

MenuScenario scenario;
if (_mode == TabGridModeSearch) {
scenario = MenuScenario::kTabGridSearchResult;
} else if (self.currentLayout == self.horizontalLayout) {
scenario = MenuScenario::kThumbStrip;
} else {
scenario = MenuScenario::kTabGridEntry;
}

return [self.menuProvider contextMenuConfigurationForGridCell:cell
menuScenario:scenario];
}
Expand Down Expand Up @@ -1760,7 +1767,7 @@ - (void)thumbStripDisabled {
_thumbStripEnabled = NO;
}

#pragma mark-- Thumbstrip tap dismiss handling
#pragma mark - Thumbstrip tap dismiss handling

- (void)handleThumbStripBackgroundTapGesture:(UIGestureRecognizer*)recognizer {
if (recognizer.state != UIGestureRecognizerStateEnded)
Expand Down
2 changes: 2 additions & 0 deletions tools/metrics/histograms/enums.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47834,6 +47834,8 @@ Called by update_gpu_driver_bug_workaround_entries.py.-->
<int value="11" label="Tab Grid Add To"/>
<int value="12" label="Tab Grid Edit"/>
<int value="13" label="Toolbar Popup Menus"/>
<int value="14" label="Tab Grid Search"/>
<int value="15" label="Thumb Strip"/>
</enum>

<enum name="IOSMultiWindowConfiguration">
Expand Down

0 comments on commit 9c368b4

Please sign in to comment.