1// Copyright (c) 2012 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_UI_WEBUI_CHROMEOS_LOGIN_EULA_SCREEN_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_EULA_SCREEN_HANDLER_H_ 7 8#include "base/compiler_specific.h" 9#include "base/memory/ref_counted.h" 10#include "chrome/browser/chromeos/login/screens/eula_screen_actor.h" 11#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" 12#include "chromeos/tpm_password_fetcher.h" 13#include "content/public/browser/web_ui.h" 14 15namespace base { 16class DictionaryValue; 17} 18 19namespace chromeos { 20 21class CoreOobeActor; 22class HelpAppLauncher; 23 24// WebUI implementation of EulaScreenActor. It is used to interact 25// with the eula part of the JS page. 26class EulaScreenHandler : public EulaScreenActor, 27 public BaseScreenHandler, 28 public TpmPasswordFetcherDelegate { 29 public: 30 explicit EulaScreenHandler(CoreOobeActor* core_oobe_actor); 31 virtual ~EulaScreenHandler(); 32 33 // EulaScreenActor implementation: 34 virtual void PrepareToShow() OVERRIDE; 35 virtual void Show() OVERRIDE; 36 virtual void Hide() OVERRIDE; 37 virtual void SetDelegate(Delegate* delegate) OVERRIDE; 38 virtual void OnPasswordFetched(const std::string& tpm_password) OVERRIDE; 39 40 // BaseScreenHandler implementation: 41 virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE; 42 virtual void GetAdditionalParameters(base::DictionaryValue* dict) OVERRIDE; 43 virtual void Initialize() OVERRIDE; 44 45 // WebUIMessageHandler implementation: 46 virtual void RegisterMessages() OVERRIDE; 47 48 private: 49 // JS messages handlers. 50 void HandleOnExit(bool accepted, bool usager_stats_enabled); 51 void HandleOnLearnMore(); 52 void HandleOnChromeCredits(); 53 void HandleOnChromeOSCredits(); 54 void HandleOnInstallationSettingsPopupOpened(); 55 56 EulaScreenActor::Delegate* delegate_; 57 CoreOobeActor* core_oobe_actor_; 58 59 // Help application used for help dialogs. 60 scoped_refptr<HelpAppLauncher> help_app_; 61 62 // Keeps whether screen should be shown right after initialization. 63 bool show_on_init_; 64 65 DISALLOW_COPY_AND_ASSIGN(EulaScreenHandler); 66}; 67 68} // namespace chromeos 69 70#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_EULA_SCREEN_HANDLER_H_ 71