Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5255)

Unified Diff: chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc

Issue 2619963003: Change the views sign-in dialog to be tab modal. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
diff --git a/chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc b/chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
index 9a650bf4c4adb8718645cd30d06435887fadf8f5..3fc968934143fc105747102ac84e82b0946eb138 100644
--- a/chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
+++ b/chrome/browser/ui/views/profiles/signin_view_controller_delegate_views.cc
@@ -42,11 +42,13 @@ SigninViewControllerDelegateViews::SigninViewControllerDelegateViews(
SigninViewController* signin_view_controller,
std::unique_ptr<views::WebView> content_view,
Browser* browser,
+ DialogModalType dialog_modal_type_,
bool wait_for_size)
: SigninViewControllerDelegate(signin_view_controller,
content_view->GetWebContents()),
content_view_(content_view.release()),
modal_signin_widget_(nullptr),
+ dialog_modal_type_(dialog_modal_type_),
wait_for_size_(wait_for_size),
browser_(browser) {
DCHECK(browser_);
@@ -78,7 +80,14 @@ void SigninViewControllerDelegateViews::DeleteDelegate() {
}
ui::ModalType SigninViewControllerDelegateViews::GetModalType() const {
- return ui::MODAL_TYPE_WINDOW;
+ switch (dialog_modal_type_) {
+ case TAB_MODAL:
+ return ui::MODAL_TYPE_CHILD;
+ case WINDOW_MODAL:
+ return ui::MODAL_TYPE_WINDOW;
Peter Kasting 2017/01/11 01:24:45 Why not just use these values directly everywhere,
msarda 2017/01/11 09:54:25 I hesitated to do that because we only support 2 v
+ }
+ NOTREACHED();
+ return ui::MODAL_TYPE_CHILD;
}
bool SigninViewControllerDelegateViews::ShouldShowCloseButton() const {
@@ -121,9 +130,18 @@ void SigninViewControllerDelegateViews::DisplayModal() {
return;
gfx::NativeWindow window = host_web_contents->GetTopLevelNativeWindow();
- modal_signin_widget_ =
- constrained_window::CreateBrowserModalDialogViews(this, window);
- modal_signin_widget_->Show();
+ switch (dialog_modal_type_) {
+ case WINDOW_MODAL:
+ modal_signin_widget_ =
+ constrained_window::CreateBrowserModalDialogViews(this, window);
+ modal_signin_widget_->Show();
+ break;
+ case TAB_MODAL:
+ modal_signin_widget_ = constrained_window::ShowWebModalDialogViews(
+ this, browser_->tab_strip_model()->GetActiveWebContents());
+ break;
+ }
+ content_view_->RequestFocus();
}
// static
@@ -206,7 +224,7 @@ SigninViewControllerDelegate::CreateModalSigninDelegate(
signin_view_controller,
SigninViewControllerDelegateViews::CreateGaiaWebView(
nullptr, mode, browser, access_point),
- browser, false);
+ browser, SigninViewControllerDelegateViews::TAB_MODAL, false);
}
SigninViewControllerDelegate*
@@ -216,7 +234,7 @@ SigninViewControllerDelegate::CreateSyncConfirmationDelegate(
return new SigninViewControllerDelegateViews(
signin_view_controller,
SigninViewControllerDelegateViews::CreateSyncConfirmationWebView(browser),
- browser, true);
+ browser, SigninViewControllerDelegateViews::WINDOW_MODAL, true);
}
SigninViewControllerDelegate*
@@ -226,5 +244,5 @@ SigninViewControllerDelegate::CreateSigninErrorDelegate(
return new SigninViewControllerDelegateViews(
signin_view_controller,
SigninViewControllerDelegateViews::CreateSigninErrorWebView(browser),
- browser, true);
+ browser, SigninViewControllerDelegateViews::WINDOW_MODAL, true);
}

Powered by Google App Engine
This is Rietveld 408576698