| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/ref_counted_memory.h" | 10 #include "base/memory/ref_counted_memory.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "chrome/browser/browser_about_handler.h" | 12 #include "chrome/browser/browser_about_handler.h" |
| 13 #include "chrome/browser/chromeos/login/wizard_controller.h" | 13 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 14 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 15 #include "chrome/browser/ui/webui/chrome_url_data_manager.h" | 15 #include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
| 16 #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" |
| 16 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h" | 17 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h" |
| 17 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h" | 18 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h" |
| 18 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" | 19 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" |
| 19 #include "chrome/browser/ui/webui/chromeos/login/update_screen_handler.h" | 20 #include "chrome/browser/ui/webui/chromeos/login/update_screen_handler.h" |
| 20 #include "chrome/browser/ui/webui/theme_source.h" | 21 #include "chrome/browser/ui/webui/theme_source.h" |
| 21 #include "chrome/common/jstemplate_builder.h" | 22 #include "chrome/common/jstemplate_builder.h" |
| 22 #include "chrome/common/url_constants.h" | 23 #include "chrome/common/url_constants.h" |
| 23 #include "content/browser/tab_contents/tab_contents.h" | 24 #include "content/browser/tab_contents/tab_contents.h" |
| 24 #include "grit/browser_resources.h" | 25 #include "grit/browser_resources.h" |
| 25 #include "grit/chromium_strings.h" | 26 #include "grit/chromium_strings.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 49 return "text/html"; | 50 return "text/html"; |
| 50 } | 51 } |
| 51 | 52 |
| 52 private: | 53 private: |
| 53 virtual ~OobeUIHTMLSource() {} | 54 virtual ~OobeUIHTMLSource() {} |
| 54 | 55 |
| 55 scoped_ptr<DictionaryValue> localized_strings_; | 56 scoped_ptr<DictionaryValue> localized_strings_; |
| 56 DISALLOW_COPY_AND_ASSIGN(OobeUIHTMLSource); | 57 DISALLOW_COPY_AND_ASSIGN(OobeUIHTMLSource); |
| 57 }; | 58 }; |
| 58 | 59 |
| 59 // OobeMessageHandler ---------------------------------------------------------- | |
| 60 OobeMessageHandler::OobeMessageHandler() : page_is_ready_(false) { | |
| 61 } | |
| 62 | |
| 63 OobeMessageHandler::~OobeMessageHandler() { | |
| 64 } | |
| 65 | |
| 66 void OobeMessageHandler::InitializeBase() { | |
| 67 page_is_ready_ = true; | |
| 68 Initialize(); | |
| 69 } | |
| 70 | |
| 71 void OobeMessageHandler::ShowScreen(const char* screen_name, | |
| 72 const char* data) { | |
| 73 DictionaryValue screen_params; | |
| 74 screen_params.SetString("id", screen_name); | |
| 75 if (data) | |
| 76 screen_params.SetString("data", data); | |
| 77 web_ui_->CallJavascriptFunction("cr.ui.Oobe.showScreen", screen_params); | |
| 78 } | |
| 79 | |
| 80 // CoreOobeHandler ------------------------------------------------------------- | 60 // CoreOobeHandler ------------------------------------------------------------- |
| 81 | 61 |
| 82 // The core handler for Javascript messages related to the "oobe" view. | 62 // The core handler for Javascript messages related to the "oobe" view. |
| 83 class CoreOobeHandler : public OobeMessageHandler { | 63 class CoreOobeHandler : public BaseScreenHandler { |
| 84 public: | 64 public: |
| 85 explicit CoreOobeHandler(OobeUI* oobe_ui); | 65 explicit CoreOobeHandler(OobeUI* oobe_ui); |
| 86 virtual ~CoreOobeHandler(); | 66 virtual ~CoreOobeHandler(); |
| 87 | 67 |
| 88 // OobeMessageHandler implementation: | 68 // BaseScreenHandler implementation: |
| 89 virtual void GetLocalizedStrings(DictionaryValue* localized_strings); | 69 virtual void GetLocalizedStrings(DictionaryValue* localized_strings); |
| 90 virtual void Initialize(); | 70 virtual void Initialize(); |
| 91 | 71 |
| 92 // WebUIMessageHandler implementation. | 72 // WebUIMessageHandler implementation. |
| 93 virtual void RegisterMessages(); | 73 virtual void RegisterMessages(); |
| 94 | 74 |
| 95 private: | 75 private: |
| 96 // Handlers for JS WebUI messages. | 76 // Handlers for JS WebUI messages. |
| 97 void OnInitialized(const ListValue* args); | 77 void OnInitialized(const ListValue* args); |
| 98 | 78 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 } | 131 } |
| 152 | 132 |
| 153 // OobeUI ---------------------------------------------------------------------- | 133 // OobeUI ---------------------------------------------------------------------- |
| 154 | 134 |
| 155 OobeUI::OobeUI(TabContents* contents) | 135 OobeUI::OobeUI(TabContents* contents) |
| 156 : ChromeWebUI(contents), | 136 : ChromeWebUI(contents), |
| 157 update_screen_actor_(NULL), | 137 update_screen_actor_(NULL), |
| 158 network_screen_actor_(NULL), | 138 network_screen_actor_(NULL), |
| 159 eula_screen_actor_(NULL), | 139 eula_screen_actor_(NULL), |
| 160 signin_screen_handler_(NULL) { | 140 signin_screen_handler_(NULL) { |
| 161 AddOobeMessageHandler(new CoreOobeHandler(this)); | 141 AddScreenHandler(new CoreOobeHandler(this)); |
| 162 | 142 |
| 163 NetworkScreenHandler* network_screen_handler = new NetworkScreenHandler; | 143 NetworkScreenHandler* network_screen_handler = new NetworkScreenHandler; |
| 164 network_screen_actor_ = network_screen_handler; | 144 network_screen_actor_ = network_screen_handler; |
| 165 AddOobeMessageHandler(network_screen_handler); | 145 AddScreenHandler(network_screen_handler); |
| 166 | 146 |
| 167 EulaScreenHandler* eula_screen_handler = new EulaScreenHandler; | 147 EulaScreenHandler* eula_screen_handler = new EulaScreenHandler; |
| 168 eula_screen_actor_ = eula_screen_handler; | 148 eula_screen_actor_ = eula_screen_handler; |
| 169 AddOobeMessageHandler(eula_screen_handler); | 149 AddScreenHandler(eula_screen_handler); |
| 170 | 150 |
| 171 UpdateScreenHandler* update_screen_handler = new UpdateScreenHandler; | 151 UpdateScreenHandler* update_screen_handler = new UpdateScreenHandler; |
| 172 update_screen_actor_ = update_screen_handler; | 152 update_screen_actor_ = update_screen_handler; |
| 173 AddOobeMessageHandler(update_screen_handler); | 153 AddScreenHandler(update_screen_handler); |
| 174 | 154 |
| 175 signin_screen_handler_ = new SigninScreenHandler; | 155 signin_screen_handler_ = new SigninScreenHandler; |
| 176 AddOobeMessageHandler(signin_screen_handler_); | 156 AddScreenHandler(signin_screen_handler_); |
| 177 | 157 |
| 178 DictionaryValue* localized_strings = new DictionaryValue; | 158 DictionaryValue* localized_strings = new DictionaryValue; |
| 179 GetLocalizedStrings(localized_strings); | 159 GetLocalizedStrings(localized_strings); |
| 180 OobeUIHTMLSource* html_source = | 160 OobeUIHTMLSource* html_source = |
| 181 new OobeUIHTMLSource(localized_strings); | 161 new OobeUIHTMLSource(localized_strings); |
| 182 | 162 |
| 183 // Set up the chrome://theme/ source, for Chrome logo. | 163 // Set up the chrome://theme/ source, for Chrome logo. |
| 184 ThemeSource* theme = new ThemeSource(contents->profile()); | 164 ThemeSource* theme = new ThemeSource(contents->profile()); |
| 185 contents->profile()->GetChromeURLDataManager()->AddDataSource(theme); | 165 contents->profile()->GetChromeURLDataManager()->AddDataSource(theme); |
| 186 | 166 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 } | 207 } |
| 228 | 208 |
| 229 ViewScreenDelegate* OobeUI::GetHTMLPageScreenActor() { | 209 ViewScreenDelegate* OobeUI::GetHTMLPageScreenActor() { |
| 230 NOTIMPLEMENTED(); | 210 NOTIMPLEMENTED(); |
| 231 return NULL; | 211 return NULL; |
| 232 } | 212 } |
| 233 | 213 |
| 234 void OobeUI::GetLocalizedStrings(DictionaryValue* localized_strings) { | 214 void OobeUI::GetLocalizedStrings(DictionaryValue* localized_strings) { |
| 235 // Note, handlers_[0] is a GenericHandler used by the WebUI. | 215 // Note, handlers_[0] is a GenericHandler used by the WebUI. |
| 236 for (size_t i = 1; i < handlers_.size(); ++i) { | 216 for (size_t i = 1; i < handlers_.size(); ++i) { |
| 237 static_cast<OobeMessageHandler*>(handlers_[i])-> | 217 static_cast<BaseScreenHandler*>(handlers_[i])-> |
| 238 GetLocalizedStrings(localized_strings); | 218 GetLocalizedStrings(localized_strings); |
| 239 } | 219 } |
| 240 ChromeURLDataManager::DataSource::SetFontAndTextDirection(localized_strings); | 220 ChromeURLDataManager::DataSource::SetFontAndTextDirection(localized_strings); |
| 241 } | 221 } |
| 242 | 222 |
| 243 void OobeUI::AddOobeMessageHandler(OobeMessageHandler* handler) { | 223 void OobeUI::AddScreenHandler(BaseScreenHandler* handler) { |
| 244 AddMessageHandler(handler->Attach(this)); | 224 AddMessageHandler(handler->Attach(this)); |
| 245 } | 225 } |
| 246 | 226 |
| 247 void OobeUI::InitializeHandlers() { | 227 void OobeUI::InitializeHandlers() { |
| 248 // Note, handlers_[0] is a GenericHandler used by the WebUI. | 228 // Note, handlers_[0] is a GenericHandler used by the WebUI. |
| 249 for (size_t i = 1; i < handlers_.size(); ++i) { | 229 for (size_t i = 1; i < handlers_.size(); ++i) { |
| 250 static_cast<OobeMessageHandler*>(handlers_[i])->InitializeBase(); | 230 static_cast<BaseScreenHandler*>(handlers_[i])->InitializeBase(); |
| 251 } | 231 } |
| 252 } | 232 } |
| 253 | 233 |
| 254 void OobeUI::ShowSigninScreen() { | 234 void OobeUI::ShowSigninScreen() { |
| 255 signin_screen_handler_->Show(); | 235 signin_screen_handler_->Show(); |
| 256 } | 236 } |
| 257 | 237 |
| 258 } // namespace chromeos | 238 } // namespace chromeos |
| OLD | NEW |