Commit a9bed1a2 authored by Charlene Yan's avatar Charlene Yan Committed by Commit Bot

[Tab Groups Collapse] Cleanup call sites to toggle collapsed state.

Add an enum for the origin of the toggle action.
Add collapse for gestures.
Modify closing mode to be on a timer for gestures.

Bug: 2386555
Change-Id: I308a8e88c1c6b27e03be0783489d5c44686184a8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2429445
Commit-Queue: Charlene Yan <cyan@chromium.org>
Reviewed-by: default avatarConnie Wan <connily@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810488}
parent 26fae311
......@@ -385,11 +385,10 @@ void BrowserTabStripController::MoveGroup(const tab_groups::TabGroupId& group,
bool BrowserTabStripController::ToggleTabGroupCollapsedState(
const tab_groups::TabGroupId group,
bool from_mouse_event,
bool record_user_action) {
ToggleTabGroupCollapsedStateOrigin origin) {
const bool is_currently_collapsed = IsGroupCollapsed(group);
if (is_currently_collapsed) {
if (record_user_action) {
if (origin != ToggleTabGroupCollapsedStateOrigin::kImplicitAction) {
base::RecordAction(
base::UserMetricsAction("TabGroups_TabGroupHeader_Expanded"));
}
......@@ -414,12 +413,12 @@ bool BrowserTabStripController::ToggleTabGroupCollapsedState(
model_->ActivateTabAt(GetActiveIndex(),
{TabStripModel::GestureType::kOther});
}
if (record_user_action) {
if (origin != ToggleTabGroupCollapsedStateOrigin::kImplicitAction) {
base::RecordAction(
base::UserMetricsAction("TabGroups_TabGroupHeader_Collapsed"));
}
}
tabstrip_->ToggleTabGroup(group, !is_currently_collapsed, from_mouse_event);
tabstrip_->ToggleTabGroup(group, !is_currently_collapsed, origin);
std::vector<int> tabs_in_group = ListTabsInGroup(group);
for (int i : tabs_in_group) {
......
......@@ -16,6 +16,7 @@
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
#include "chrome/browser/ui/views/tabs/tab_strip_types.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/tab_groups/tab_group_color.h"
#include "ui/base/models/simple_menu_model.h"
......@@ -81,9 +82,9 @@ class BrowserTabStripController : public TabStripController,
void RemoveTabFromGroup(int model_index) override;
void MoveTab(int start_index, int final_index) override;
void MoveGroup(const tab_groups::TabGroupId& group, int final_index) override;
bool ToggleTabGroupCollapsedState(const tab_groups::TabGroupId group,
bool from_mouse_event,
bool record_user_action) override;
bool ToggleTabGroupCollapsedState(
const tab_groups::TabGroupId group,
ToggleTabGroupCollapsedStateOrigin origin) override;
void ShowContextMenuForTab(Tab* tab,
const gfx::Point& p,
ui::MenuSourceType source_type) override;
......
......@@ -54,8 +54,7 @@ void FakeBaseTabStripController::MoveGroup(const tab_groups::TabGroupId& group,
bool FakeBaseTabStripController::ToggleTabGroupCollapsedState(
const tab_groups::TabGroupId group,
bool from_mouse_event,
bool record_user_action) {
ToggleTabGroupCollapsedStateOrigin origin) {
fake_group_data_ = tab_groups::TabGroupVisualData(
fake_group_data_.title(), fake_group_data_.color(),
!fake_group_data_.is_collapsed());
......
......@@ -11,6 +11,7 @@
#include "base/compiler_specific.h"
#include "base/optional.h"
#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
#include "chrome/browser/ui/views/tabs/tab_strip_types.h"
#include "components/tab_groups/tab_group_id.h"
#include "components/tab_groups/tab_group_visual_data.h"
#include "ui/base/models/list_selection_model.h"
......@@ -50,9 +51,9 @@ class FakeBaseTabStripController : public TabStripController {
void CloseTab(int index) override;
void MoveTab(int from_index, int to_index) override;
void MoveGroup(const tab_groups::TabGroupId&, int to_index) override;
bool ToggleTabGroupCollapsedState(const tab_groups::TabGroupId group,
bool from_mouse_event,
bool record_user_action) override;
bool ToggleTabGroupCollapsedState(
const tab_groups::TabGroupId group,
ToggleTabGroupCollapsedStateOrigin origin) override;
void ShowContextMenuForTab(Tab* tab,
const gfx::Point& p,
ui::MenuSourceType source_type) override;
......
......@@ -2278,7 +2278,7 @@ IN_PROC_BROWSER_TEST_P(
EXPECT_THAT(model->group_model()->GetTabGroup(group)->ListTabs(),
testing::ElementsAre(1, 2));
EXPECT_FALSE(model->IsGroupCollapsed(group));
tab_strip->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip->controller()->ToggleTabGroupCollapsedState(group);
StopAnimating(tab_strip);
EXPECT_TRUE(model->IsGroupCollapsed(group));
......@@ -2313,7 +2313,7 @@ IN_PROC_BROWSER_TEST_P(
EXPECT_THAT(model->group_model()->GetTabGroup(group)->ListTabs(),
testing::ElementsAre(1, 2));
EXPECT_FALSE(model->IsGroupCollapsed(group));
tab_strip->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip->controller()->ToggleTabGroupCollapsedState(group);
StopAnimating(tab_strip);
EXPECT_TRUE(model->IsGroupCollapsed(group));
......@@ -2344,7 +2344,7 @@ IN_PROC_BROWSER_TEST_P(
EXPECT_FALSE(model->IsGroupCollapsed(group));
EnsureFocusToTabStrip(tab_strip);
tab_strip->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip->controller()->ToggleTabGroupCollapsedState(group);
StopAnimating(tab_strip);
EXPECT_TRUE(model->IsGroupCollapsed(group));
......@@ -2378,7 +2378,7 @@ IN_PROC_BROWSER_TEST_P(
AddTabsAndResetBrowser(browser(), 3);
tab_groups::TabGroupId group1 = model->AddToNewGroup({0, 1});
EXPECT_FALSE(model->IsGroupCollapsed(group1));
tab_strip->controller()->ToggleTabGroupCollapsedState(group1, false);
tab_strip->controller()->ToggleTabGroupCollapsedState(group1);
StopAnimating(tab_strip);
EXPECT_TRUE(model->IsGroupCollapsed(group1));
tab_groups::TabGroupId group2 = model->AddToNewGroup({2, 3});
......@@ -2433,7 +2433,7 @@ IN_PROC_BROWSER_TEST_P(
tab_groups::TabGroupId group2 = model->AddToNewGroup({2, 3});
EXPECT_FALSE(model->IsGroupCollapsed(group2));
tab_strip->controller()->ToggleTabGroupCollapsedState(group2, false);
tab_strip->controller()->ToggleTabGroupCollapsedState(group2);
StopAnimating(tab_strip);
EXPECT_TRUE(model->IsGroupCollapsed(group2));
......@@ -2480,7 +2480,7 @@ IN_PROC_BROWSER_TEST_P(
AddTabsAndResetBrowser(browser(), 2);
tab_groups::TabGroupId group = model->AddToNewGroup({0, 1});
EXPECT_FALSE(model->IsGroupCollapsed(group));
tab_strip->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip->controller()->ToggleTabGroupCollapsedState(group);
StopAnimating(tab_strip);
EXPECT_TRUE(model->IsGroupCollapsed(group));
......
......@@ -121,7 +121,7 @@ bool TabGroupHeader::OnKeyPressed(const ui::KeyEvent& event) {
// editor bubble to toggling the collapsed state of the group.
bool successful_toggle =
tab_strip_->controller()->ToggleTabGroupCollapsedState(
group().value(), false);
group().value(), ToggleTabGroupCollapsedStateOrigin::kKeyboard);
if (successful_toggle) {
#if defined(OS_WIN)
NotifyAccessibilityEvent(ax::mojom::Event::kSelection, true);
......@@ -186,7 +186,7 @@ void TabGroupHeader::OnMouseReleased(const ui::MouseEvent& event) {
if (event.IsLeftMouseButton() && !dragging()) {
bool successful_toggle =
tab_strip_->controller()->ToggleTabGroupCollapsedState(
group().value(), true);
group().value(), ToggleTabGroupCollapsedStateOrigin::kMouse);
if (successful_toggle)
LogCollapseTime();
}
......@@ -217,11 +217,26 @@ void TabGroupHeader::OnGestureEvent(ui::GestureEvent* event) {
tab_strip_->UpdateHoverCard(nullptr);
switch (event->type()) {
case ui::ET_GESTURE_TAP: {
if (base::FeatureList::IsEnabled(features::kTabGroupsCollapse)) {
// The collapse feature changes the behavior from showing the
// editor bubble to toggling the collapsed state of the group.
bool successful_toggle =
tab_strip_->controller()->ToggleTabGroupCollapsedState(
group().value(), ToggleTabGroupCollapsedStateOrigin::kGesture);
if (successful_toggle)
LogCollapseTime();
} else {
editor_bubble_tracker_.Opened(TabGroupEditorBubbleView::Show(
tab_strip_->controller()->GetBrowser(), group().value(), this));
}
break;
}
case ui::ET_GESTURE_LONG_TAP: {
editor_bubble_tracker_.Opened(TabGroupEditorBubbleView::Show(
tab_strip_->controller()->GetBrowser(), group().value(), this));
break;
}
case ui::ET_GESTURE_SCROLL_BEGIN: {
tab_strip_->MaybeStartDrag(this, *event, tab_strip_->GetSelectionModel());
break;
......
......@@ -1383,7 +1383,8 @@ void TabStrip::AddTabToGroup(base::Optional<tab_groups::TabGroupId> group,
// active tab is not in the group.
if (model_index == selected_tabs_.active() && group.has_value() &&
controller()->IsGroupCollapsed(group.value())) {
controller()->ToggleTabGroupCollapsedState(group.value(), false);
controller()->ToggleTabGroupCollapsedState(
group.value(), ToggleTabGroupCollapsedStateOrigin::kImplicitAction);
}
ExitTabClosingMode();
......@@ -1422,11 +1423,16 @@ void TabStrip::OnGroupVisualsChanged(const tab_groups::TabGroupId& group) {
void TabStrip::ToggleTabGroup(const tab_groups::TabGroupId& group,
bool is_collapsing,
bool from_mouse_event) {
if (is_collapsing && from_mouse_event) {
ToggleTabGroupCollapsedStateOrigin origin) {
if (is_collapsing && GetWidget()) {
in_tab_close_ = true;
if (GetWidget())
if (origin == ToggleTabGroupCollapsedStateOrigin::kMouse) {
AddMessageLoopObserver();
} else if (origin == ToggleTabGroupCollapsedStateOrigin::kGesture) {
StartResizeLayoutTabsFromTouchTimer();
} else {
return;
}
// The current group header is expanded which is slightly smaller than the
// size when the header is collapsed. Calculate the size of the header once
......@@ -1593,7 +1599,8 @@ void TabStrip::SetSelection(const ui::ListSelectionModel& new_selection) {
// If the tab that is about to be activated is in a collapsed group,
// automatically expand the group.
if (controller()->IsGroupCollapsed(new_group))
controller()->ToggleTabGroupCollapsedState(new_group, false);
controller()->ToggleTabGroupCollapsedState(
new_group, ToggleTabGroupCollapsedStateOrigin::kImplicitAction);
UpdateTabGroupVisuals(new_group);
}
......
......@@ -192,7 +192,7 @@ class TabStrip : public views::AccessiblePaneView,
// Handles animations relating to toggling the collapsed state of a group.
void ToggleTabGroup(const tab_groups::TabGroupId& group,
bool is_collapsing,
bool from_mouse_event);
ToggleTabGroupCollapsedStateOrigin origin);
// Updates the ordering of the group header when the whole group is moved.
// Needed to ensure display and focus order of the group header view.
......
......@@ -118,7 +118,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group = AddTabToNewGroup(0);
AddTabToExistingGroup(1, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto expected = GetWebContentsesInOrder({2, 0, 1});
......@@ -140,13 +140,13 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group1 = AddTabToNewGroup(0);
AddTabToExistingGroup(1, group1);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_groups::TabGroupId group2 = AddTabToNewGroup(2);
AddTabToExistingGroup(3, group2);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group2));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group2));
const auto expected = GetWebContentsesInOrder({0, 1, 4, 2, 3});
......@@ -244,7 +244,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group = AddTabToNewGroup(1);
AddTabToExistingGroup(2, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto expected = GetWebContentsesInOrder({1, 2, 0});
......@@ -266,13 +266,13 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group1 = AddTabToNewGroup(1);
AddTabToExistingGroup(2, group1);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_groups::TabGroupId group2 = AddTabToNewGroup(3);
AddTabToExistingGroup(4, group2);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group2));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group2));
const auto expected = GetWebContentsesInOrder({1, 2, 0, 3, 4});
......@@ -620,7 +620,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest, ShiftCollapsedGroupLeft_Success) {
tab_groups::TabGroupId group = AddTabToNewGroup(1);
AddTabToExistingGroup(2, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto expected = GetWebContentsesInOrder({1, 2, 0});
......@@ -638,13 +638,13 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group1 = AddTabToNewGroup(2);
AddTabToExistingGroup(3, group1);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_groups::TabGroupId group2 = AddTabToNewGroup(0);
AddTabToExistingGroup(1, group2);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group2));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group2));
const auto expected = GetWebContentsesInOrder({2, 3, 0, 1, 4});
......@@ -660,7 +660,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group = AddTabToNewGroup(0);
AddTabToExistingGroup(1, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto contentses = GetWebContentses();
......@@ -679,7 +679,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group = AddTabToNewGroup(1);
AddTabToExistingGroup(2, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto contentses = GetWebContentses();
......@@ -696,7 +696,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest, ShiftCollapsedGroupRight_Success) {
tab_groups::TabGroupId group = AddTabToNewGroup(0);
AddTabToExistingGroup(1, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto expected = GetWebContentsesInOrder({2, 0, 1});
......@@ -714,13 +714,13 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group1 = AddTabToNewGroup(0);
AddTabToExistingGroup(1, group1);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group1);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group1));
tab_groups::TabGroupId group2 = AddTabToNewGroup(2);
AddTabToExistingGroup(3, group2);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group2));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group2);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group2));
const auto expected = GetWebContentsesInOrder({2, 3, 0, 1, 4});
......@@ -736,7 +736,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group = AddTabToNewGroup(1);
AddTabToExistingGroup(2, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
const auto contentses = GetWebContentses();
......@@ -753,7 +753,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_strip()->SelectTab(tab_strip()->tab_at(0), GetDummyEvent());
ASSERT_EQ(0, tab_strip()->controller()->GetActiveIndex());
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
EXPECT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
EXPECT_EQ(1, tab_strip()->controller()->GetActiveIndex());
......@@ -767,7 +767,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_strip()->SelectTab(tab_strip()->tab_at(1), GetDummyEvent());
ASSERT_EQ(1, tab_strip()->controller()->GetActiveIndex());
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
EXPECT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
EXPECT_EQ(0, tab_strip()->controller()->GetActiveIndex());
......@@ -782,7 +782,7 @@ IN_PROC_BROWSER_TEST_F(
tab_strip()->SelectTab(tab_strip()->tab_at(1), GetDummyEvent());
ASSERT_EQ(1, tab_strip()->controller()->GetActiveIndex());
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
EXPECT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
EXPECT_EQ(1, tab_strip()->controller()->GetActiveIndex());
......@@ -794,7 +794,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest, CollapseGroup_Fails) {
tab_groups::TabGroupId group = AddTabToNewGroup(0);
tab_strip_model()->AddToExistingGroup({1}, group);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
EXPECT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
}
......@@ -805,7 +805,7 @@ IN_PROC_BROWSER_TEST_F(TabStripBrowsertest,
tab_groups::TabGroupId group = AddTabToNewGroup(0);
ASSERT_FALSE(tab_strip()->controller()->IsGroupCollapsed(group));
tab_strip()->controller()->ToggleTabGroupCollapsedState(group, false);
tab_strip()->controller()->ToggleTabGroupCollapsedState(group);
ASSERT_TRUE(tab_strip()->controller()->IsGroupCollapsed(group));
ASSERT_EQ(1, tab_strip()->controller()->GetActiveIndex());
......
......@@ -102,8 +102,8 @@ class TabStripController {
// not successfully switched.
virtual bool ToggleTabGroupCollapsedState(
const tab_groups::TabGroupId group,
bool from_mouse_event,
bool record_user_action = false) = 0;
ToggleTabGroupCollapsedStateOrigin origin =
ToggleTabGroupCollapsedStateOrigin::kImplicitAction) = 0;
// Shows a context menu for the tab at the specified point in screen coords.
virtual void ShowContextMenuForTab(Tab* tab,
......
......@@ -22,4 +22,15 @@ enum CloseTabSource {
CLOSE_TAB_FROM_TOUCH,
};
// Source of the call to ToggleTabGroup(). The source of the call can trigger
// different behaviors such as logging and different animations. Tests will
// generally use |kImplicitAction| unless testing a particular code path.
enum class ToggleTabGroupCollapsedStateOrigin {
kImplicitAction,
kMouse,
kKeyboard,
kGesture
};
#endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_TYPES_H_
......@@ -504,7 +504,8 @@ TEST_P(TabStripTest, GroupedTabSlotVisibility) {
CompleteAnimationAndLayout();
ASSERT_FALSE(controller_->IsGroupCollapsed(group2.value()));
EXPECT_TRUE(tab_strip_->group_header(group2.value())->GetVisible());
controller_->ToggleTabGroupCollapsedState(group2.value(), false, false);
controller_->ToggleTabGroupCollapsedState(
group2.value(), ToggleTabGroupCollapsedStateOrigin::kImplicitAction);
ASSERT_TRUE(controller_->IsGroupCollapsed(group2.value()));
EXPECT_TRUE(tab_strip_->group_header(group2.value())->GetVisible());
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment