1 // Copyright (c) 2013 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/wrong_hwid_screen_handler.h" 6 7 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 8 #include "grit/chromium_strings.h" 9 #include "grit/generated_resources.h" 10 11 namespace { 12 13 const char kJsScreenPath[] = "login.WrongHWIDScreen"; 14 15 } // namespace 16 17 namespace chromeos { 18 19 WrongHWIDScreenHandler::WrongHWIDScreenHandler() 20 : BaseScreenHandler(kJsScreenPath), 21 delegate_(NULL), 22 show_on_init_(false) { 23 } 24 25 WrongHWIDScreenHandler::~WrongHWIDScreenHandler() { 26 if (delegate_) 27 delegate_->OnActorDestroyed(this); 28 } 29 30 void WrongHWIDScreenHandler::PrepareToShow() { 31 } 32 33 void WrongHWIDScreenHandler::Show() { 34 if (!page_is_ready()) { 35 show_on_init_ = true; 36 return; 37 } 38 ShowScreen(OobeUI::kScreenWrongHWID, NULL); 39 } 40 41 void WrongHWIDScreenHandler::Hide() { 42 } 43 44 void WrongHWIDScreenHandler::SetDelegate(Delegate* delegate) { 45 delegate_ = delegate; 46 if (page_is_ready()) 47 Initialize(); 48 } 49 50 void WrongHWIDScreenHandler::DeclareLocalizedValues( 51 LocalizedValuesBuilder* builder) { 52 builder->Add("wrongHWIDScreenHeader", IDS_WRONG_HWID_SCREEN_HEADER); 53 builder->Add("wrongHWIDMessageFirstPart", 54 IDS_WRONG_HWID_SCREEN_MESSAGE_FIRST_PART); 55 builder->Add("wrongHWIDMessageSecondPart", 56 IDS_WRONG_HWID_SCREEN_MESSAGE_SECOND_PART); 57 builder->Add("wrongHWIDScreenSkipLink", 58 IDS_WRONG_HWID_SCREEN_SKIP_LINK); 59 } 60 61 void WrongHWIDScreenHandler::Initialize() { 62 if (!page_is_ready() || !delegate_) 63 return; 64 65 if (show_on_init_) { 66 Show(); 67 show_on_init_ = false; 68 } 69 } 70 71 void WrongHWIDScreenHandler::RegisterMessages() { 72 AddCallback("wrongHWIDOnSkip", &WrongHWIDScreenHandler::HandleOnSkip); 73 } 74 75 void WrongHWIDScreenHandler::HandleOnSkip() { 76 if (delegate_) 77 delegate_->OnExit(); 78 } 79 80 } // namespace chromeos 81