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

Side by Side Diff: chrome/browser/chromeos/login/simple_web_view_dialog.cc

Issue 15879007: Support web contents modal dialogs within SimpleWebViewDialog and WebUILoginView (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comment Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chromeos/login/simple_web_view_dialog.h" 5 #include "chrome/browser/chromeos/login/simple_web_view_dialog.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/shell_window_ids.h" 8 #include "ash/shell_window_ids.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 WebContents* web_contents = web_view_->GetWebContents(); 152 WebContents* web_contents = web_view_->GetWebContents();
153 DCHECK(web_contents); 153 DCHECK(web_contents);
154 154
155 // Create the password manager that is needed for the proxy. 155 // Create the password manager that is needed for the proxy.
156 PasswordManagerDelegateImpl::CreateForWebContents(web_contents); 156 PasswordManagerDelegateImpl::CreateForWebContents(web_contents);
157 PasswordManager::CreateForWebContentsAndDelegate( 157 PasswordManager::CreateForWebContentsAndDelegate(
158 web_contents, PasswordManagerDelegateImpl::FromWebContents(web_contents)); 158 web_contents, PasswordManagerDelegateImpl::FromWebContents(web_contents));
159 159
160 // LoginHandlerViews uses a constrained window for the password manager view. 160 // LoginHandlerViews uses a constrained window for the password manager view.
161 WebContentsModalDialogManager::CreateForWebContents(web_contents); 161 WebContentsModalDialogManager::CreateForWebContents(web_contents);
162 WebContentsModalDialogManager::FromWebContents(web_contents)->
163 set_delegate(this);
162 } 164 }
163 165
164 void SimpleWebViewDialog::Init() { 166 void SimpleWebViewDialog::Init() {
165 set_background(views::Background::CreateSolidBackground(SK_ColorWHITE)); 167 set_background(views::Background::CreateSolidBackground(SK_ColorWHITE));
166 168
167 // Back/Forward buttons. 169 // Back/Forward buttons.
168 back_ = new views::ImageButton(this); 170 back_ = new views::ImageButton(this);
169 back_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON | 171 back_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON |
170 ui::EF_MIDDLE_MOUSE_BUTTON); 172 ui::EF_MIDDLE_MOUSE_BUTTON);
171 back_->set_tag(IDC_BACK); 173 back_->set_tag(IDC_BACK);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 layout->StartRow(1, 1); 229 layout->StartRow(1, 1);
228 layout->AddView(web_view_container_.release()); 230 layout->AddView(web_view_container_.release());
229 layout->AddPaddingRow(0, kInnerMargin); 231 layout->AddPaddingRow(0, kInnerMargin);
230 232
231 location_bar_->Init(); 233 location_bar_->Init();
232 UpdateReload(web_view_->web_contents()->IsLoading(), true); 234 UpdateReload(web_view_->web_contents()->IsLoading(), true);
233 235
234 Layout(); 236 Layout();
235 } 237 }
236 238
239 void SimpleWebViewDialog::Layout() {
240 views::WidgetDelegateView::Layout();
241
242 FOR_EACH_OBSERVER(web_modal::WebContentsModalDialogHostObserver,
243 observer_list_,
244 OnPositionRequiresUpdate());
245 }
246
237 views::View* SimpleWebViewDialog::GetContentsView() { 247 views::View* SimpleWebViewDialog::GetContentsView() {
238 return this; 248 return this;
239 } 249 }
240 250
241 views::View* SimpleWebViewDialog::GetInitiallyFocusedView() { 251 views::View* SimpleWebViewDialog::GetInitiallyFocusedView() {
242 return web_view_; 252 return web_view_;
243 } 253 }
244 254
245 void SimpleWebViewDialog::ButtonPressed(views::Button* sender, 255 void SimpleWebViewDialog::ButtonPressed(views::Button* sender,
246 const ui::Event& event) { 256 const ui::Event& event) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 // Always reload ignoring cache. 345 // Always reload ignoring cache.
336 case IDC_RELOAD_IGNORING_CACHE: 346 case IDC_RELOAD_IGNORING_CACHE:
337 case IDC_RELOAD_CLEARING_CACHE: 347 case IDC_RELOAD_CLEARING_CACHE:
338 web_contents->GetController().ReloadIgnoringCache(true); 348 web_contents->GetController().ReloadIgnoringCache(true);
339 break; 349 break;
340 default: 350 default:
341 NOTREACHED(); 351 NOTREACHED();
342 } 352 }
343 } 353 }
344 354
355 web_modal::WebContentsModalDialogHost*
356 SimpleWebViewDialog::GetWebContentsModalDialogHost() {
357 return this;
358 }
359
360 gfx::NativeView SimpleWebViewDialog::GetHostView() const {
361 return GetWidget()->GetNativeView();
362 }
363
364 gfx::Point SimpleWebViewDialog::GetDialogPosition(const gfx::Size& size) {
365 // Center the widget.
366 gfx::Size widget_size = GetWidget()->GetWindowBoundsInScreen().size();
367 return gfx::Point(widget_size.width() / 2 - size.width() / 2,
368 widget_size.height() / 2 - size.height() / 2);
369 }
370
371 void SimpleWebViewDialog::AddObserver(
372 web_modal::WebContentsModalDialogHostObserver* observer) {
373 if (observer && !observer_list_.HasObserver(observer))
374 observer_list_.AddObserver(observer);
375 }
376
377 void SimpleWebViewDialog::RemoveObserver(
378 web_modal::WebContentsModalDialogHostObserver* observer) {
379 observer_list_.RemoveObserver(observer);
380 }
381
345 void SimpleWebViewDialog::LoadImages() { 382 void SimpleWebViewDialog::LoadImages() {
346 ui::ThemeProvider* tp = GetThemeProvider(); 383 ui::ThemeProvider* tp = GetThemeProvider();
347 384
348 back_->SetImage(views::CustomButton::STATE_NORMAL, 385 back_->SetImage(views::CustomButton::STATE_NORMAL,
349 tp->GetImageSkiaNamed(IDR_BACK)); 386 tp->GetImageSkiaNamed(IDR_BACK));
350 back_->SetImage(views::CustomButton::STATE_HOVERED, 387 back_->SetImage(views::CustomButton::STATE_HOVERED,
351 tp->GetImageSkiaNamed(IDR_BACK_H)); 388 tp->GetImageSkiaNamed(IDR_BACK_H));
352 back_->SetImage(views::CustomButton::STATE_PRESSED, 389 back_->SetImage(views::CustomButton::STATE_PRESSED,
353 tp->GetImageSkiaNamed(IDR_BACK_P)); 390 tp->GetImageSkiaNamed(IDR_BACK_P));
354 back_->SetImage(views::CustomButton::STATE_DISABLED, 391 back_->SetImage(views::CustomButton::STATE_DISABLED,
(...skipping 20 matching lines...) Expand all
375 412
376 void SimpleWebViewDialog::UpdateReload(bool is_loading, bool force) { 413 void SimpleWebViewDialog::UpdateReload(bool is_loading, bool force) {
377 if (reload_) { 414 if (reload_) {
378 reload_->ChangeMode( 415 reload_->ChangeMode(
379 is_loading ? ReloadButton::MODE_STOP : ReloadButton::MODE_RELOAD, 416 is_loading ? ReloadButton::MODE_STOP : ReloadButton::MODE_RELOAD,
380 force); 417 force);
381 } 418 }
382 } 419 }
383 420
384 } // namespace chromeos 421 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/simple_web_view_dialog.h ('k') | chrome/browser/chromeos/login/webui_login_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698