Index: chrome/browser/dom_ui/advanced_options_handler.cc |
=================================================================== |
--- chrome/browser/dom_ui/advanced_options_handler.cc (revision 54136) |
+++ chrome/browser/dom_ui/advanced_options_handler.cc (working copy) |
@@ -4,12 +4,16 @@ |
#include "chrome/browser/dom_ui/advanced_options_handler.h" |
+#if defined(OS_WIN) |
+#include <cryptuiapi.h> |
+#pragma comment(lib, "cryptui.lib") |
+#endif |
+ |
#include "app/l10n_util.h" |
#include "base/basictypes.h" |
#include "base/callback.h" |
#include "base/values.h" |
#include "chrome/browser/download/download_manager.h" |
-#include "chrome/browser/metrics/user_metrics.h" |
#include "chrome/browser/pref_service.h" |
#include "chrome/browser/profile.h" |
#include "chrome/browser/tab_contents/tab_contents.h" |
@@ -21,14 +25,16 @@ |
#include "grit/generated_resources.h" |
#include "grit/locale_settings.h" |
-#if !defined(OS_CHROMEOS) |
-#include "chrome/browser/dom_ui/advanced_options_utils.h" |
-#endif |
- |
#if defined(OS_WIN) |
#include "net/base/ssl_config_service_win.h" |
#endif |
+#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) |
+// The URL for Linux ssl certificate configuration help. |
+const char* const kLinuxCertificatesConfigUrl = |
+ "http://code.google.com/p/chromium/wiki/LinuxCertManagement"; |
+#endif |
+ |
AdvancedOptionsHandler::AdvancedOptionsHandler() { |
} |
@@ -151,14 +157,12 @@ |
dom_ui_->RegisterMessageCallback("autoOpenFileTypesAction", |
NewCallback(this, |
&AdvancedOptionsHandler::HandleAutoOpenButton)); |
-#if !defined(OS_CHROMEOS) |
dom_ui_->RegisterMessageCallback("showManageSSLCertificates", |
NewCallback(this, |
&AdvancedOptionsHandler::ShowManageSSLCertificates)); |
dom_ui_->RegisterMessageCallback("showNetworkProxySettings", |
NewCallback(this, |
&AdvancedOptionsHandler::ShowNetworkProxySettings)); |
-#endif |
#if defined(OS_WIN) |
// Setup Windows specific callbacks. |
@@ -245,21 +249,6 @@ |
} |
#endif |
-#if !defined(OS_CHROMEOS) |
-void AdvancedOptionsHandler::ShowNetworkProxySettings(const Value* value) { |
- UserMetricsRecordAction(UserMetricsAction("Options_ShowProxySettings"), NULL); |
- DCHECK(dom_ui_); |
- AdvancedOptionsUtilities::ShowNetworkProxySettings(dom_ui_->tab_contents()); |
-} |
- |
-void AdvancedOptionsHandler::ShowManageSSLCertificates(const Value* value) { |
- UserMetricsRecordAction(UserMetricsAction("Options_ManageSSLCertificates"), |
- NULL); |
- DCHECK(dom_ui_); |
- AdvancedOptionsUtilities::ShowManageSSLCertificates(dom_ui_->tab_contents()); |
-} |
-#endif |
- |
void AdvancedOptionsHandler::SetupDownloadLocationPath() { |
DCHECK(dom_ui_); |
StringValue value(default_download_location_.GetValue().value()); |
@@ -297,3 +286,26 @@ |
L"advancedOptionsSetUseSSL2CheckboxStatechecked", useSSLValue); |
} |
#endif |
+ |
+void AdvancedOptionsHandler::ShowNetworkProxySettings(const Value* value) { |
+#if defined(OS_MACOSX) |
+ AdvancedOptionsUtilities::ShowNetworkProxySettings(); |
+#endif |
+} |
+ |
+void AdvancedOptionsHandler::ShowManageSSLCertificates(const Value* value) { |
+#if defined(OS_MACOSX) |
+ AdvancedOptionsUtilities::ShowManageSSLCertificates(); |
+#elif defined(OS_WIN) |
+ DCHECK(dom_ui_); |
+ CRYPTUI_CERT_MGR_STRUCT cert_mgr = { 0 }; |
+ cert_mgr.dwSize = sizeof(CRYPTUI_CERT_MGR_STRUCT); |
+ cert_mgr.hwndParent = |
+ dom_ui_->tab_contents()->view()->GetTopLevelNativeWindow(); |
+ ::CryptUIDlgCertMgr(&cert_mgr); |
+#elif defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) |
+ DCHECK(dom_ui_); |
+ dom_ui_->tab_contents()->OpenURL(GURL(kLinuxCertificatesConfigUrl), GURL(), |
+ NEW_WINDOW, PageTransition::LINK); |
+#endif |
+} |