1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/login/account_creation_view.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/login/screen_observer.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/login/view_screen.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/login/web_page_screen.h" 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/chromeos/login/web_page_view.h" 17dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/tab_contents/tab_contents_delegate.h" 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass GURL; 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass WizardScreenDelegate; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace chromeos { 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// AccountScreen is shown when user is creating new Google Account. 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass AccountScreen : public ViewScreen<AccountCreationView>, 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public WebPageScreen, 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public WebPageDelegate, 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public AccountCreationViewDelegate { 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit AccountScreen(WizardScreenDelegate* delegate); 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ~AccountScreen(); 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // WebPageDelegate implementation: 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnPageLoaded(); 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnPageLoadFailed(const std::string& url); 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // AccountCreationViewDelegate implementation: 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnUserCreated(const std::string& username, 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const std::string& password); 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Sets the url for account creation. Used in tests. 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static void set_new_account_page_url(const GURL& url); 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Sets the flag forcing to check for HTTPS. Used in tests. 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static void set_check_for_https(bool check) { check_for_https_ = check; } 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // ViewScreen implementation: 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void CreateView(); 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void Refresh(); 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual AccountCreationView* AllocateView(); 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // TabContentsDelegate implementation: 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void NavigationStateChanged(const TabContents* source, 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch unsigned changed_flags); 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void LoadingStateChanged(TabContents* source); 563345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event); 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // WebPageScreen implementation: 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void CloseScreen(ScreenObserver::ExitCodes code); 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Url of account creation page. Overriden by tests. 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static scoped_ptr<GURL> new_account_page_url_; 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Indicates if we should check for HTTPS scheme. Overriden by tests. 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch static bool check_for_https_; 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(AccountScreen); 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace chromeos 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_CHROMEOS_LOGIN_ACCOUNT_SCREEN_H_ 72