Index: chrome/browser/download/chrome_download_manager_delegate.cc |
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc |
index e6a9c5c901ac0d6e64bbac27d59607a9755dc115..c21769621c4fa2446ff271e52afc0171590b2c80 100644 |
--- a/chrome/browser/download/chrome_download_manager_delegate.cc |
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc |
@@ -39,6 +39,7 @@ |
#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_finder.h" |
+#include "chrome/browser/ui/chrome_pages.h" |
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/features.h" |
@@ -467,7 +468,12 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { |
NEW_FOREGROUND_TAB, |
ui::PAGE_TRANSITION_LINK, |
false); |
- browser->OpenURL(params); |
+ |
+ if (download->GetMimeType() == "application/x-x509-user-cert") |
+ chrome::ShowSettingsSubPage(browser, "certificates"); |
+ else |
+ browser->OpenURL(params); |
+ |
RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_DEFAULT_BROWSER); |
#else |
// ShouldPreferOpeningInBrowser() should never be true on Android. |
@@ -722,6 +728,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( |
target_info->is_filetype_handled_safely) |
DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); |
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) |
+ if (item->GetOriginalMimeType() == "application/x-x509-user-cert") |
+ DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); |
+#endif |
+ |
if (target_info->is_dangerous_file) |
DownloadItemModel(item).SetIsDangerousFileBasedOnType(true); |
} |