summaryrefslogtreecommitdiffstats
path: root/chromium/content/browser/download/download_manager_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/download/download_manager_impl.cc')
-rw-r--r--chromium/content/browser/download/download_manager_impl.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/chromium/content/browser/download/download_manager_impl.cc b/chromium/content/browser/download/download_manager_impl.cc
index 4991e15ee68..5f14c3c27c8 100644
--- a/chromium/content/browser/download/download_manager_impl.cc
+++ b/chromium/content/browser/download/download_manager_impl.cc
@@ -519,9 +519,11 @@ bool DownloadManagerImpl::InterceptDownload(
if (info.is_new_download &&
info.result ==
download::DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT) {
- if (web_contents) {
- std::vector<GURL> url_chain(info.url_chain);
- GURL url = url_chain.back();
+ std::vector<GURL> url_chain(info.url_chain);
+ GURL url = url_chain.back();
+ if ((url.SchemeIsHTTPOrHTTPS() ||
+ GetContentClient()->browser()->IsHandledURL(url)) &&
+ web_contents) {
url_chain.pop_back();
NavigationController::LoadURLParams params(url);
params.has_user_gesture = info.has_user_gesture;