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

Side by Side Diff: chrome/browser/ui/webui/options/advanced_options_handler.cc

Issue 6693077: Read and Write SSL3, TLS1 and Cert revocation SSL preferences (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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
« no previous file with comments | « chrome/browser/ui/webui/options/advanced_options_handler.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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 26 matching lines...) Expand all
37 #include "grit/chromium_strings.h" 37 #include "grit/chromium_strings.h"
38 #include "grit/generated_resources.h" 38 #include "grit/generated_resources.h"
39 #include "grit/locale_settings.h" 39 #include "grit/locale_settings.h"
40 #include "ui/base/l10n/l10n_util.h" 40 #include "ui/base/l10n/l10n_util.h"
41 41
42 #if !defined(OS_CHROMEOS) 42 #if !defined(OS_CHROMEOS)
43 #include "chrome/browser/printing/cloud_print/cloud_print_setup_handler.h" 43 #include "chrome/browser/printing/cloud_print/cloud_print_setup_handler.h"
44 #include "chrome/browser/ui/webui/options/advanced_options_utils.h" 44 #include "chrome/browser/ui/webui/options/advanced_options_utils.h"
45 #endif 45 #endif
46 46
47 #if defined(OS_WIN)
48 #include "net/base/ssl_config_service_win.h"
49 #endif
50
51 AdvancedOptionsHandler::AdvancedOptionsHandler() { 47 AdvancedOptionsHandler::AdvancedOptionsHandler() {
52 #if (defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)) || defined(OS_MACOSX) 48 #if (defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)) || defined(OS_MACOSX)
53 cloud_print_proxy_ui_enabled_ = true; 49 cloud_print_proxy_ui_enabled_ = true;
54 #elif !defined(OS_CHROMEOS) 50 #elif !defined(OS_CHROMEOS)
55 cloud_print_proxy_ui_enabled_ = 51 cloud_print_proxy_ui_enabled_ =
56 CommandLine::ForCurrentProcess()->HasSwitch( 52 CommandLine::ForCurrentProcess()->HasSwitch(
57 switches::kEnableCloudPrintProxy); 53 switches::kEnableCloudPrintProxy);
58 #endif 54 #endif
59 } 55 }
60 56
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 185
190 void AdvancedOptionsHandler::Initialize() { 186 void AdvancedOptionsHandler::Initialize() {
191 DCHECK(web_ui_); 187 DCHECK(web_ui_);
192 SetupMetricsReportingCheckbox(); 188 SetupMetricsReportingCheckbox();
193 SetupMetricsReportingSettingVisibility(); 189 SetupMetricsReportingSettingVisibility();
194 SetupFontSizeLabel(); 190 SetupFontSizeLabel();
195 SetupDownloadLocationPath(); 191 SetupDownloadLocationPath();
196 SetupPromptForDownload(); 192 SetupPromptForDownload();
197 SetupAutoOpenFileTypesDisabledAttribute(); 193 SetupAutoOpenFileTypesDisabledAttribute();
198 SetupProxySettingsSection(); 194 SetupProxySettingsSection();
199 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD) || \
200 defined(OS_OPENBSD)
201 SetupSSLConfigSettings(); 195 SetupSSLConfigSettings();
202 #endif
203 #if !defined(OS_CHROMEOS) 196 #if !defined(OS_CHROMEOS)
204 if (cloud_print_proxy_ui_enabled_) { 197 if (cloud_print_proxy_ui_enabled_) {
205 SetupCloudPrintProxySection(); 198 SetupCloudPrintProxySection();
206 RefreshCloudPrintStatusFromService(); 199 RefreshCloudPrintStatusFromService();
207 } else { 200 } else {
208 RemoveCloudPrintProxySection(); 201 RemoveCloudPrintProxySection();
209 } 202 }
210 #endif 203 #endif
211 #if defined(ENABLE_REMOTING) && !defined(OS_CHROMEOS) 204 #if defined(ENABLE_REMOTING) && !defined(OS_CHROMEOS)
212 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableRemoting)) { 205 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableRemoting)) {
(...skipping 17 matching lines...) Expand all
230 // special behaviors that aren't handled by the standard prefs UI. 223 // special behaviors that aren't handled by the standard prefs UI.
231 DCHECK(web_ui_); 224 DCHECK(web_ui_);
232 PrefService* prefs = web_ui_->GetProfile()->GetPrefs(); 225 PrefService* prefs = web_ui_->GetProfile()->GetPrefs();
233 #if !defined(OS_CHROMEOS) 226 #if !defined(OS_CHROMEOS)
234 enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled, 227 enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled,
235 g_browser_process->local_state(), this); 228 g_browser_process->local_state(), this);
236 cloud_print_proxy_email_.Init(prefs::kCloudPrintEmail, prefs, this); 229 cloud_print_proxy_email_.Init(prefs::kCloudPrintEmail, prefs, this);
237 cloud_print_proxy_enabled_.Init(prefs::kCloudPrintProxyEnabled, prefs, this); 230 cloud_print_proxy_enabled_.Init(prefs::kCloudPrintProxyEnabled, prefs, this);
238 #endif 231 #endif
239 232
240 #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD)
241 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, 233 rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled,
242 g_browser_process->local_state(), this); 234 g_browser_process->local_state(), this);
243 ssl3_enabled_.Init(prefs::kSSL3Enabled, g_browser_process->local_state(), 235 ssl3_enabled_.Init(prefs::kSSL3Enabled, g_browser_process->local_state(),
244 this); 236 this);
245 tls1_enabled_.Init(prefs::kTLS1Enabled, g_browser_process->local_state(), 237 tls1_enabled_.Init(prefs::kTLS1Enabled, g_browser_process->local_state(),
246 this); 238 this);
247 #endif
248 239
249 default_download_location_.Init(prefs::kDownloadDefaultDirectory, 240 default_download_location_.Init(prefs::kDownloadDefaultDirectory,
250 prefs, this); 241 prefs, this);
251 ask_for_save_location_.Init(prefs::kPromptForDownload, prefs, this); 242 ask_for_save_location_.Init(prefs::kPromptForDownload, prefs, this);
252 auto_open_files_.Init(prefs::kDownloadExtensionsToOpen, prefs, this); 243 auto_open_files_.Init(prefs::kDownloadExtensionsToOpen, prefs, this);
253 default_font_size_.Init(prefs::kWebKitDefaultFontSize, prefs, this); 244 default_font_size_.Init(prefs::kWebKitDefaultFontSize, prefs, this);
254 proxy_prefs_.reset( 245 proxy_prefs_.reset(
255 PrefSetObserver::CreateProxyPrefSetObserver(prefs, this)); 246 PrefSetObserver::CreateProxyPrefSetObserver(prefs, this));
256 247
257 // Return result from the superclass. 248 // Return result from the superclass.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 &AdvancedOptionsHandler::ShowNetworkProxySettings)); 290 &AdvancedOptionsHandler::ShowNetworkProxySettings));
300 #endif 291 #endif
301 #if defined(ENABLE_REMOTING) && !defined(OS_CHROMEOS) 292 #if defined(ENABLE_REMOTING) && !defined(OS_CHROMEOS)
302 web_ui_->RegisterMessageCallback("showRemotingSetupDialog", 293 web_ui_->RegisterMessageCallback("showRemotingSetupDialog",
303 NewCallback(this, 294 NewCallback(this,
304 &AdvancedOptionsHandler::ShowRemotingSetupDialog)); 295 &AdvancedOptionsHandler::ShowRemotingSetupDialog));
305 web_ui_->RegisterMessageCallback("disableRemoting", 296 web_ui_->RegisterMessageCallback("disableRemoting",
306 NewCallback(this, 297 NewCallback(this,
307 &AdvancedOptionsHandler::DisableRemoting)); 298 &AdvancedOptionsHandler::DisableRemoting));
308 #endif 299 #endif
309 #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD)
310 // Setup Linux specific callbacks.
311 web_ui_->RegisterMessageCallback("checkRevocationCheckboxAction", 300 web_ui_->RegisterMessageCallback("checkRevocationCheckboxAction",
312 NewCallback(this, 301 NewCallback(this,
313 &AdvancedOptionsHandler::HandleCheckRevocationCheckbox)); 302 &AdvancedOptionsHandler::HandleCheckRevocationCheckbox));
314 web_ui_->RegisterMessageCallback("useSSL3CheckboxAction", 303 web_ui_->RegisterMessageCallback("useSSL3CheckboxAction",
315 NewCallback(this, 304 NewCallback(this,
316 &AdvancedOptionsHandler::HandleUseSSL3Checkbox)); 305 &AdvancedOptionsHandler::HandleUseSSL3Checkbox));
317 web_ui_->RegisterMessageCallback("useTLS1CheckboxAction", 306 web_ui_->RegisterMessageCallback("useTLS1CheckboxAction",
318 NewCallback(this, 307 NewCallback(this,
319 &AdvancedOptionsHandler::HandleUseTLS1Checkbox)); 308 &AdvancedOptionsHandler::HandleUseTLS1Checkbox));
320 #endif
321 #if defined(OS_WIN)
322 // Setup Windows specific callbacks.
323 web_ui_->RegisterMessageCallback("checkRevocationCheckboxAction",
324 NewCallback(this,
325 &AdvancedOptionsHandler::HandleCheckRevocationCheckbox));
326 web_ui_->RegisterMessageCallback("useSSL3CheckboxAction",
327 NewCallback(this,
328 &AdvancedOptionsHandler::HandleUseSSL3Checkbox));
329 web_ui_->RegisterMessageCallback("useTLS1CheckboxAction",
330 NewCallback(this,
331 &AdvancedOptionsHandler::HandleUseTLS1Checkbox));
332 #endif
333 } 309 }
334 310
335 void AdvancedOptionsHandler::Observe(NotificationType type, 311 void AdvancedOptionsHandler::Observe(NotificationType type,
336 const NotificationSource& source, 312 const NotificationSource& source,
337 const NotificationDetails& details) { 313 const NotificationDetails& details) {
338 if (type == NotificationType::PREF_CHANGED) { 314 if (type == NotificationType::PREF_CHANGED) {
339 std::string* pref_name = Details<std::string>(details).ptr(); 315 std::string* pref_name = Details<std::string>(details).ptr();
340 if ((*pref_name == prefs::kDownloadDefaultDirectory) || 316 if ((*pref_name == prefs::kDownloadDefaultDirectory) ||
341 (*pref_name == prefs::kPromptForDownload)) { 317 (*pref_name == prefs::kPromptForDownload)) {
342 SetupDownloadLocationPath(); 318 SetupDownloadLocationPath();
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 void AdvancedOptionsHandler::HandleDefaultFontSize(const ListValue* args) { 390 void AdvancedOptionsHandler::HandleDefaultFontSize(const ListValue* args) {
415 int font_size; 391 int font_size;
416 if (ExtractIntegerValue(args, &font_size)) { 392 if (ExtractIntegerValue(args, &font_size)) {
417 if (font_size > 0) { 393 if (font_size > 0) {
418 default_font_size_.SetValue(font_size); 394 default_font_size_.SetValue(font_size);
419 SetupFontSizeLabel(); 395 SetupFontSizeLabel();
420 } 396 }
421 } 397 }
422 } 398 }
423 399
424 #if defined(OS_WIN)
425 void AdvancedOptionsHandler::HandleCheckRevocationCheckbox(
426 const ListValue* args) {
427 std::string checked_str = WideToUTF8(ExtractStringValue(args));
428 bool enabled = checked_str == "true";
429 std::string metric =
430 (enabled ? "Options_CheckCertRevocation_Enable"
431 : "Options_CheckCertRevocation_Disable");
432 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
433 net::SSLConfigServiceWin::SetRevCheckingEnabled(enabled);
434 }
435
436 void AdvancedOptionsHandler::HandleUseSSL3Checkbox(const ListValue* args) {
437 std::string checked_str = WideToUTF8(ExtractStringValue(args));
438 bool enabled = checked_str == "true";
439 std::string metric =
440 (enabled ? "Options_SSL3_Enable" : "Options_SSL3_Disable");
441 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
442 net::SSLConfigServiceWin::SetSSL3Enabled(enabled);
443 }
444
445 void AdvancedOptionsHandler::HandleUseTLS1Checkbox(const ListValue* args) {
446 std::string checked_str = WideToUTF8(ExtractStringValue(args));
447 bool enabled = checked_str == "true";
448 std::string metric =
449 (enabled ? "Options_TLS1_Enable" : "Options_TLS1_Disable");
450 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
451 net::SSLConfigServiceWin::SetTLS1Enabled(enabled);
452 }
453 #endif
454 #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD)
455 void AdvancedOptionsHandler::HandleCheckRevocationCheckbox( 400 void AdvancedOptionsHandler::HandleCheckRevocationCheckbox(
456 const ListValue* args) { 401 const ListValue* args) {
457 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); 402 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args));
458 bool enabled = checked_str == "true"; 403 bool enabled = checked_str == "true";
459 std::string metric = 404 std::string metric =
460 (enabled ? "Options_CheckCertRevocation_Enable" 405 (enabled ? "Options_CheckCertRevocation_Enable"
461 : "Options_CheckCertRevocation_Disable"); 406 : "Options_CheckCertRevocation_Disable");
462 UserMetricsRecordAction(UserMetricsAction(metric.c_str())); 407 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
463 rev_checking_enabled_.SetValue(enabled); 408 rev_checking_enabled_.SetValue(enabled);
464 } 409 }
465 410
466 void AdvancedOptionsHandler::HandleUseSSL3Checkbox(const ListValue* args) { 411 void AdvancedOptionsHandler::HandleUseSSL3Checkbox(const ListValue* args) {
467 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); 412 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args));
468 bool enabled = checked_str == "true"; 413 bool enabled = checked_str == "true";
469 std::string metric = 414 std::string metric =
470 (enabled ? "Options_SSL3_Enable" : "Options_SSL3_Disable"); 415 (enabled ? "Options_SSL3_Enable" : "Options_SSL3_Disable");
471 UserMetricsRecordAction(UserMetricsAction(metric.c_str())); 416 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
472 ssl3_enabled_.SetValue(enabled); 417 ssl3_enabled_.SetValue(enabled);
473 } 418 }
474 419
475 void AdvancedOptionsHandler::HandleUseTLS1Checkbox(const ListValue* args) { 420 void AdvancedOptionsHandler::HandleUseTLS1Checkbox(const ListValue* args) {
476 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); 421 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args));
477 bool enabled = checked_str == "true"; 422 bool enabled = checked_str == "true";
478 std::string metric = 423 std::string metric =
479 (enabled ? "Options_TLS1_Enable" : "Options_TLS1_Disable"); 424 (enabled ? "Options_TLS1_Enable" : "Options_TLS1_Disable");
480 UserMetricsRecordAction(UserMetricsAction(metric.c_str())); 425 UserMetricsRecordAction(UserMetricsAction(metric.c_str()));
481 tls1_enabled_.SetValue(enabled); 426 tls1_enabled_.SetValue(enabled);
482 } 427 }
483 #endif
484 428
485 #if !defined(OS_CHROMEOS) 429 #if !defined(OS_CHROMEOS)
486 void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) { 430 void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) {
487 UserMetricsRecordAction(UserMetricsAction("Options_ShowProxySettings")); 431 UserMetricsRecordAction(UserMetricsAction("Options_ShowProxySettings"));
488 AdvancedOptionsUtilities::ShowNetworkProxySettings(web_ui_->tab_contents()); 432 AdvancedOptionsUtilities::ShowNetworkProxySettings(web_ui_->tab_contents());
489 } 433 }
490 #endif 434 #endif
491 435
492 #if !defined(USE_NSS) && !defined(USE_OPENSSL) 436 #if !defined(USE_NSS) && !defined(USE_OPENSSL)
493 void AdvancedOptionsHandler::ShowManageSSLCertificates(const ListValue* args) { 437 void AdvancedOptionsHandler::ShowManageSSLCertificates(const ListValue* args) {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 } else { 604 } else {
661 label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL, 605 label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL,
662 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); 606 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
663 } 607 }
664 StringValue label(label_str); 608 StringValue label(label_str);
665 609
666 web_ui_->CallJavascriptFunction( 610 web_ui_->CallJavascriptFunction(
667 "options.AdvancedOptions.SetupProxySettingsSection", disabled, label); 611 "options.AdvancedOptions.SetupProxySettingsSection", disabled, label);
668 } 612 }
669 613
670 #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD)
671 void AdvancedOptionsHandler::SetupSSLConfigSettings() { 614 void AdvancedOptionsHandler::SetupSSLConfigSettings() {
672 { 615 {
673 FundamentalValue checked(rev_checking_enabled_.GetValue()); 616 FundamentalValue checked(rev_checking_enabled_.GetValue());
674 FundamentalValue disabled(rev_checking_enabled_.IsManaged()); 617 FundamentalValue disabled(rev_checking_enabled_.IsManaged());
675 web_ui_->CallJavascriptFunction( 618 web_ui_->CallJavascriptFunction(
676 "options.AdvancedOptions.SetCheckRevocationCheckboxState", checked, 619 "options.AdvancedOptions.SetCheckRevocationCheckboxState", checked,
677 disabled); 620 disabled);
678 } 621 }
679 { 622 {
680 FundamentalValue checked(ssl3_enabled_.GetValue()); 623 FundamentalValue checked(ssl3_enabled_.GetValue());
681 FundamentalValue disabled(ssl3_enabled_.IsManaged()); 624 FundamentalValue disabled(ssl3_enabled_.IsManaged());
682 web_ui_->CallJavascriptFunction( 625 web_ui_->CallJavascriptFunction(
683 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled); 626 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled);
684 } 627 }
685 { 628 {
686 FundamentalValue checked(tls1_enabled_.GetValue()); 629 FundamentalValue checked(tls1_enabled_.GetValue());
687 FundamentalValue disabled(tls1_enabled_.IsManaged()); 630 FundamentalValue disabled(tls1_enabled_.IsManaged());
688 web_ui_->CallJavascriptFunction( 631 web_ui_->CallJavascriptFunction(
689 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled); 632 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled);
690 } 633 }
691 } 634 }
692 #endif
693 #if defined(OS_WIN)
694 void AdvancedOptionsHandler::SetupSSLConfigSettings() {
695 bool checkRevocationSetting = false;
696 bool useSSL3Setting = false;
697 bool useTLS1Setting = false;
698 bool disabled = false;
699
700 net::SSLConfig config;
701 if (net::SSLConfigServiceWin::GetSSLConfigNow(&config)) {
702 checkRevocationSetting = config.rev_checking_enabled;
703 useSSL3Setting = config.ssl3_enabled;
704 useTLS1Setting = config.tls1_enabled;
705 } else {
706 disabled = true;
707 }
708 FundamentalValue disabledValue(disabled);
709 FundamentalValue checkRevocationValue(checkRevocationSetting);
710 web_ui_->CallJavascriptFunction(
711 "options.AdvancedOptions.SetCheckRevocationCheckboxState",
712 checkRevocationValue, disabledValue);
713 FundamentalValue useSSL3Value(useSSL3Setting);
714 web_ui_->CallJavascriptFunction(
715 "options.AdvancedOptions.SetUseSSL3CheckboxState",
716 useSSL3Value, disabledValue);
717 FundamentalValue useTLS1Value(useTLS1Setting);
718 web_ui_->CallJavascriptFunction(
719 "options.AdvancedOptions.SetUseTLS1CheckboxState",
720 useTLS1Value, disabledValue);
721 }
722 #endif
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options/advanced_options_handler.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698