Chromium Code Reviews| Index: chrome/browser/chromeos/login/webui_login_display_host.cc |
| diff --git a/chrome/browser/chromeos/login/webui_login_display_host.cc b/chrome/browser/chromeos/login/webui_login_display_host.cc |
| index ced024cf6f8e11326921fb12b1494e94f8624514..43b86b6b876a9733a04ec1f065331eff647c7bcd 100644 |
| --- a/chrome/browser/chromeos/login/webui_login_display_host.cc |
| +++ b/chrome/browser/chromeos/login/webui_login_display_host.cc |
| @@ -4,17 +4,36 @@ |
| #include "chrome/browser/chromeos/login/webui_login_display_host.h" |
| +#include "chrome/browser/chromeos/login/oobe_display.h" |
| #include "chrome/browser/chromeos/login/webui_login_display.h" |
| +#include "chrome/browser/chromeos/login/webui_login_view.h" |
|
Nikita (slow)
2011/06/07 16:18:06
nit: alpha sort.
|
| +#include "chrome/browser/chromeos/login/touch_login_view.h" |
| +#include "chrome/browser/chromeos/login/wizard_controller.h" |
| +#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
| +#include "views/widget/widget.h" |
| namespace chromeos { |
| +namespace { |
| + |
| +// URL which corresponds to the login WebUI. |
| +const char kLoginURL[] = "chrome://login"; |
|
Nikita (slow)
2011/06/07 16:18:06
Please move to chrome/common/url_constants.h,
kChr
|
| +// URL which corresponds to the OOBE WebUI. |
| +const char kOobeURL[] = "chrome://oobe"; |
|
Nikita (slow)
2011/06/07 16:18:06
Use kChromeUIOobeURL from chrome/common/url_consta
|
| + |
| +} // namespace |
| + |
| // WebUILoginDisplayHost ------------------------------------------------------- |
| WebUILoginDisplayHost::WebUILoginDisplayHost(const gfx::Rect& background_bounds) |
| - : BaseLoginDisplayHost(background_bounds) { |
| + : BaseLoginDisplayHost(background_bounds), |
| + login_window_(NULL), |
| + login_view_(NULL) { |
| } |
| WebUILoginDisplayHost::~WebUILoginDisplayHost() { |
| + if (login_window_) |
| + login_window_->Close(); |
| } |
| // LoginDisplayHost implementation --------------------------------------------- |
| @@ -49,5 +68,44 @@ void WebUILoginDisplayHost::SetStatusAreaVisible(bool visible) { |
| void WebUILoginDisplayHost::ShowBackground() { |
| } |
| -} // namespace chromeos |
| +void WebUILoginDisplayHost::StartWizard(const std::string& first_screen_name, |
| + const GURL& start_url) { |
| + LoadURL(GURL(kOobeURL)); |
| + BaseLoginDisplayHost::StartWizard(first_screen_name, start_url); |
| +} |
| + |
| +void WebUILoginDisplayHost::StartSignInScreen() { |
| + LoadURL(GURL(kLoginURL)); |
| + WebUILoginDisplay::GetInstance()->set_login_window(login_window_); |
| + BaseLoginDisplayHost::StartSignInScreen(); |
| +} |
| + |
| +void WebUILoginDisplayHost::LoadURL(const GURL& url) { |
| + if (!login_window_) { |
| + views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
| + params.bounds = background_bounds(); |
| + |
| + login_window_ = new views::Widget; |
| + login_window_->Init(params); |
| +#if defined(TOUCH_UI) |
| + login_view_ = new TouchLoginView(); |
| +#else |
| + login_view_ = new WebUILoginView(); |
| +#endif |
| + |
| + login_view_->Init(); |
| + login_window_->SetContentsView(login_view_); |
| + login_view_->UpdateWindowType(); |
| + |
| + login_window_->Show(); |
| + } |
| + login_view_->LoadURL(url); |
| +} |
| +WizardController* WebUILoginDisplayHost::CreateWizardController() { |
| + // TODO(altimofeev): ensure that WebUI is ready. |
| + OobeDisplay* oobe_display = static_cast<OobeUI*>(login_view_->GetWebUI()); |
| + return new WizardController(this, oobe_display); |
| +} |
| + |
| +} // namespace chromeos |