15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_EULA_SCREEN_ACTOR_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_EULA_SCREEN_ACTOR_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/size.h" 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Interface between eula screen and its representation, either WebUI or 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Views one. Note, do not forget to call OnActorDestroyed in the dtor. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class EulaScreenActor { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Allows us to get info from eula screen that we need. 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) class Delegate { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~Delegate() {} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns URL of the OEM EULA page that should be displayed using current 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // locale and manifest. Returns empty URL otherwise. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual GURL GetOemEulaUrl() const = 0; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when screen is exited. |accepted| indicates if EULA was 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // accepted or not. 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnExit(bool accepted, bool usage_stats_enabled) = 0; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Initiate TPM password fetch. Will call actor's OnPasswordFetched() when 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // done. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void InitiatePasswordFetch() = 0; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if usage statistics reporting is enabled. 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsUsageStatsEnabled() const = 0; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This method is called, when actor is being destroyed. Note, if Delegate 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is destroyed earlier then it has to call SetDelegate(NULL). 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnActorDestroyed(EulaScreenActor* actor) = 0; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~EulaScreenActor() {} 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void PrepareToShow() = 0; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Show() = 0; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Hide() = 0; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetDelegate(Delegate* delegate) = 0; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnPasswordFetched(const std::string& tpm_password) = 0; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace chromeos 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_EULA_SCREEN_ACTOR_H_ 56