1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_ENTERPRISE_ENROLLMENT_VIEW_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_CHROMEOS_LOGIN_ENTERPRISE_ENROLLMENT_VIEW_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string> 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/basictypes.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/compiler_specific.h" 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/chromeos/login/web_page_view.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/webui/chromeos/enterprise_enrollment_ui.h" 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/net/gaia/google_service_auth_error.h" 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "views/view.h" 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass DictionaryValue; 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace views { 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass GridLayout; 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass Label; 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace chromeos { 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass EnterpriseEnrollmentController; 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass ScreenObserver; 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Implements the UI for the enterprise enrollment screen in OOBE. 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass EnterpriseEnrollmentView : public views::View, 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public EnterpriseEnrollmentUI::Controller { 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen explicit EnterpriseEnrollmentView(EnterpriseEnrollmentController* controller); 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ~EnterpriseEnrollmentView(); 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void set_editable_user(bool editable); 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Initialize view controls and layout. 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void Init(); 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Switches to the confirmation screen. 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowConfirmationScreen(); 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Show an authentication error. 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowAuthError(const GoogleServiceAuthError& error); 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowAccountError(); 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowFatalAuthError(); 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowFatalEnrollmentError(); 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowNetworkEnrollmentError(); 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // EnterpriseEnrollmentUI::Controller implementation. 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnAuthSubmitted(const std::string& user, 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& password, 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& captcha, 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& access_code) OVERRIDE; 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnAuthCancelled() OVERRIDE; 58ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void OnConfirmationClosed() OVERRIDE; 59ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool GetInitialUser(std::string* user) OVERRIDE; 60ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Updates the gaia login box. 63ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void UpdateGaiaLogin(const DictionaryValue& args); 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Display the given i18n string as error message. 66ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen void ShowError(int message_id); 67ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 68ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Overriden from views::View: 69ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void Layout() OVERRIDE; 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 71ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EnterpriseEnrollmentController* controller_; 72ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 73ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Controls. 74ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen WebPageDomView* enrollment_page_view_; 75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 76ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool editable_user_; 77ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 78ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentView); 79ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 80ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 81ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} // namespace chromeos 82ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_CHROMEOS_LOGIN_ENTERPRISE_ENROLLMENT_VIEW_H_ 84