Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / chromeos / login / device_disabled_screen_handler.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/webui/chromeos/login/device_disabled_screen_handler.h"
6
7 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
8 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
9 #include "chrome/grit/generated_resources.h"
10
11 namespace {
12
13 const char kJsScreenPath[] = "login.DeviceDisabledScreen";
14
15 }  // namespace
16
17 namespace chromeos {
18
19 DeviceDisabledScreenHandler::DeviceDisabledScreenHandler()
20     : BaseScreenHandler(kJsScreenPath),
21       delegate_(NULL),
22       show_on_init_(false) {
23 }
24
25 DeviceDisabledScreenHandler::~DeviceDisabledScreenHandler() {
26   if (delegate_)
27     delegate_->OnActorDestroyed(this);
28 }
29
30 void DeviceDisabledScreenHandler::Show() {
31   if (!page_is_ready()) {
32     show_on_init_ = true;
33     return;
34   }
35
36   if (delegate_) {
37     CallJS("setEnrollmentDomain", delegate_->GetEnrollmentDomain());
38     CallJS("setMessage", delegate_->GetMessage());
39   }
40   ShowScreen(OobeUI::kScreenDeviceDisabled, NULL);
41 }
42
43 void DeviceDisabledScreenHandler::Hide() {
44   show_on_init_ = false;
45 }
46
47 void DeviceDisabledScreenHandler::SetDelegate(Delegate* delegate) {
48   delegate_ = delegate;
49   if (page_is_ready())
50     Initialize();
51 }
52
53 void DeviceDisabledScreenHandler::UpdateMessage(const std::string& message) {
54   if (page_is_ready())
55     CallJS("setMessage", message);
56 }
57
58 void DeviceDisabledScreenHandler::DeclareLocalizedValues(
59     LocalizedValuesBuilder* builder) {
60   builder->Add("deviceDisabledHeading", IDS_DEVICE_DISABLED_HEADING);
61   builder->Add("deviceDisabledExplanationWithDomain",
62                IDS_DEVICE_DISABLED_EXPLANATION_WITH_DOMAIN);
63   builder->Add("deviceDisabledExplanationWithoutDomain",
64                IDS_DEVICE_DISABLED_EXPLANATION_WITHOUT_DOMAIN);
65   builder->Add("deviceDisabledHelpLink", IDS_DEVICE_DISABLED_HELP_LINK);
66 }
67
68 void DeviceDisabledScreenHandler::Initialize() {
69   if (!page_is_ready() || !delegate_)
70     return;
71
72   if (show_on_init_) {
73     Show();
74     show_on_init_ = false;
75   }
76 }
77
78 void DeviceDisabledScreenHandler::RegisterMessages() {
79 }
80
81 }  // namespace chromeos