Home | History | Annotate | Download | only in login
      1 // Copyright (c) 2010 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_CHROMEOS_LOGIN_ACCOUNT_CREATION_VIEW_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_CREATION_VIEW_H_
      7 #pragma once
      8 
      9 #include <string>
     10 
     11 #include "chrome/browser/chromeos/login/web_page_view.h"
     12 #include "views/view.h"
     13 
     14 class Profile;
     15 class SiteContents;
     16 
     17 namespace chromeos {
     18 
     19 class AccountCreationViewDelegate {
     20  public:
     21   virtual ~AccountCreationViewDelegate() {}
     22 
     23   // Notify about new user name and password. This notification is sent before
     24   // server validates form so user may not be created. In this case this
     25   // this function will be called on each try.
     26   virtual void OnUserCreated(const std::string& username,
     27                              const std::string& password) = 0;
     28 };
     29 
     30 class AccountCreationDomView : public WebPageDomView {
     31  public:
     32   AccountCreationDomView();
     33   virtual ~AccountCreationDomView();
     34 
     35   // Set delegate that will be notified about user actions.
     36   void SetAccountCreationViewDelegate(AccountCreationViewDelegate* delegate);
     37 
     38  protected:
     39   // Overriden from DOMView:
     40   virtual TabContents* CreateTabContents(Profile* profile,
     41                                          SiteInstance* instance);
     42 
     43  private:
     44   AccountCreationViewDelegate* delegate_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(AccountCreationDomView);
     47 };
     48 
     49 class AccountCreationView : public WebPageView {
     50  public:
     51   AccountCreationView();
     52   virtual ~AccountCreationView();
     53 
     54   // Set delegate that will be notified about user actions.
     55   void SetAccountCreationViewDelegate(AccountCreationViewDelegate* delegate);
     56 
     57  protected:
     58   virtual WebPageDomView* dom_view() { return dom_view_; }
     59 
     60  private:
     61   // View that renders page.
     62   AccountCreationDomView* dom_view_;
     63 
     64   DISALLOW_COPY_AND_ASSIGN(AccountCreationView);
     65 };
     66 
     67 }  // namespace chromeos
     68 
     69 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_CREATION_VIEW_H_
     70