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

Side by Side Diff: chrome/browser/chromeos/login/webui_login_display_host.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: clang fix 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_display_host.h" 5 #include "chrome/browser/chromeos/login/webui_login_display_host.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/chromeos/login/oobe_display.h" 8 #include "chrome/browser/chromeos/login/oobe_display.h"
9 #include "chrome/browser/chromeos/login/webui_login_display.h" 9 #include "chrome/browser/chromeos/login/webui_login_display.h"
10 #include "chrome/browser/chromeos/login/webui_login_view.h" 10 #include "chrome/browser/chromeos/login/webui_login_view.h"
(...skipping 16 matching lines...) Expand all
27 // URL which corresponds to the OOBE WebUI. 27 // URL which corresponds to the OOBE WebUI.
28 const char kOobeURL[] = "chrome://oobe"; 28 const char kOobeURL[] = "chrome://oobe";
29 29
30 } // namespace 30 } // namespace
31 31
32 // WebUILoginDisplayHost ------------------------------------------------------- 32 // WebUILoginDisplayHost -------------------------------------------------------
33 33
34 WebUILoginDisplayHost::WebUILoginDisplayHost(const gfx::Rect& background_bounds) 34 WebUILoginDisplayHost::WebUILoginDisplayHost(const gfx::Rect& background_bounds)
35 : BaseLoginDisplayHost(background_bounds), 35 : BaseLoginDisplayHost(background_bounds),
36 login_window_(NULL), 36 login_window_(NULL),
37 login_view_(NULL) { 37 login_view_(NULL),
38 webui_login_display_(NULL) {
38 } 39 }
39 40
40 WebUILoginDisplayHost::~WebUILoginDisplayHost() { 41 WebUILoginDisplayHost::~WebUILoginDisplayHost() {
41 if (login_window_) 42 if (login_window_)
42 login_window_->Close(); 43 login_window_->Close();
43 } 44 }
44 45
45 // LoginDisplayHost implementation --------------------------------------------- 46 // LoginDisplayHost implementation ---------------------------------------------
46 47
47 LoginDisplay* WebUILoginDisplayHost::CreateLoginDisplay( 48 LoginDisplay* WebUILoginDisplayHost::CreateLoginDisplay(
48 LoginDisplay::Delegate* delegate) const { 49 LoginDisplay::Delegate* delegate) {
49 WebUILoginDisplay* webui_login_display = WebUILoginDisplay::GetInstance(); 50 webui_login_display_ = new WebUILoginDisplay(delegate);
50 webui_login_display->set_delegate(delegate); 51 webui_login_display_->set_background_bounds(background_bounds());
51 webui_login_display->set_background_bounds(background_bounds()); 52 return webui_login_display_;
52 return webui_login_display;
53 } 53 }
54 54
55 gfx::NativeWindow WebUILoginDisplayHost::GetNativeWindow() const { 55 gfx::NativeWindow WebUILoginDisplayHost::GetNativeWindow() const {
56 return login_window_ ? login_window_->GetNativeWindow() : NULL; 56 return login_window_ ? login_window_->GetNativeWindow() : NULL;
57 } 57 }
58 58
59 void WebUILoginDisplayHost::SetOobeProgress(BackgroundView::LoginStep step) { 59 void WebUILoginDisplayHost::SetOobeProgress(BackgroundView::LoginStep step) {
60 } 60 }
61 61
62 void WebUILoginDisplayHost::SetOobeProgressBarVisible(bool visible) { 62 void WebUILoginDisplayHost::SetOobeProgressBarVisible(bool visible) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 LoadURL(GURL(kOobeURL)); 106 LoadURL(GURL(kOobeURL));
107 107
108 BaseLoginDisplayHost::StartWizard(first_screen_name, start_url); 108 BaseLoginDisplayHost::StartWizard(first_screen_name, start_url);
109 } 109 }
110 110
111 void WebUILoginDisplayHost::StartSignInScreen() { 111 void WebUILoginDisplayHost::StartSignInScreen() {
112 if (!login_window_) 112 if (!login_window_)
113 LoadURL(GURL(kLoginURL)); 113 LoadURL(GURL(kLoginURL));
114 114
115 BaseLoginDisplayHost::StartSignInScreen(); 115 BaseLoginDisplayHost::StartSignInScreen();
116 GetOobeUI()->ShowSigninScreen(); 116 GetOobeUI()->ShowSigninScreen(webui_login_display_);
117 } 117 }
118 118
119 void WebUILoginDisplayHost::LoadURL(const GURL& url) { 119 void WebUILoginDisplayHost::LoadURL(const GURL& url) {
120 if (!login_window_) { 120 if (!login_window_) {
121 views::Widget::InitParams params( 121 views::Widget::InitParams params(
122 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); 122 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
123 params.bounds = background_bounds(); 123 params.bounds = background_bounds();
124 124
125 login_window_ = new views::Widget; 125 login_window_ = new views::Widget;
126 login_window_->Init(params); 126 login_window_->Init(params);
127 login_view_ = new WebUILoginView(); 127 login_view_ = new WebUILoginView();
128 128
129 login_view_->Init(); 129 login_view_->Init(login_window_);
130 130
131 #if defined(USE_AURA) 131 #if defined(USE_AURA)
132 aura_shell::Shell::GetInstance()->GetContainer( 132 aura_shell::Shell::GetInstance()->GetContainer(
133 aura_shell::internal::kShellWindowId_LockScreenContainer)-> 133 aura_shell::internal::kShellWindowId_LockScreenContainer)->
134 AddChild(login_window_->GetNativeView()); 134 AddChild(login_window_->GetNativeView());
135 #endif 135 #endif
136 136
137 login_window_->SetContentsView(login_view_); 137 login_window_->SetContentsView(login_view_);
138 login_view_->UpdateWindowType(); 138 login_view_->UpdateWindowType();
139 139
140 login_window_->Show(); 140 login_window_->Show();
141 #if defined(USE_AURA) 141 #if defined(USE_AURA)
142 login_window_->GetNativeView()->set_name("WebUILoginView"); 142 login_window_->GetNativeView()->set_name("WebUILoginView");
143 #endif 143 #endif
144 WebUILoginDisplay::GetInstance()->set_login_window(login_window_);
145 login_view_->OnWindowCreated(); 144 login_view_->OnWindowCreated();
146 } 145 }
147 login_view_->LoadURL(url); 146 login_view_->LoadURL(url);
148 } 147 }
149 148
150 OobeUI* WebUILoginDisplayHost::GetOobeUI() const { 149 OobeUI* WebUILoginDisplayHost::GetOobeUI() const {
151 return static_cast<OobeUI*>(login_view_->GetWebUI()); 150 return static_cast<OobeUI*>(login_view_->GetWebUI());
152 } 151 }
153 152
154 WizardController* WebUILoginDisplayHost::CreateWizardController() { 153 WizardController* WebUILoginDisplayHost::CreateWizardController() {
155 // TODO(altimofeev): ensure that WebUI is ready. 154 // TODO(altimofeev): ensure that WebUI is ready.
156 OobeDisplay* oobe_display = GetOobeUI(); 155 OobeDisplay* oobe_display = GetOobeUI();
157 return new WizardController(this, oobe_display); 156 return new WizardController(this, oobe_display);
158 } 157 }
159 158
160 } // namespace chromeos 159 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698