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

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

Issue 8395042: [cros,de-hack] Get rid of singleton for the WebUILoginScreen. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: comment nit Created 9 years, 1 month 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/webui_login_view.h" 5 #include "chrome/browser/chromeos/login/webui_login_view.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 namespace chromeos { 106 namespace chromeos {
107 107
108 // static 108 // static
109 const int WebUILoginView::kStatusAreaCornerPadding = 5; 109 const int WebUILoginView::kStatusAreaCornerPadding = 5;
110 110
111 // WebUILoginView public: ------------------------------------------------------ 111 // WebUILoginView public: ------------------------------------------------------
112 112
113 WebUILoginView::WebUILoginView() 113 WebUILoginView::WebUILoginView()
114 : status_area_(NULL), 114 : status_area_(NULL),
115 webui_login_(NULL), 115 webui_login_(NULL),
116 login_window_(NULL),
116 status_window_(NULL), 117 status_window_(NULL),
117 host_window_frozen_(false), 118 host_window_frozen_(false),
118 status_area_visibility_on_init_(true) { 119 status_area_visibility_on_init_(true) {
119 #if defined(USE_VIRTUAL_KEYBOARD) 120 #if defined(USE_VIRTUAL_KEYBOARD)
120 // Make sure the singleton VirtualKeyboardManager object is created. 121 // Make sure the singleton VirtualKeyboardManager object is created.
121 VirtualKeyboardManager::GetInstance(); 122 VirtualKeyboardManager::GetInstance();
122 #endif 123 #endif
123 accel_map_[views::Accelerator(ui::VKEY_Z, false, true, true)] = 124 accel_map_[views::Accelerator(ui::VKEY_Z, false, true, true)] =
124 kAccelNameAccessibility; 125 kAccelNameAccessibility;
125 accel_map_[views::Accelerator(ui::VKEY_ESCAPE, false, false, false)] = 126 accel_map_[views::Accelerator(ui::VKEY_ESCAPE, false, false, false)] =
126 kAccelNameCancel; 127 kAccelNameCancel;
127 accel_map_[views::Accelerator(ui::VKEY_E, false, true, true)] = 128 accel_map_[views::Accelerator(ui::VKEY_E, false, true, true)] =
128 kAccelNameEnrollment; 129 kAccelNameEnrollment;
129 130
130 for (AccelMap::iterator i(accel_map_.begin()); i != accel_map_.end(); ++i) 131 for (AccelMap::iterator i(accel_map_.begin()); i != accel_map_.end(); ++i)
131 AddAccelerator(i->first); 132 AddAccelerator(i->first);
132 } 133 }
133 134
134 WebUILoginView::~WebUILoginView() { 135 WebUILoginView::~WebUILoginView() {
135 if (status_window_) 136 if (status_window_)
136 status_window_->CloseNow(); 137 status_window_->CloseNow();
137 status_window_ = NULL; 138 status_window_ = NULL;
138 } 139 }
139 140
140 void WebUILoginView::Init() { 141 void WebUILoginView::Init(views::Widget* login_window) {
141 142 login_window_ = login_window;
142 webui_login_ = new DOMView(); 143 webui_login_ = new DOMView();
143 AddChildView(webui_login_); 144 AddChildView(webui_login_);
144 webui_login_->Init(ProfileManager::GetDefaultProfile(), NULL); 145 webui_login_->Init(ProfileManager::GetDefaultProfile(), NULL);
145 webui_login_->SetVisible(true); 146 webui_login_->SetVisible(true);
146 147
147 TabContents* tab_contents = webui_login_->dom_contents()->tab_contents(); 148 TabContents* tab_contents = webui_login_->dom_contents()->tab_contents();
148 tab_contents->set_delegate(this); 149 tab_contents->set_delegate(this);
149 150
150 tab_watcher_.reset(new TabFirstRenderWatcher(tab_contents, this)); 151 tab_watcher_.reset(new TabFirstRenderWatcher(tab_contents, this));
151 } 152 }
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 oobe_ui->OnLoginPromptVisible(); 331 oobe_ui->OnLoginPromptVisible();
331 } 332 }
332 333
333 void WebUILoginView::InitStatusArea() { 334 void WebUILoginView::InitStatusArea() {
334 DCHECK(status_area_ == NULL); 335 DCHECK(status_area_ == NULL);
335 DCHECK(status_window_ == NULL); 336 DCHECK(status_window_ == NULL);
336 status_area_ = new StatusAreaView(this); 337 status_area_ = new StatusAreaView(this);
337 status_area_->Init(); 338 status_area_->Init();
338 status_area_->SetVisible(status_area_visibility_on_init_); 339 status_area_->SetVisible(status_area_visibility_on_init_);
339 340
340 views::Widget* login_window = GetLoginWindow();
341 // Width of |status_window| is meant to be large enough. 341 // Width of |status_window| is meant to be large enough.
342 // The current value of status_area_->GetPreferredSize().width() 342 // The current value of status_area_->GetPreferredSize().width()
343 // will be too small when button status is changed. 343 // will be too small when button status is changed.
344 // (e.g. when CapsLock indicator appears) 344 // (e.g. when CapsLock indicator appears)
345 gfx::Size widget_size(width()/2, 345 gfx::Size widget_size(width()/2,
346 status_area_->GetPreferredSize().height()); 346 status_area_->GetPreferredSize().height());
347 const int widget_x = base::i18n::IsRTL() ? 347 const int widget_x = base::i18n::IsRTL() ?
348 kStatusAreaCornerPadding : 348 kStatusAreaCornerPadding :
349 width() - widget_size.width() - kStatusAreaCornerPadding; 349 width() - widget_size.width() - kStatusAreaCornerPadding;
350 gfx::Rect widget_bounds(widget_x, kStatusAreaCornerPadding, 350 gfx::Rect widget_bounds(widget_x, kStatusAreaCornerPadding,
351 widget_size.width(), widget_size.height()); 351 widget_size.width(), widget_size.height());
352 #if defined(TOUCH_UI) 352 #if defined(TOUCH_UI)
353 views::Widget::InitParams widget_params( 353 views::Widget::InitParams widget_params(
354 views::Widget::InitParams::TYPE_CONTROL); 354 views::Widget::InitParams::TYPE_CONTROL);
355 #else 355 #else
356 // TODO(nkostylev|oshima): Make status area in the same window as 356 // TODO(nkostylev|oshima): Make status area in the same window as
357 // |webui_login_| once RenderWidgetHostViewViews and compositor are 357 // |webui_login_| once RenderWidgetHostViewViews and compositor are
358 // ready. 358 // ready.
359 views::Widget::InitParams widget_params( 359 views::Widget::InitParams widget_params(
360 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); 360 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
361 #endif 361 #endif
362 widget_params.bounds = widget_bounds; 362 widget_params.bounds = widget_bounds;
363 widget_params.transparent = true; 363 widget_params.transparent = true;
364 widget_params.parent_widget = login_window; 364 widget_params.parent_widget = login_window_;
365 status_window_ = new views::Widget; 365 status_window_ = new views::Widget;
366 status_window_->Init(widget_params); 366 status_window_->Init(widget_params);
367 367
368 #if defined(TOOLKIT_USES_GTK) 368 #if defined(TOOLKIT_USES_GTK)
369 chromeos::WmIpc::instance()->SetWindowType( 369 chromeos::WmIpc::instance()->SetWindowType(
370 status_window_->GetNativeView(), 370 status_window_->GetNativeView(),
371 chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE, 371 chromeos::WM_IPC_WINDOW_CHROME_INFO_BUBBLE,
372 NULL); 372 NULL);
373 #endif 373 #endif
374 374
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 unhandled_keyboard_event_handler_.HandleKeyboardEvent(event, 415 unhandled_keyboard_event_handler_.HandleKeyboardEvent(event,
416 GetFocusManager()); 416 GetFocusManager());
417 417
418 // Make sure error bubble is cleared on keyboard event. This is needed 418 // Make sure error bubble is cleared on keyboard event. This is needed
419 // when the focus is inside an iframe. 419 // when the focus is inside an iframe.
420 WebUI* web_ui = GetWebUI(); 420 WebUI* web_ui = GetWebUI();
421 if (web_ui) 421 if (web_ui)
422 web_ui->CallJavascriptFunction("cr.ui.Oobe.clearErrors"); 422 web_ui->CallJavascriptFunction("cr.ui.Oobe.clearErrors");
423 } 423 }
424 424
425 views::Widget* WebUILoginView::GetLoginWindow() {
426 return WebUILoginDisplay::GetLoginWindow();
427 }
428
429 } // namespace chromeos 425 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/webui_login_view.h ('k') | chrome/browser/chromeos/setting_level_bubble.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698