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

Unified Diff: chrome/browser/chromeos/login/webui_login_display_host.cc

Issue 7111033: Ties up OOBE controllers and WebUI handlers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 9 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 side-by-side diff with in-line comments
Download patch
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..3df3f7d16017714e5835419f29632fc83227a5b9 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,45 @@ void WebUILoginDisplayHost::SetStatusAreaVisible(bool visible) {
void WebUILoginDisplayHost::ShowBackground() {
}
-} // namespace chromeos
+void WebUILoginDisplayHost::StartWizard(const std::string& first_screen_name,
+ const GURL& start_url) {
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAllowWebUIOobe))
+ 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_POPUP);
+ 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
« no previous file with comments | « chrome/browser/chromeos/login/webui_login_display_host.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