1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <string> 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace base { 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DictionaryValue; 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace content { 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass BrowserContext; 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace chromeos { 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace controller_pairing { 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Keep these constants synced with corresponding constants defined in 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// oobe_screen_controller_pairing.js. 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Context keys. 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyPage[]; 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyControlsDisabled[]; 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyDevices[]; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyConfirmationCode[]; 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeySelectedDevice[]; 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyAccountId[]; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kContextKeyEnrollmentDomain[]; 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Pages names. 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageDevicesDiscovery[]; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageDeviceSelect[]; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageDeviceNotFound[]; 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageEstablishingConnection[]; 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageEstablishingConnectionError[]; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageCodeConfirmation[]; 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostUpdate[]; 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostConnectionLost[]; 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageEnrollmentIntroduction[]; 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageAuthentication[]; 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostEnrollment[]; 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPageHostEnrollmentError[]; 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kPagePairingDone[]; 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Actions names. 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionChooseDevice[]; 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionRepeatDiscovery[]; 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionAcceptCode[]; 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionRejectCode[]; 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionProceedToAuthentication[]; 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionEnroll[]; 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextern const char kActionStartSession[]; 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace controller_pairing 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ControllerPairingScreenActor { 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch class Delegate { 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~Delegate() {} 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnActorDestroyed(ControllerPairingScreenActor* actor) = 0; 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnScreenContextChanged(const base::DictionaryValue& diff) = 0; 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnUserActed(const std::string& action) = 0; 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch }; 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ControllerPairingScreenActor(); 72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~ControllerPairingScreenActor(); 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Show() = 0; 75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Hide() = 0; 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SetDelegate(Delegate* delegate) = 0; 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnContextChanged(const base::DictionaryValue& diff) = 0; 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual content::BrowserContext* GetBrowserContext() = 0; 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(ControllerPairingScreenActor); 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace chromeos 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROME_BROWSER_CHROMEOS_LOGIN_SCREENS_CONTROLLER_PAIRING_SCREEN_ACTOR_H_ 87