// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_ENTERPRISE_ENROLLMENT_UI_H_
#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_ENTERPRISE_ENROLLMENT_UI_H_
#pragma once
#include "base/compiler_specific.h"
#include "content/browser/webui/web_ui.h"
namespace chromeos {
// WebUI implementation that handles the enterprise enrollment dialog in the
// Chrome OS login flow.
class EnterpriseEnrollmentUI : public WebUI {
public:
// This defines the interface for controllers which will be called back when
// something happens on the UI. It is stored in a property of the TabContents.
class Controller {
public:
virtual ~Controller() {}
virtual void OnAuthSubmitted(const std::string& user,
const std::string& password,
const std::string& captcha,
const std::string& access_code) = 0;
virtual void OnAuthCancelled() = 0;
virtual void OnConfirmationClosed() = 0;
virtual bool GetInitialUser(std::string* user) = 0;
};
explicit EnterpriseEnrollmentUI(TabContents* contents);
virtual ~EnterpriseEnrollmentUI();
// Overriden from WebUI.
virtual void RenderViewCreated(RenderViewHost* render_view_host) OVERRIDE;
// Gets the URL for loading the UI.
static GURL GetURL();
// Gets the controller the given |web_ui| is associated with. Returns NULL if
// there is no controller set.
static Controller* GetController(WebUI* web_ui);
// Sets the controller on a tab contents.
static void SetController(TabContents* contents, Controller* controller);
private:
DISALLOW_COPY_AND_ASSIGN(EnterpriseEnrollmentUI);
};
} // namespace chromeos
#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_ENTERPRISE_ENROLLMENT_UI_H_