// 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_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_ #pragma once #include <string> #include "base/memory/scoped_ptr.h" #include "chrome/browser/chromeos/login/account_creation_view.h" #include "chrome/browser/chromeos/login/screen_observer.h" #include "chrome/browser/chromeos/login/view_screen.h" #include "chrome/browser/chromeos/login/web_page_screen.h" #include "chrome/browser/chromeos/login/web_page_view.h" #include "content/browser/tab_contents/tab_contents_delegate.h" class GURL; class WizardScreenDelegate; namespace chromeos { // AccountScreen is shown when user is creating new Google Account. class AccountScreen : public ViewScreen<AccountCreationView>, public WebPageScreen, public WebPageDelegate, public AccountCreationViewDelegate { public: explicit AccountScreen(WizardScreenDelegate* delegate); virtual ~AccountScreen(); // WebPageDelegate implementation: virtual void OnPageLoaded(); virtual void OnPageLoadFailed(const std::string& url); // AccountCreationViewDelegate implementation: virtual void OnUserCreated(const std::string& username, const std::string& password); // Sets the url for account creation. Used in tests. static void set_new_account_page_url(const GURL& url); // Sets the flag forcing to check for HTTPS. Used in tests. static void set_check_for_https(bool check) { check_for_https_ = check; } private: // ViewScreen implementation: virtual void CreateView(); virtual void Refresh(); virtual AccountCreationView* AllocateView(); // TabContentsDelegate implementation: virtual void NavigationStateChanged(const TabContents* source, unsigned changed_flags); virtual void LoadingStateChanged(TabContents* source); virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event); // WebPageScreen implementation: virtual void CloseScreen(ScreenObserver::ExitCodes code); // Url of account creation page. Overriden by tests. static scoped_ptr<GURL> new_account_page_url_; // Indicates if we should check for HTTPS scheme. Overriden by tests. static bool check_for_https_; DISALLOW_COPY_AND_ASSIGN(AccountScreen); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_