// Copyright (c) 2010 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_CHROMEOS_LOGIN_ACCOUNT_CREATION_VIEW_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_CREATION_VIEW_H_ #pragma once #include <string> #include "chrome/browser/chromeos/login/web_page_view.h" #include "views/view.h" class Profile; class SiteContents; namespace chromeos { class AccountCreationViewDelegate { public: virtual ~AccountCreationViewDelegate() {} // Notify about new user name and password. This notification is sent before // server validates form so user may not be created. In this case this // this function will be called on each try. virtual void OnUserCreated(const std::string& username, const std::string& password) = 0; }; class AccountCreationDomView : public WebPageDomView { public: AccountCreationDomView(); virtual ~AccountCreationDomView(); // Set delegate that will be notified about user actions. void SetAccountCreationViewDelegate(AccountCreationViewDelegate* delegate); protected: // Overriden from DOMView: virtual TabContents* CreateTabContents(Profile* profile, SiteInstance* instance); private: AccountCreationViewDelegate* delegate_; DISALLOW_COPY_AND_ASSIGN(AccountCreationDomView); }; class AccountCreationView : public WebPageView { public: AccountCreationView(); virtual ~AccountCreationView(); // Set delegate that will be notified about user actions. void SetAccountCreationViewDelegate(AccountCreationViewDelegate* delegate); protected: virtual WebPageDomView* dom_view() { return dom_view_; } private: // View that renders page. AccountCreationDomView* dom_view_; DISALLOW_COPY_AND_ASSIGN(AccountCreationView); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_CREATION_VIEW_H_