| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/profiles/signin_view_controller_delegate_views
.h" | 5 #include "chrome/browser/ui/views/profiles/signin_view_controller_delegate_views
.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
| 9 #include "chrome/browser/profiles/profile_avatar_icon_util.h" | 9 #include "chrome/browser/profiles/profile_avatar_icon_util.h" |
| 10 #include "chrome/browser/signin/signin_promo.h" | 10 #include "chrome/browser/signin/signin_promo.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 return profile->IsSyncAllowed() ? kSyncConfirmationDialogHeight | 35 return profile->IsSyncAllowed() ? kSyncConfirmationDialogHeight |
| 36 : kSigninErrorDialogHeight; | 36 : kSigninErrorDialogHeight; |
| 37 } | 37 } |
| 38 | 38 |
| 39 } // namespace | 39 } // namespace |
| 40 | 40 |
| 41 SigninViewControllerDelegateViews::SigninViewControllerDelegateViews( | 41 SigninViewControllerDelegateViews::SigninViewControllerDelegateViews( |
| 42 SigninViewController* signin_view_controller, | 42 SigninViewController* signin_view_controller, |
| 43 std::unique_ptr<views::WebView> content_view, | 43 std::unique_ptr<views::WebView> content_view, |
| 44 Browser* browser, | 44 Browser* browser, |
| 45 ui::ModalType dialog_modal_type, |
| 45 bool wait_for_size) | 46 bool wait_for_size) |
| 46 : SigninViewControllerDelegate(signin_view_controller, | 47 : SigninViewControllerDelegate(signin_view_controller, |
| 47 content_view->GetWebContents()), | 48 content_view->GetWebContents()), |
| 48 content_view_(content_view.release()), | 49 content_view_(content_view.release()), |
| 49 modal_signin_widget_(nullptr), | 50 modal_signin_widget_(nullptr), |
| 51 dialog_modal_type_(dialog_modal_type), |
| 50 wait_for_size_(wait_for_size), | 52 wait_for_size_(wait_for_size), |
| 51 browser_(browser) { | 53 browser_(browser) { |
| 52 DCHECK(browser_); | 54 DCHECK(browser_); |
| 53 DCHECK(browser_->tab_strip_model()->GetActiveWebContents()) | 55 DCHECK(browser_->tab_strip_model()->GetActiveWebContents()) |
| 54 << "A tab must be active to present the sign-in modal dialog."; | 56 << "A tab must be active to present the sign-in modal dialog."; |
| 55 | 57 DCHECK(dialog_modal_type == ui::MODAL_TYPE_CHILD || |
| 58 dialog_modal_type == ui::MODAL_TYPE_WINDOW) |
| 59 << "Unsupported dialog modal type " << dialog_modal_type; |
| 56 if (!wait_for_size_) | 60 if (!wait_for_size_) |
| 57 DisplayModal(); | 61 DisplayModal(); |
| 58 } | 62 } |
| 59 | 63 |
| 60 SigninViewControllerDelegateViews::~SigninViewControllerDelegateViews() {} | 64 SigninViewControllerDelegateViews::~SigninViewControllerDelegateViews() {} |
| 61 | 65 |
| 62 // views::DialogDelegateView: | 66 // views::DialogDelegateView: |
| 63 views::View* SigninViewControllerDelegateViews::GetContentsView() { | 67 views::View* SigninViewControllerDelegateViews::GetContentsView() { |
| 64 return content_view_; | 68 return content_view_; |
| 65 } | 69 } |
| 66 | 70 |
| 67 views::Widget* SigninViewControllerDelegateViews::GetWidget() { | 71 views::Widget* SigninViewControllerDelegateViews::GetWidget() { |
| 68 return content_view_->GetWidget(); | 72 return content_view_->GetWidget(); |
| 69 } | 73 } |
| 70 | 74 |
| 71 const views::Widget* SigninViewControllerDelegateViews::GetWidget() const { | 75 const views::Widget* SigninViewControllerDelegateViews::GetWidget() const { |
| 72 return content_view_->GetWidget(); | 76 return content_view_->GetWidget(); |
| 73 } | 77 } |
| 74 | 78 |
| 75 void SigninViewControllerDelegateViews::DeleteDelegate() { | 79 void SigninViewControllerDelegateViews::DeleteDelegate() { |
| 76 ResetSigninViewControllerDelegate(); | 80 ResetSigninViewControllerDelegate(); |
| 77 delete this; | 81 delete this; |
| 78 } | 82 } |
| 79 | 83 |
| 80 ui::ModalType SigninViewControllerDelegateViews::GetModalType() const { | 84 ui::ModalType SigninViewControllerDelegateViews::GetModalType() const { |
| 81 return ui::MODAL_TYPE_WINDOW; | 85 return dialog_modal_type_; |
| 82 } | 86 } |
| 83 | 87 |
| 84 bool SigninViewControllerDelegateViews::ShouldShowCloseButton() const { | 88 bool SigninViewControllerDelegateViews::ShouldShowCloseButton() const { |
| 85 return false; | 89 return false; |
| 86 } | 90 } |
| 87 | 91 |
| 88 int SigninViewControllerDelegateViews::GetDialogButtons() const { | 92 int SigninViewControllerDelegateViews::GetDialogButtons() const { |
| 89 return ui::DIALOG_BUTTON_NONE; | 93 return ui::DIALOG_BUTTON_NONE; |
| 90 } | 94 } |
| 91 | 95 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 114 content::WebContents* host_web_contents = | 118 content::WebContents* host_web_contents = |
| 115 browser_->tab_strip_model()->GetActiveWebContents(); | 119 browser_->tab_strip_model()->GetActiveWebContents(); |
| 116 | 120 |
| 117 // Avoid displaying the sign-in modal view if there are no active web | 121 // Avoid displaying the sign-in modal view if there are no active web |
| 118 // contents. This happens if the user closes the browser window before this | 122 // contents. This happens if the user closes the browser window before this |
| 119 // dialog has a chance to be displayed. | 123 // dialog has a chance to be displayed. |
| 120 if (!host_web_contents) | 124 if (!host_web_contents) |
| 121 return; | 125 return; |
| 122 | 126 |
| 123 gfx::NativeWindow window = host_web_contents->GetTopLevelNativeWindow(); | 127 gfx::NativeWindow window = host_web_contents->GetTopLevelNativeWindow(); |
| 124 modal_signin_widget_ = | 128 switch (dialog_modal_type_) { |
| 125 constrained_window::CreateBrowserModalDialogViews(this, window); | 129 case ui::MODAL_TYPE_WINDOW: |
| 126 modal_signin_widget_->Show(); | 130 modal_signin_widget_ = |
| 131 constrained_window::CreateBrowserModalDialogViews(this, window); |
| 132 modal_signin_widget_->Show(); |
| 133 break; |
| 134 case ui::MODAL_TYPE_CHILD: |
| 135 modal_signin_widget_ = constrained_window::ShowWebModalDialogViews( |
| 136 this, browser_->tab_strip_model()->GetActiveWebContents()); |
| 137 break; |
| 138 default: |
| 139 NOTREACHED() << "Unsupported dialog modal type " << dialog_modal_type_; |
| 140 } |
| 141 content_view_->RequestFocus(); |
| 127 } | 142 } |
| 128 | 143 |
| 129 // static | 144 // static |
| 130 std::unique_ptr<views::WebView> | 145 std::unique_ptr<views::WebView> |
| 131 SigninViewControllerDelegateViews::CreateGaiaWebView( | 146 SigninViewControllerDelegateViews::CreateGaiaWebView( |
| 132 content::WebContentsDelegate* delegate, | 147 content::WebContentsDelegate* delegate, |
| 133 profiles::BubbleViewMode mode, | 148 profiles::BubbleViewMode mode, |
| 134 Browser* browser, | 149 Browser* browser, |
| 135 signin_metrics::AccessPoint access_point) { | 150 signin_metrics::AccessPoint access_point) { |
| 136 GURL url = | 151 GURL url = |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 SigninViewControllerDelegate* | 214 SigninViewControllerDelegate* |
| 200 SigninViewControllerDelegate::CreateModalSigninDelegate( | 215 SigninViewControllerDelegate::CreateModalSigninDelegate( |
| 201 SigninViewController* signin_view_controller, | 216 SigninViewController* signin_view_controller, |
| 202 profiles::BubbleViewMode mode, | 217 profiles::BubbleViewMode mode, |
| 203 Browser* browser, | 218 Browser* browser, |
| 204 signin_metrics::AccessPoint access_point) { | 219 signin_metrics::AccessPoint access_point) { |
| 205 return new SigninViewControllerDelegateViews( | 220 return new SigninViewControllerDelegateViews( |
| 206 signin_view_controller, | 221 signin_view_controller, |
| 207 SigninViewControllerDelegateViews::CreateGaiaWebView( | 222 SigninViewControllerDelegateViews::CreateGaiaWebView( |
| 208 nullptr, mode, browser, access_point), | 223 nullptr, mode, browser, access_point), |
| 209 browser, false); | 224 browser, ui::MODAL_TYPE_CHILD, false); |
| 210 } | 225 } |
| 211 | 226 |
| 212 SigninViewControllerDelegate* | 227 SigninViewControllerDelegate* |
| 213 SigninViewControllerDelegate::CreateSyncConfirmationDelegate( | 228 SigninViewControllerDelegate::CreateSyncConfirmationDelegate( |
| 214 SigninViewController* signin_view_controller, | 229 SigninViewController* signin_view_controller, |
| 215 Browser* browser) { | 230 Browser* browser) { |
| 216 return new SigninViewControllerDelegateViews( | 231 return new SigninViewControllerDelegateViews( |
| 217 signin_view_controller, | 232 signin_view_controller, |
| 218 SigninViewControllerDelegateViews::CreateSyncConfirmationWebView(browser), | 233 SigninViewControllerDelegateViews::CreateSyncConfirmationWebView(browser), |
| 219 browser, true); | 234 browser, ui::MODAL_TYPE_WINDOW, true); |
| 220 } | 235 } |
| 221 | 236 |
| 222 SigninViewControllerDelegate* | 237 SigninViewControllerDelegate* |
| 223 SigninViewControllerDelegate::CreateSigninErrorDelegate( | 238 SigninViewControllerDelegate::CreateSigninErrorDelegate( |
| 224 SigninViewController* signin_view_controller, | 239 SigninViewController* signin_view_controller, |
| 225 Browser* browser) { | 240 Browser* browser) { |
| 226 return new SigninViewControllerDelegateViews( | 241 return new SigninViewControllerDelegateViews( |
| 227 signin_view_controller, | 242 signin_view_controller, |
| 228 SigninViewControllerDelegateViews::CreateSigninErrorWebView(browser), | 243 SigninViewControllerDelegateViews::CreateSigninErrorWebView(browser), |
| 229 browser, true); | 244 browser, ui::MODAL_TYPE_WINDOW, true); |
| 230 } | 245 } |
| OLD | NEW |