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