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_UI_WEBUI_CHROMEOS_LOGIN_HOST_PAIRING_SCREEN_HANDLER_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_HOST_PAIRING_SCREEN_HANDLER_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/chromeos/login/screens/host_pairing_screen_actor.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/chromeos/login/screens/screen_context.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace chromeos { 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass HostPairingScreenHandler : public HostPairingScreenActor, 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public BaseScreenHandler { 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch HostPairingScreenHandler(); 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~HostPairingScreenHandler(); 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void HandleContextReady(); 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Overridden from BaseScreenHandler: 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Initialize() OVERRIDE; 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void DeclareLocalizedValues(LocalizedValuesBuilder* builder) OVERRIDE; 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Overridden from content::WebUIMessageHandler: 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void RegisterMessages() OVERRIDE; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Overridden from HostPairingScreenActor: 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Show() OVERRIDE; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Hide() OVERRIDE; 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SetDelegate(Delegate* delegate) OVERRIDE; 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void OnContextChanged(const base::DictionaryValue& diff) OVERRIDE; 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch HostPairingScreenActor::Delegate* delegate_; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool show_on_init_; 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool js_context_ready_; 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Caches context changes while JS part is not ready to receive messages. 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ScreenContext context_cache_; 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch DISALLOW_COPY_AND_ASSIGN(HostPairingScreenHandler); 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace chromeos 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_HOST_PAIRING_SCREEN_HANDLER_H_ 50