| 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"
|
| +#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";
|
| +// URL which corresponds to the OOBE WebUI.
|
| +const char kOobeURL[] = "chrome://oobe";
|
| +
|
| +} // 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
|
|
|