Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(656)

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/oobe_ui.cc

Issue 7382001: [ChromeOS] WebUI OOBE/Login refactoring. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync and merge Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/oobe_ui.h ('k') | chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698