Commit 9038c8db authored by Elly Fong-Jones's avatar Elly Fong-Jones Committed by Commit Bot

views: break deps on DialogClientView, part 1 of n

This change begins breaking dependencies outside //ui/views on
DialogClientView. The overarching goal here is to make DialogClientView
private to //ui/views, with DialogDelegate presenting the only interface
for clients of Views to manage/interact with dialogs. This will also
make it easier to move some logic (ie: the AcceptDialog/CancelDialog
wrappers this change adds) entirely into DialogDelegate later on.

Bug: 1011446
Change-Id: I49c1b435ff57faf41beae7b51c6a5f430f0631cb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1912805Reviewed-by: default avatarPeter Boström <pbos@chromium.org>
Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715269}
parent 35ef33ad
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "ui/views/controls/label.h" #include "ui/views/controls/label.h"
#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/fill_layout.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
namespace chromeos { namespace chromeos {
...@@ -58,7 +57,7 @@ IdleActionWarningDialogView::IdleActionWarningDialogView( ...@@ -58,7 +57,7 @@ IdleActionWarningDialogView::IdleActionWarningDialogView(
void IdleActionWarningDialogView::CloseDialog() { void IdleActionWarningDialogView::CloseDialog() {
update_timer_.Stop(); update_timer_.Stop();
GetDialogClientView()->CancelWindow(); CancelDialog();
} }
void IdleActionWarningDialogView::Update(base::TimeTicks idle_action_time) { void IdleActionWarningDialogView::Update(base::TimeTicks idle_action_time) {
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "ui/views/controls/styled_label.h" #include "ui/views/controls/styled_label.h"
#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/fill_layout.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
namespace { namespace {
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/label_button.h"
#include "ui/views/layout/layout_provider.h" #include "ui/views/layout/layout_provider.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
namespace chrome { namespace chrome {
...@@ -91,8 +90,7 @@ base::string16 ChromeCleanerRebootDialog::GetWindowTitle() const { ...@@ -91,8 +90,7 @@ base::string16 ChromeCleanerRebootDialog::GetWindowTitle() const {
views::View* ChromeCleanerRebootDialog::GetInitiallyFocusedView() { views::View* ChromeCleanerRebootDialog::GetInitiallyFocusedView() {
// Set focus away from the Restart/OK button to prevent accidental prompt // Set focus away from the Restart/OK button to prevent accidental prompt
// acceptance if the user is typing as the dialog appears. // acceptance if the user is typing as the dialog appears.
const views::DialogClientView* dcv = GetDialogClientView(); return GetCancelButton();
return dcv ? dcv->cancel_button() : nullptr;
} }
// DialogDelegate overrides. // DialogDelegate overrides.
......
...@@ -49,7 +49,6 @@ ...@@ -49,7 +49,6 @@
#include "ui/views/layout/box_layout.h" #include "ui/views/layout/box_layout.h"
#include "ui/views/layout/grid_layout.h" #include "ui/views/layout/grid_layout.h"
#include "ui/views/native_cursor.h" #include "ui/views/native_cursor.h"
#include "ui/views/window/dialog_client_view.h"
namespace { namespace {
...@@ -682,7 +681,6 @@ void ContentSettingBubbleContents::ButtonPressed(views::Button* sender, ...@@ -682,7 +681,6 @@ void ContentSettingBubbleContents::ButtonPressed(views::Button* sender,
// Toggling the check state may change the dialog button text. // Toggling the check state may change the dialog button text.
DialogModelChanged(); DialogModelChanged();
GetDialogClientView()->Layout();
} else if (sender == learn_more_button_) { } else if (sender == learn_more_button_) {
GetWidget()->Close(); GetWidget()->Close();
content_setting_bubble_model_->OnLearnMoreClicked(); content_setting_bubble_model_->OnLearnMoreClicked();
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/label_button.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_observer.h" #include "ui/views/widget/widget_observer.h"
#include "ui/views/window/dialog_client_view.h"
class OneClickSigninDialogViewTest : public ChromeViewsTestBase, class OneClickSigninDialogViewTest : public ChromeViewsTestBase,
public views::WidgetObserver { public views::WidgetObserver {
...@@ -134,14 +133,14 @@ TEST_F(OneClickSigninDialogViewTest, HideDialog) { ...@@ -134,14 +133,14 @@ TEST_F(OneClickSigninDialogViewTest, HideDialog) {
TEST_F(OneClickSigninDialogViewTest, OkButton) { TEST_F(OneClickSigninDialogViewTest, OkButton) {
OneClickSigninDialogView* view = ShowOneClickSigninDialog(); OneClickSigninDialogView* view = ShowOneClickSigninDialog();
view->GetDialogClientView()->ResetViewShownTimeStampForTesting(); view->ResetViewShownTimeStampForTesting();
gfx::Point center(10, 10); gfx::Point center(10, 10);
const ui::MouseEvent event(ui::ET_MOUSE_PRESSED, center, center, const ui::MouseEvent event(ui::ET_MOUSE_PRESSED, center, center,
ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON,
ui::EF_LEFT_MOUSE_BUTTON); ui::EF_LEFT_MOUSE_BUTTON);
view->GetDialogClientView()->ok_button()->OnMousePressed(event); view->GetOkButton()->OnMousePressed(event);
view->GetDialogClientView()->ok_button()->OnMouseReleased(event); view->GetOkButton()->OnMouseReleased(event);
WaitForClose(); WaitForClose();
EXPECT_FALSE(OneClickSigninDialogView::IsShowing()); EXPECT_FALSE(OneClickSigninDialogView::IsShowing());
...@@ -151,14 +150,14 @@ TEST_F(OneClickSigninDialogViewTest, OkButton) { ...@@ -151,14 +150,14 @@ TEST_F(OneClickSigninDialogViewTest, OkButton) {
TEST_F(OneClickSigninDialogViewTest, UndoButton) { TEST_F(OneClickSigninDialogViewTest, UndoButton) {
OneClickSigninDialogView* view = ShowOneClickSigninDialog(); OneClickSigninDialogView* view = ShowOneClickSigninDialog();
view->GetDialogClientView()->ResetViewShownTimeStampForTesting(); view->ResetViewShownTimeStampForTesting();
gfx::Point center(10, 10); gfx::Point center(10, 10);
const ui::MouseEvent event(ui::ET_MOUSE_PRESSED, center, center, const ui::MouseEvent event(ui::ET_MOUSE_PRESSED, center, center,
ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON,
ui::EF_LEFT_MOUSE_BUTTON); ui::EF_LEFT_MOUSE_BUTTON);
view->GetDialogClientView()->cancel_button()->OnMousePressed(event); view->GetCancelButton()->OnMousePressed(event);
view->GetDialogClientView()->cancel_button()->OnMouseReleased(event); view->GetCancelButton()->OnMouseReleased(event);
WaitForClose(); WaitForClose();
EXPECT_FALSE(OneClickSigninDialogView::IsShowing()); EXPECT_FALSE(OneClickSigninDialogView::IsShowing());
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include "ui/views/layout/layout_provider.h" #include "ui/views/layout/layout_provider.h"
#include "ui/views/views_delegate.h" #include "ui/views/views_delegate.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
ProfileSigninConfirmationDialogViews::ProfileSigninConfirmationDialogViews( ProfileSigninConfirmationDialogViews::ProfileSigninConfirmationDialogViews(
Browser* browser, Browser* browser,
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/fill_layout.h"
#include "ui/views/view.h" #include "ui/views/view.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
#include "ash/public/cpp/shelf_item.h" #include "ash/public/cpp/shelf_item.h"
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include "ui/views/controls/link.h" #include "ui/views/controls/link.h"
#include "ui/views/test/test_widget_observer.h" #include "ui/views/test/test_widget_observer.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
namespace { namespace {
const int kIconSize = 16; const int kIconSize = 16;
...@@ -77,7 +76,7 @@ class ToolbarActionsBarBubbleViewsTest : public ChromeViewsTestBase { ...@@ -77,7 +76,7 @@ class ToolbarActionsBarBubbleViewsTest : public ChromeViewsTestBase {
} }
void ClickButton(views::Button* button) { void ClickButton(views::Button* button) {
bubble()->GetDialogClientView()->ResetViewShownTimeStampForTesting(); bubble()->ResetViewShownTimeStampForTesting();
ASSERT_TRUE(button); ASSERT_TRUE(button);
const gfx::Point point(10, 10); const gfx::Point point(10, 10);
...@@ -113,10 +112,9 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) { ...@@ -113,10 +112,9 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutActionButton) {
ActionString()); ActionString());
ShowBubble(&delegate); ShowBubble(&delegate);
EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); EXPECT_TRUE(bubble()->GetOkButton());
EXPECT_EQ(ActionString(), EXPECT_EQ(ActionString(), bubble()->GetOkButton()->GetText());
bubble()->GetDialogClientView()->ok_button()->GetText()); EXPECT_FALSE(bubble()->GetCancelButton());
EXPECT_FALSE(bubble()->GetDialogClientView()->cancel_button());
CloseBubble(); CloseBubble();
} }
...@@ -133,8 +131,8 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutNoButtons) { ...@@ -133,8 +131,8 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutNoButtons) {
ShowBubble(&delegate); ShowBubble(&delegate);
EXPECT_EQ(nullptr, bubble()->GetExtraView()); EXPECT_EQ(nullptr, bubble()->GetExtraView());
EXPECT_FALSE(bubble()->GetDialogClientView()->ok_button()); EXPECT_FALSE(bubble()->GetOkButton());
EXPECT_FALSE(bubble()->GetDialogClientView()->cancel_button()); EXPECT_FALSE(bubble()->GetCancelButton());
EXPECT_FALSE(bubble()->learn_more_button()); EXPECT_FALSE(bubble()->learn_more_button());
CloseBubble(); CloseBubble();
...@@ -147,12 +145,10 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, ...@@ -147,12 +145,10 @@ TEST_F(ToolbarActionsBarBubbleViewsTest,
delegate.set_dismiss_button_text(DismissString()); delegate.set_dismiss_button_text(DismissString());
ShowBubble(&delegate); ShowBubble(&delegate);
EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); EXPECT_TRUE(bubble()->GetOkButton());
EXPECT_EQ(ActionString(), EXPECT_EQ(ActionString(), bubble()->GetOkButton()->GetText());
bubble()->GetDialogClientView()->ok_button()->GetText()); EXPECT_TRUE(bubble()->GetCancelButton());
EXPECT_TRUE(bubble()->GetDialogClientView()->cancel_button()); EXPECT_EQ(DismissString(), bubble()->GetCancelButton()->GetText());
EXPECT_EQ(DismissString(),
bubble()->GetDialogClientView()->cancel_button()->GetText());
EXPECT_FALSE(bubble()->learn_more_button()); EXPECT_FALSE(bubble()->learn_more_button());
EXPECT_FALSE(bubble()->item_list()); EXPECT_FALSE(bubble()->item_list());
...@@ -174,12 +170,10 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, ...@@ -174,12 +170,10 @@ TEST_F(ToolbarActionsBarBubbleViewsTest,
ShowBubble(&delegate); ShowBubble(&delegate);
EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); EXPECT_TRUE(bubble()->GetOkButton());
EXPECT_EQ(ActionString(), EXPECT_EQ(ActionString(), bubble()->GetOkButton()->GetText());
bubble()->GetDialogClientView()->ok_button()->GetText()); EXPECT_TRUE(bubble()->GetCancelButton());
EXPECT_TRUE(bubble()->GetDialogClientView()->cancel_button()); EXPECT_EQ(DismissString(), bubble()->GetCancelButton()->GetText());
EXPECT_EQ(DismissString(),
bubble()->GetDialogClientView()->cancel_button()->GetText());
EXPECT_TRUE(bubble()->learn_more_button()); EXPECT_TRUE(bubble()->learn_more_button());
EXPECT_EQ(LearnMoreString(), EXPECT_EQ(LearnMoreString(),
bubble()->learn_more_button()->GetTooltipText(gfx::Point(0, 0))); bubble()->learn_more_button()->GetTooltipText(gfx::Point(0, 0)));
...@@ -194,10 +188,9 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutListView) { ...@@ -194,10 +188,9 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutListView) {
delegate.set_item_list_text(ItemListString()); delegate.set_item_list_text(ItemListString());
ShowBubble(&delegate); ShowBubble(&delegate);
EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); EXPECT_TRUE(bubble()->GetOkButton());
EXPECT_EQ(ActionString(), EXPECT_EQ(ActionString(), bubble()->GetOkButton()->GetText());
bubble()->GetDialogClientView()->ok_button()->GetText()); EXPECT_FALSE(bubble()->GetCancelButton());
EXPECT_FALSE(bubble()->GetDialogClientView()->cancel_button());
EXPECT_FALSE(bubble()->learn_more_button()); EXPECT_FALSE(bubble()->learn_more_button());
EXPECT_TRUE(bubble()->item_list()); EXPECT_TRUE(bubble()->item_list());
EXPECT_EQ(ItemListString(), bubble()->item_list()->GetText()); EXPECT_EQ(ItemListString(), bubble()->item_list()->GetText());
...@@ -210,10 +203,9 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutNoBodyText) { ...@@ -210,10 +203,9 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleLayoutNoBodyText) {
HeadingString(), base::string16(), ActionString()); HeadingString(), base::string16(), ActionString());
ShowBubble(&delegate); ShowBubble(&delegate);
EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()); EXPECT_TRUE(bubble()->GetOkButton());
EXPECT_EQ(ActionString(), EXPECT_EQ(ActionString(), bubble()->GetOkButton()->GetText());
bubble()->GetDialogClientView()->ok_button()->GetText()); EXPECT_FALSE(bubble()->GetCancelButton());
EXPECT_FALSE(bubble()->GetDialogClientView()->cancel_button());
EXPECT_FALSE(bubble()->learn_more_button()); EXPECT_FALSE(bubble()->learn_more_button());
EXPECT_FALSE(bubble()->body_text()); EXPECT_FALSE(bubble()->body_text());
EXPECT_FALSE(bubble()->item_list()); EXPECT_FALSE(bubble()->item_list());
...@@ -228,12 +220,11 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleDefaultDialogButtons) { ...@@ -228,12 +220,11 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestBubbleDefaultDialogButtons) {
delegate.set_default_dialog_button(ui::DIALOG_BUTTON_OK); delegate.set_default_dialog_button(ui::DIALOG_BUTTON_OK);
ShowBubble(&delegate); ShowBubble(&delegate);
ASSERT_TRUE(bubble()->GetDialogClientView()->ok_button()); ASSERT_TRUE(bubble()->GetOkButton());
EXPECT_TRUE(bubble()->GetDialogClientView()->ok_button()->GetIsDefault()); EXPECT_TRUE(bubble()->GetOkButton()->GetIsDefault());
ASSERT_TRUE(bubble()->GetDialogClientView()->cancel_button()); ASSERT_TRUE(bubble()->GetCancelButton());
EXPECT_FALSE( EXPECT_FALSE(bubble()->GetCancelButton()->GetIsDefault());
bubble()->GetDialogClientView()->cancel_button()->GetIsDefault());
CloseBubble(); CloseBubble();
} }
...@@ -255,7 +246,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestShowAndCloseBubble) { ...@@ -255,7 +246,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestShowAndCloseBubble) {
EXPECT_TRUE(delegate.shown()); EXPECT_TRUE(delegate.shown());
EXPECT_FALSE(delegate.close_action()); EXPECT_FALSE(delegate.close_action());
bubble->GetDialogClientView()->CancelWindow(); bubble->CancelDialog();
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
ASSERT_TRUE(delegate.close_action()); ASSERT_TRUE(delegate.close_action());
EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION, EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION,
...@@ -273,7 +264,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickActionButton) { ...@@ -273,7 +264,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickActionButton) {
EXPECT_FALSE(delegate.close_action()); EXPECT_FALSE(delegate.close_action());
ClickButton(bubble()->GetDialogClientView()->ok_button()); ClickButton(bubble()->GetOkButton());
ASSERT_TRUE(delegate.close_action()); ASSERT_TRUE(delegate.close_action());
EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE, EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE,
*delegate.close_action()); *delegate.close_action());
...@@ -290,7 +281,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickDismissButton) { ...@@ -290,7 +281,7 @@ TEST_F(ToolbarActionsBarBubbleViewsTest, TestClickDismissButton) {
EXPECT_FALSE(delegate.close_action()); EXPECT_FALSE(delegate.close_action());
ClickButton(bubble()->GetDialogClientView()->cancel_button()); ClickButton(bubble()->GetCancelButton());
ASSERT_TRUE(delegate.close_action()); ASSERT_TRUE(delegate.close_action());
EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION, EXPECT_EQ(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION,
*delegate.close_action()); *delegate.close_action());
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include "ui/views/border.h" #include "ui/views/border.h"
#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/fill_layout.h"
#include "ui/views/vector_icons.h" #include "ui/views/vector_icons.h"
#include "ui/views/window/dialog_client_view.h"
namespace { namespace {
...@@ -184,14 +183,14 @@ views::View* AuthenticatorRequestDialogView::GetInitiallyFocusedView() { ...@@ -184,14 +183,14 @@ views::View* AuthenticatorRequestDialogView::GetInitiallyFocusedView() {
if (sheet()->model()->IsAcceptButtonVisible() && if (sheet()->model()->IsAcceptButtonVisible() &&
sheet()->model()->IsAcceptButtonEnabled()) { sheet()->model()->IsAcceptButtonEnabled()) {
return GetDialogClientView()->ok_button(); return GetOkButton();
} }
if (ShouldOtherTransportsButtonBeVisible()) if (ShouldOtherTransportsButtonBeVisible())
return other_transports_button_; return other_transports_button_;
if (sheet()->model()->IsCancelButtonVisible()) if (sheet()->model()->IsCancelButtonVisible())
return GetDialogClientView()->cancel_button(); return GetCancelButton();
return nullptr; return nullptr;
} }
...@@ -336,8 +335,8 @@ void AuthenticatorRequestDialogView::UpdateUIForCurrentSheet() { ...@@ -336,8 +335,8 @@ void AuthenticatorRequestDialogView::UpdateUIForCurrentSheet() {
// Force re-layout of the entire dialog client view, which includes the sheet // Force re-layout of the entire dialog client view, which includes the sheet
// content as well as the button row on the bottom. // content as well as the button row on the bottom.
DCHECK(GetDialogClientView()); // TODO(ellyjones): Why is this necessary?
GetDialogClientView()->Layout(); GetWidget()->GetRootView()->Layout();
// The accessibility title is also sourced from the |sheet_|'s step title. // The accessibility title is also sourced from the |sheet_|'s step title.
GetWidget()->UpdateWindowTitle(); GetWidget()->UpdateWindowTitle();
......
...@@ -30,6 +30,10 @@ class Widget; ...@@ -30,6 +30,10 @@ class Widget;
// +------------------------------+ // +------------------------------+
// | [Extra View] [OK] [Cancel] | // | [Extra View] [OK] [Cancel] |
// +------------------------------+ // +------------------------------+
//
// You should not need to directly depend on or use DialogClientView; it is
// being made internal to //ui/views. Access it through the public interfaces on
// DialogDelegate.
class VIEWS_EXPORT DialogClientView : public ClientView, class VIEWS_EXPORT DialogClientView : public ClientView,
public ButtonListener, public ButtonListener,
public DialogObserver { public DialogObserver {
......
...@@ -294,6 +294,18 @@ std::unique_ptr<View> DialogDelegate::DisownExtraView() { ...@@ -294,6 +294,18 @@ std::unique_ptr<View> DialogDelegate::DisownExtraView() {
return std::move(extra_view_); return std::move(extra_view_);
} }
void DialogDelegate::CancelDialog() {
GetDialogClientView()->CancelWindow();
}
void DialogDelegate::AcceptDialog() {
GetDialogClientView()->AcceptWindow();
}
void DialogDelegate::ResetViewShownTimeStampForTesting() {
GetDialogClientView()->ResetViewShownTimeStampForTesting();
}
DialogDelegate::~DialogDelegate() { DialogDelegate::~DialogDelegate() {
UMA_HISTOGRAM_LONG_TIMES("Dialog.DialogDelegate.Duration", UMA_HISTOGRAM_LONG_TIMES("Dialog.DialogDelegate.Duration",
base::TimeTicks::Now() - creation_time_); base::TimeTicks::Now() - creation_time_);
......
...@@ -231,6 +231,18 @@ class VIEWS_EXPORT DialogDelegate : public WidgetDelegate { ...@@ -231,6 +231,18 @@ class VIEWS_EXPORT DialogDelegate : public WidgetDelegate {
// lazy layout system in View::InvalidateLayout // lazy layout system in View::InvalidateLayout
std::unique_ptr<View> DisownExtraView(); std::unique_ptr<View> DisownExtraView();
// Externally or accept the dialog. These methods:
// 1) Invoke the DialogDelegate's Cancel or Accept methods
// 2) Depending on their return value, close the dialog's widget.
// Neither of these methods can be called before the dialog has been
// initialized.
void CancelDialog();
void AcceptDialog();
// Reset the dialog's shown timestamp, for tests that are subject to the
// "unintended interaction" detection mechanism.
void ResetViewShownTimeStampForTesting();
protected: protected:
~DialogDelegate() override; ~DialogDelegate() override;
......
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