12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_TERMS_OF_SERVICE_SCREEN_ACTOR_H_ 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_TERMS_OF_SERVICE_SCREEN_ACTOR_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace chromeos { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Interface for dependency injection between TermsOfServiceScreen and its 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// WebUI representation. 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class TermsOfServiceScreenActor { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) class Delegate { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~Delegate() {} 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Called when the user declines the Terms of Service. 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnDecline() = 0; 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Called when the user accepts the Terms of Service. 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnAccept() = 0; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Called when actor is destroyed so there is no dead reference to it. 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnActorDestroyed(TermsOfServiceScreenActor* actor) = 0; 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }; 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~TermsOfServiceScreenActor() {} 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Sets screen this actor belongs to. 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetDelegate(Delegate* screen) = 0; 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Shows the contents of the screen. 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void Show() = 0; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Hides the contents of the screen. 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void Hide() = 0; 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Sets the domain name whose Terms of Service are being shown. 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetDomain(const std::string& domain) = 0; 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Called when the download of the Terms of Service fails. Show an error 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // message to the user. 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnLoadError() = 0; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Called when the download of the Terms of Service is successful. Shows the 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // downloaded |terms_of_service| to the user. 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OnLoadSuccess(const std::string& terms_of_service) = 0; 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace chromeos 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_TERMS_OF_SERVICE_SCREEN_ACTOR_H_ 56