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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_ENTERPRISE_ENROLLMENT_UI_H_ 6#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_ENTERPRISE_ENROLLMENT_UI_H_ 7#pragma once 8 9#include "base/compiler_specific.h" 10#include "content/browser/webui/web_ui.h" 11 12namespace chromeos { 13 14// WebUI implementation that handles the enterprise enrollment dialog in the 15// Chrome OS login flow. 16class EnterpriseEnrollmentUI : public WebUI { 17 public: 18 // This defines the interface for controllers which will be called back when 19 // something happens on the UI. It is stored in a property of the TabContents. 20 class Controller { 21 public: 22 virtual ~Controller() {} 23 24 virtual void OnAuthSubmitted(const std::string& user, 25 const std::string& password, 26 const std::string& captcha, 27 const std::string& access_code) = 0; 28 virtual void OnAuthCancelled() = 0; 29 virtual void OnConfirmationClosed() = 0; 30 virtual bool GetInitialUser(std::string* user) = 0; 31 }; 32 33 explicit EnterpriseEnrollmentUI(TabContents* contents); 34 virtual ~EnterpriseEnrollmentUI(); 35 36 // Overriden from WebUI. 37 virtual void RenderViewCreated(RenderViewHost* render_view_host) OVERRIDE; 38 39 // Gets the URL for loading the UI. 40 static GURL GetURL(); 41 42 // Gets the controller the given |web_ui| is associated with. Returns NULL if 43 // there is no controller set. 44 static Controller* GetController(WebUI* web_ui); 45 46 // Sets the controller on a tab contents. 47 static void SetController(TabContents* contents, Controller* controller); 48 49 private: 50 DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentUI); 51}; 52 53} // namespace chromeos 54 55#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_ENTERPRISE_ENROLLMENT_UI_H_ 56