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/options/advanced_options_handler.h" | 5 #include "chrome/browser/ui/webui/options/advanced_options_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 | 197 |
198 void AdvancedOptionsHandler::Initialize() { | 198 void AdvancedOptionsHandler::Initialize() { |
199 DCHECK(web_ui_); | 199 DCHECK(web_ui_); |
200 SetupMetricsReportingCheckbox(); | 200 SetupMetricsReportingCheckbox(); |
201 SetupMetricsReportingSettingVisibility(); | 201 SetupMetricsReportingSettingVisibility(); |
202 SetupFontSizeLabel(); | 202 SetupFontSizeLabel(); |
203 SetupDownloadLocationPath(); | 203 SetupDownloadLocationPath(); |
204 SetupPromptForDownload(); | 204 SetupPromptForDownload(); |
205 SetupAutoOpenFileTypesDisabledAttribute(); | 205 SetupAutoOpenFileTypesDisabledAttribute(); |
206 SetupProxySettingsSection(); | 206 SetupProxySettingsSection(); |
| 207 SetupSSLConfigSettings(); |
207 #if !defined(OS_CHROMEOS) | 208 #if !defined(OS_CHROMEOS) |
208 if (cloud_print_proxy_ui_enabled_) { | 209 if (cloud_print_proxy_ui_enabled_) { |
209 SetupCloudPrintProxySection(); | 210 SetupCloudPrintProxySection(); |
210 RefreshCloudPrintStatusFromService(); | 211 RefreshCloudPrintStatusFromService(); |
211 } else { | 212 } else { |
212 RemoveCloudPrintProxySection(); | 213 RemoveCloudPrintProxySection(); |
213 } | 214 } |
214 #endif | 215 #endif |
215 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) | 216 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
216 SetupBackgroundModeSettings(); | 217 SetupBackgroundModeSettings(); |
217 #endif | 218 #endif |
218 | 219 |
219 } | 220 } |
220 | 221 |
221 WebUIMessageHandler* AdvancedOptionsHandler::Attach(WebUI* web_ui) { | 222 WebUIMessageHandler* AdvancedOptionsHandler::Attach(WebUI* web_ui) { |
222 // Call through to superclass. | 223 // Call through to superclass. |
223 WebUIMessageHandler* handler = OptionsPageUIHandler::Attach(web_ui); | 224 WebUIMessageHandler* handler = OptionsPageUIHandler::Attach(web_ui); |
224 | 225 |
225 // Register for preferences that we need to observe manually. These have | 226 // Register for preferences that we need to observe manually. These have |
226 // special behaviors that aren't handled by the standard prefs UI. | 227 // special behaviors that aren't handled by the standard prefs UI. |
227 DCHECK(web_ui_); | 228 DCHECK(web_ui_); |
228 PrefService* prefs = Profile::FromWebUI(web_ui_)->GetPrefs(); | 229 PrefService* prefs = Profile::FromWebUI(web_ui_)->GetPrefs(); |
229 #if !defined(OS_CHROMEOS) | 230 #if !defined(OS_CHROMEOS) |
230 enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled, | 231 enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled, |
231 g_browser_process->local_state(), this); | 232 g_browser_process->local_state(), this); |
232 cloud_print_proxy_email_.Init(prefs::kCloudPrintEmail, prefs, this); | 233 cloud_print_proxy_email_.Init(prefs::kCloudPrintEmail, prefs, this); |
233 cloud_print_proxy_enabled_.Init(prefs::kCloudPrintProxyEnabled, prefs, this); | 234 cloud_print_proxy_enabled_.Init(prefs::kCloudPrintProxyEnabled, prefs, this); |
234 #endif | 235 #endif |
235 | 236 |
| 237 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, |
| 238 g_browser_process->local_state(), this); |
| 239 ssl3_enabled_.Init(prefs::kSSL3Enabled, g_browser_process->local_state(), |
| 240 this); |
| 241 tls1_enabled_.Init(prefs::kTLS1Enabled, g_browser_process->local_state(), |
| 242 this); |
| 243 |
236 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) | 244 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
237 background_mode_enabled_.Init(prefs::kBackgroundModeEnabled, | 245 background_mode_enabled_.Init(prefs::kBackgroundModeEnabled, |
238 g_browser_process->local_state(), | 246 g_browser_process->local_state(), |
239 this); | 247 this); |
240 #endif | 248 #endif |
241 | 249 |
242 default_download_location_.Init(prefs::kDownloadDefaultDirectory, | 250 default_download_location_.Init(prefs::kDownloadDefaultDirectory, |
243 prefs, this); | 251 prefs, this); |
244 ask_for_save_location_.Init(prefs::kPromptForDownload, prefs, this); | 252 ask_for_save_location_.Init(prefs::kPromptForDownload, prefs, this); |
245 allow_file_selection_dialogs_.Init(prefs::kAllowFileSelectionDialogs, | 253 allow_file_selection_dialogs_.Init(prefs::kAllowFileSelectionDialogs, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 NewCallback(this, | 294 NewCallback(this, |
287 &AdvancedOptionsHandler::ShowCloudPrintSetupDialog)); | 295 &AdvancedOptionsHandler::ShowCloudPrintSetupDialog)); |
288 web_ui_->RegisterMessageCallback("disableCloudPrintProxy", | 296 web_ui_->RegisterMessageCallback("disableCloudPrintProxy", |
289 NewCallback(this, | 297 NewCallback(this, |
290 &AdvancedOptionsHandler::HandleDisableCloudPrintProxy)); | 298 &AdvancedOptionsHandler::HandleDisableCloudPrintProxy)); |
291 } | 299 } |
292 web_ui_->RegisterMessageCallback("showNetworkProxySettings", | 300 web_ui_->RegisterMessageCallback("showNetworkProxySettings", |
293 NewCallback(this, | 301 NewCallback(this, |
294 &AdvancedOptionsHandler::ShowNetworkProxySettings)); | 302 &AdvancedOptionsHandler::ShowNetworkProxySettings)); |
295 #endif | 303 #endif |
| 304 web_ui_->RegisterMessageCallback("checkRevocationCheckboxAction", |
| 305 NewCallback(this, |
| 306 &AdvancedOptionsHandler::HandleCheckRevocationCheckbox)); |
| 307 web_ui_->RegisterMessageCallback("useSSL3CheckboxAction", |
| 308 NewCallback(this, |
| 309 &AdvancedOptionsHandler::HandleUseSSL3Checkbox)); |
| 310 web_ui_->RegisterMessageCallback("useTLS1CheckboxAction", |
| 311 NewCallback(this, |
| 312 &AdvancedOptionsHandler::HandleUseTLS1Checkbox)); |
296 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) | 313 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
297 web_ui_->RegisterMessageCallback("backgroundModeAction", | 314 web_ui_->RegisterMessageCallback("backgroundModeAction", |
298 NewCallback(this, | 315 NewCallback(this, |
299 &AdvancedOptionsHandler::HandleBackgroundModeCheckbox)); | 316 &AdvancedOptionsHandler::HandleBackgroundModeCheckbox)); |
300 #endif | 317 #endif |
301 } | 318 } |
302 | 319 |
303 void AdvancedOptionsHandler::Observe(int type, | 320 void AdvancedOptionsHandler::Observe(int type, |
304 const NotificationSource& source, | 321 const NotificationSource& source, |
305 const NotificationDetails& details) { | 322 const NotificationDetails& details) { |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 void AdvancedOptionsHandler::HandleDefaultFontSize(const ListValue* args) { | 405 void AdvancedOptionsHandler::HandleDefaultFontSize(const ListValue* args) { |
389 int font_size; | 406 int font_size; |
390 if (ExtractIntegerValue(args, &font_size)) { | 407 if (ExtractIntegerValue(args, &font_size)) { |
391 if (font_size > 0) { | 408 if (font_size > 0) { |
392 default_font_size_.SetValue(font_size); | 409 default_font_size_.SetValue(font_size); |
393 SetupFontSizeLabel(); | 410 SetupFontSizeLabel(); |
394 } | 411 } |
395 } | 412 } |
396 } | 413 } |
397 | 414 |
| 415 void AdvancedOptionsHandler::HandleCheckRevocationCheckbox( |
| 416 const ListValue* args) { |
| 417 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
| 418 bool enabled = checked_str == "true"; |
| 419 UserMetrics::RecordAction( |
| 420 enabled ? |
| 421 UserMetricsAction("Options_CheckCertRevocation_Enable") : |
| 422 UserMetricsAction("Options_CheckCertRevocation_Disable")); |
| 423 rev_checking_enabled_.SetValue(enabled); |
| 424 } |
| 425 |
| 426 void AdvancedOptionsHandler::HandleUseSSL3Checkbox(const ListValue* args) { |
| 427 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
| 428 bool enabled = checked_str == "true"; |
| 429 UserMetrics::RecordAction( |
| 430 enabled ? |
| 431 UserMetricsAction("Options_SSL3_Enable") : |
| 432 UserMetricsAction("Options_SSL3_Disable")); |
| 433 ssl3_enabled_.SetValue(enabled); |
| 434 } |
| 435 |
| 436 void AdvancedOptionsHandler::HandleUseTLS1Checkbox(const ListValue* args) { |
| 437 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
| 438 bool enabled = checked_str == "true"; |
| 439 UserMetrics::RecordAction( |
| 440 enabled ? |
| 441 UserMetricsAction("Options_TLS1_Enable") : |
| 442 UserMetricsAction("Options_TLS1_Disable")); |
| 443 tls1_enabled_.SetValue(enabled); |
| 444 } |
| 445 |
398 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) | 446 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
399 void AdvancedOptionsHandler::HandleBackgroundModeCheckbox( | 447 void AdvancedOptionsHandler::HandleBackgroundModeCheckbox( |
400 const ListValue* args) { | 448 const ListValue* args) { |
401 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); | 449 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
402 bool enabled = checked_str == "true"; | 450 bool enabled = checked_str == "true"; |
403 UserMetrics::RecordAction(enabled ? | 451 UserMetrics::RecordAction(enabled ? |
404 UserMetricsAction("Options_BackgroundMode_Enable") : | 452 UserMetricsAction("Options_BackgroundMode_Enable") : |
405 UserMetricsAction("Options_BackgroundMode_Disable")); | 453 UserMetricsAction("Options_BackgroundMode_Disable")); |
406 background_mode_enabled_.SetValue(enabled); | 454 background_mode_enabled_.SetValue(enabled); |
407 } | 455 } |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 label_str = l10n_util::GetStringUTF16(IDS_OPTIONS_EXTENSION_PROXIES_LABEL); | 632 label_str = l10n_util::GetStringUTF16(IDS_OPTIONS_EXTENSION_PROXIES_LABEL); |
585 } else { | 633 } else { |
586 label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL, | 634 label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL, |
587 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); | 635 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); |
588 } | 636 } |
589 StringValue label(label_str); | 637 StringValue label(label_str); |
590 | 638 |
591 web_ui_->CallJavascriptFunction( | 639 web_ui_->CallJavascriptFunction( |
592 "options.AdvancedOptions.SetupProxySettingsSection", disabled, label); | 640 "options.AdvancedOptions.SetupProxySettingsSection", disabled, label); |
593 } | 641 } |
| 642 |
| 643 void AdvancedOptionsHandler::SetupSSLConfigSettings() { |
| 644 { |
| 645 base::FundamentalValue checked(rev_checking_enabled_.GetValue()); |
| 646 base::FundamentalValue disabled(rev_checking_enabled_.IsManaged()); |
| 647 web_ui_->CallJavascriptFunction( |
| 648 "options.AdvancedOptions.SetCheckRevocationCheckboxState", checked, |
| 649 disabled); |
| 650 } |
| 651 { |
| 652 base::FundamentalValue checked(ssl3_enabled_.GetValue()); |
| 653 base::FundamentalValue disabled(ssl3_enabled_.IsManaged()); |
| 654 web_ui_->CallJavascriptFunction( |
| 655 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled); |
| 656 } |
| 657 { |
| 658 base::FundamentalValue checked(tls1_enabled_.GetValue()); |
| 659 base::FundamentalValue disabled(tls1_enabled_.IsManaged()); |
| 660 web_ui_->CallJavascriptFunction( |
| 661 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled); |
| 662 } |
| 663 } |
OLD | NEW |