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

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

Issue 755203002: Added usage of ScreenContext in EulaScreen. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, fix to Screen.initialize(). Created 6 years 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/eula_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/chromeos/login/help_app_launcher.h" 10 #include "chrome/browser/chromeos/login/help_app_launcher.h"
11 #include "chrome/browser/chromeos/login/helper.h" 11 #include "chrome/browser/chromeos/login/helper.h"
12 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h" 12 #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h"
13 #include "chrome/browser/chromeos/login/screens/eula_model.h"
13 #include "chrome/browser/chromeos/login/ui/login_web_dialog.h" 14 #include "chrome/browser/chromeos/login/ui/login_web_dialog.h"
14 #include "chrome/browser/chromeos/login/ui/webui_login_display.h" 15 #include "chrome/browser/chromeos/login/ui/webui_login_display.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 17 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
17 #include "chrome/common/url_constants.h" 18 #include "chrome/common/url_constants.h"
18 #include "chrome/grit/chromium_strings.h" 19 #include "chrome/grit/chromium_strings.h"
19 #include "chrome/grit/generated_resources.h" 20 #include "chrome/grit/generated_resources.h"
20 #include "chrome/grit/locale_settings.h" 21 #include "chrome/grit/locale_settings.h"
21 #include "content/public/browser/web_contents.h" 22 #include "content/public/browser/web_contents.h"
22 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 dialog->Show(); 74 dialog->Show();
74 // The dialog object will be deleted on dialog close. 75 // The dialog object will be deleted on dialog close.
75 } 76 }
76 77
77 } // namespace 78 } // namespace
78 79
79 namespace chromeos { 80 namespace chromeos {
80 81
81 EulaScreenHandler::EulaScreenHandler(CoreOobeActor* core_oobe_actor) 82 EulaScreenHandler::EulaScreenHandler(CoreOobeActor* core_oobe_actor)
82 : BaseScreenHandler(kJsScreenPath), 83 : BaseScreenHandler(kJsScreenPath),
83 delegate_(NULL), 84 model_(NULL),
84 core_oobe_actor_(core_oobe_actor), 85 core_oobe_actor_(core_oobe_actor),
85 show_on_init_(false) { 86 show_on_init_(false) {
86 } 87 }
87 88
88 EulaScreenHandler::~EulaScreenHandler() { 89 EulaScreenHandler::~EulaScreenHandler() {
89 if (delegate_) 90 if (model_)
90 delegate_->OnActorDestroyed(this); 91 model_->OnViewDestroyed(this);
91 } 92 }
92 93
93 void EulaScreenHandler::PrepareToShow() { 94 void EulaScreenHandler::PrepareToShow() {
94 } 95 }
95 96
96 void EulaScreenHandler::Show() { 97 void EulaScreenHandler::Show() {
97 if (!page_is_ready()) { 98 if (!page_is_ready()) {
98 show_on_init_ = true; 99 show_on_init_ = true;
99 return; 100 return;
100 } 101 }
101 ShowScreen(OobeUI::kScreenOobeEula, NULL); 102 ShowScreen(OobeUI::kScreenOobeEula, NULL);
102 } 103 }
103 104
104 void EulaScreenHandler::Hide() { 105 void EulaScreenHandler::Hide() {
105 } 106 }
106 107
107 void EulaScreenHandler::SetDelegate(Delegate* delegate) { 108 void EulaScreenHandler::Bind(EulaModel& model) {
108 delegate_ = delegate; 109 model_ = &model;
110 BaseScreenHandler::set_base_screen(model_);
109 if (page_is_ready()) 111 if (page_is_ready())
110 Initialize(); 112 Initialize();
111 } 113 }
112 114
115 void EulaScreenHandler::Unbind() {
116 model_ = nullptr;
117 BaseScreenHandler::set_base_screen(nullptr);
118 }
119
113 void EulaScreenHandler::DeclareLocalizedValues( 120 void EulaScreenHandler::DeclareLocalizedValues(
114 LocalizedValuesBuilder* builder) { 121 LocalizedValuesBuilder* builder) {
115 builder->Add("eulaScreenTitle", IDS_EULA_SCREEN_TITLE); 122 builder->Add("eulaScreenTitle", IDS_EULA_SCREEN_TITLE);
116 builder->Add("eulaScreenAccessibleTitle", IDS_EULA_SCREEN_ACCESSIBLE_TITLE); 123 builder->Add("eulaScreenAccessibleTitle", IDS_EULA_SCREEN_ACCESSIBLE_TITLE);
117 builder->Add("checkboxLogging", IDS_EULA_CHECKBOX_ENABLE_LOGGING); 124 builder->Add("checkboxLogging", IDS_EULA_CHECKBOX_ENABLE_LOGGING);
118 builder->Add("back", IDS_EULA_BACK_BUTTON); 125 builder->Add("back", IDS_EULA_BACK_BUTTON);
119 builder->Add("acceptAgreement", IDS_EULA_ACCEPT_AND_CONTINUE_BUTTON); 126 builder->Add("acceptAgreement", IDS_EULA_ACCEPT_AND_CONTINUE_BUTTON);
120 builder->Add("eulaSystemInstallationSettings", 127 builder->Add("eulaSystemInstallationSettings",
121 IDS_EULA_SYSTEM_SECURITY_SETTING); 128 IDS_EULA_SYSTEM_SECURITY_SETTING);
122 builder->Add("eulaTpmDesc", IDS_EULA_TPM_DESCRIPTION); 129 builder->Add("eulaTpmDesc", IDS_EULA_TPM_DESCRIPTION);
123 builder->Add("eulaTpmKeyDesc", IDS_EULA_TPM_KEY_DESCRIPTION); 130 builder->Add("eulaTpmKeyDesc", IDS_EULA_TPM_KEY_DESCRIPTION);
124 builder->Add("eulaTpmDescPowerwash", IDS_EULA_TPM_KEY_DESCRIPTION_POWERWASH); 131 builder->Add("eulaTpmDescPowerwash", IDS_EULA_TPM_KEY_DESCRIPTION_POWERWASH);
125 builder->Add("eulaTpmBusy", IDS_EULA_TPM_BUSY); 132 builder->Add("eulaTpmBusy", IDS_EULA_TPM_BUSY);
126 builder->Add("eulaSystemInstallationSettingsOkButton", IDS_OK); 133 builder->Add("eulaSystemInstallationSettingsOkButton", IDS_OK);
127 builder->Add("termsOfServiceLoading", IDS_TERMS_OF_SERVICE_SCREEN_LOADING); 134 builder->Add("termsOfServiceLoading", IDS_TERMS_OF_SERVICE_SCREEN_LOADING);
128 #if defined(ENABLE_RLZ) 135 #if defined(ENABLE_RLZ)
129 builder->AddF("eulaRlzDesc", 136 builder->AddF("eulaRlzDesc",
130 IDS_EULA_RLZ_DESCRIPTION, 137 IDS_EULA_RLZ_DESCRIPTION,
131 IDS_SHORT_PRODUCT_NAME, 138 IDS_SHORT_PRODUCT_NAME,
132 IDS_PRODUCT_NAME); 139 IDS_PRODUCT_NAME);
133 builder->AddF("eulaRlzEnable", 140 builder->AddF("eulaRlzEnable",
134 IDS_EULA_RLZ_ENABLE, 141 IDS_EULA_RLZ_ENABLE,
135 IDS_SHORT_PRODUCT_OS_NAME); 142 IDS_SHORT_PRODUCT_OS_NAME);
136 #endif 143 #endif
137 144
138 builder->Add("chromeCreditsLink", IDS_ABOUT_VERSION_LICENSE_EULA); 145 builder->Add("chromeCreditsLink", IDS_ABOUT_VERSION_LICENSE_EULA);
139 builder->Add("chromeosCreditsLink", IDS_ABOUT_CROS_VERSION_LICENSE_EULA); 146 builder->Add("chromeosCreditsLink", IDS_ABOUT_CROS_VERSION_LICENSE_EULA);
140 } 147 }
141 148
149 void EulaScreenHandler::DeclareJSCallbacks() {
150 AddCallback("eulaAcceptButtonClicked",
151 &EulaScreenHandler::HandleAcceptButtonClicked);
152 AddCallback("eulaBackButtonClicked",
153 &EulaScreenHandler::HandleBackButtonClicked);
154 AddCallback("eulaOnLearnMore", &EulaScreenHandler::HandleOnLearnMore);
155 AddCallback("eulaOnChromeOSCredits",
156 &EulaScreenHandler::HandleOnChromeOSCredits);
157 AddCallback("eulaOnChromeCredits", &EulaScreenHandler::HandleOnChromeCredits);
158 AddCallback("eulaOnLearnMore", &EulaScreenHandler::HandleOnLearnMore);
159 AddCallback("eulaOnInstallationSettingsPopupOpened",
160 &EulaScreenHandler::HandleOnInstallationSettingsPopupOpened);
161 }
162
142 void EulaScreenHandler::GetAdditionalParameters(base::DictionaryValue* dict) { 163 void EulaScreenHandler::GetAdditionalParameters(base::DictionaryValue* dict) {
143 #if defined(ENABLE_RLZ) 164 #if defined(ENABLE_RLZ)
144 dict->SetString("rlzEnabled", "enabled"); 165 dict->SetString("rlzEnabled", "enabled");
145 #else 166 #else
146 dict->SetString("rlzEnabled", "disabled"); 167 dict->SetString("rlzEnabled", "disabled");
147 #endif 168 #endif
148 } 169 }
149 170
150 void EulaScreenHandler::Initialize() { 171 void EulaScreenHandler::Initialize() {
151 if (!page_is_ready() || !delegate_) 172 if (!page_is_ready() || !model_)
152 return; 173 return;
153 174
154 core_oobe_actor_->SetUsageStats(delegate_->IsUsageStatsEnabled()); 175 core_oobe_actor_->SetUsageStats(model_->IsUsageStatsEnabled());
155 176
156 // This OEM EULA is a file:// URL which we're unable to load in iframe. 177 // This OEM EULA is a file:// URL which we're unable to load in iframe.
157 // Instead if it's defined we use chrome://terms/oem that will load same file. 178 // Instead if it's defined we use chrome://terms/oem that will load same file.
158 if (!delegate_->GetOemEulaUrl().is_empty()) 179 if (!model_->GetOemEulaUrl().is_empty())
159 core_oobe_actor_->SetOemEulaUrl(chrome::kChromeUITermsOemURL); 180 core_oobe_actor_->SetOemEulaUrl(chrome::kChromeUITermsOemURL);
160 181
161 if (show_on_init_) { 182 if (show_on_init_) {
162 Show(); 183 Show();
163 show_on_init_ = false; 184 show_on_init_ = false;
164 } 185 }
165 } 186 }
166 187
167 void EulaScreenHandler::RegisterMessages() {
168 AddCallback("eulaOnExit", &EulaScreenHandler::HandleOnExit);
169 AddCallback("eulaOnLearnMore", &EulaScreenHandler::HandleOnLearnMore);
170 AddCallback("eulaOnChromeOSCredits",
171 &EulaScreenHandler::HandleOnChromeOSCredits);
172 AddCallback("eulaOnChromeCredits",
173 &EulaScreenHandler::HandleOnChromeCredits);
174 AddCallback("eulaOnLearnMore", &EulaScreenHandler::HandleOnLearnMore);
175 AddCallback("eulaOnInstallationSettingsPopupOpened",
176 &EulaScreenHandler::HandleOnInstallationSettingsPopupOpened);
177 }
178
179 void EulaScreenHandler::OnPasswordFetched(const std::string& tpm_password) { 188 void EulaScreenHandler::OnPasswordFetched(const std::string& tpm_password) {
180 core_oobe_actor_->SetTpmPassword(tpm_password); 189 core_oobe_actor_->SetTpmPassword(tpm_password);
181 } 190 }
182 191
183 void EulaScreenHandler::HandleOnExit(bool accepted, bool usage_stats_enabled) { 192 void EulaScreenHandler::HandleAcceptButtonClicked() {
184 if (delegate_) 193 if (model_)
185 delegate_->OnExit(accepted, usage_stats_enabled); 194 model_->OnAcceptButtonClicked();
195 }
196
197 void EulaScreenHandler::HandleBackButtonClicked() {
198 if (model_)
199 model_->OnBackButtonClicked();
186 } 200 }
187 201
188 void EulaScreenHandler::HandleOnLearnMore() { 202 void EulaScreenHandler::HandleOnLearnMore() {
189 if (!help_app_.get()) 203 if (!help_app_.get())
190 help_app_ = new HelpAppLauncher(GetNativeWindow()); 204 help_app_ = new HelpAppLauncher(GetNativeWindow());
191 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_STATS_USAGE); 205 help_app_->ShowHelpTopic(HelpAppLauncher::HELP_STATS_USAGE);
192 } 206 }
193 207
194 void EulaScreenHandler::HandleOnChromeOSCredits() { 208 void EulaScreenHandler::HandleOnChromeOSCredits() {
195 ShowCreditsDialog( 209 ShowCreditsDialog(
196 Profile::FromBrowserContext( 210 Profile::FromBrowserContext(
197 web_ui()->GetWebContents()->GetBrowserContext()), 211 web_ui()->GetWebContents()->GetBrowserContext()),
198 GetNativeWindow(), 212 GetNativeWindow(),
199 IDS_ABOUT_CROS_VERSION_LICENSE_EULA, 213 IDS_ABOUT_CROS_VERSION_LICENSE_EULA,
200 GURL(chrome::kChromeUIOSCreditsURL)); 214 GURL(chrome::kChromeUIOSCreditsURL));
201 } 215 }
202 216
203 void EulaScreenHandler::HandleOnChromeCredits() { 217 void EulaScreenHandler::HandleOnChromeCredits() {
204 ShowCreditsDialog( 218 ShowCreditsDialog(
205 Profile::FromBrowserContext( 219 Profile::FromBrowserContext(
206 web_ui()->GetWebContents()->GetBrowserContext()), 220 web_ui()->GetWebContents()->GetBrowserContext()),
207 GetNativeWindow(), 221 GetNativeWindow(),
208 IDS_ABOUT_VERSION_LICENSE_EULA, 222 IDS_ABOUT_VERSION_LICENSE_EULA,
209 GURL(chrome::kChromeUICreditsURL)); 223 GURL(chrome::kChromeUICreditsURL));
210 } 224 }
211 225
212 void EulaScreenHandler::HandleOnInstallationSettingsPopupOpened() { 226 void EulaScreenHandler::HandleOnInstallationSettingsPopupOpened() {
213 if (delegate_) 227 if (model_)
214 delegate_->InitiatePasswordFetch(); 228 model_->InitiatePasswordFetch();
215 } 229 }
216 230
217 } // namespace chromeos 231 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/eula_screen_handler.h ('k') | chrome/browser/ui/webui/chromeos/login/oobe_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698