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 |