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 15 namespace base { 16 class DictionaryValue; 17 } 18 19 namespace chromeos { 20 21 class CoreOobeActor; 22 class HelpAppLauncher; 23 24 // WebUI implementation of EulaScreenActor. It is used to interact 25 // with the eula part of the JS page. 26 class 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