diff options
Diffstat (limited to 'chromium/content/browser/download/download_manager_impl.cc')
-rw-r--r-- | chromium/content/browser/download/download_manager_impl.cc | 8 |
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; |