Index: content/browser/loader/navigation_resource_handler.cc |
diff --git a/content/browser/loader/navigation_resource_handler.cc b/content/browser/loader/navigation_resource_handler.cc |
index a01e7ef0796eb8b3e804eeb38195196406e29a92..62baab41c4c5324a4a00d87e5625431bf12b0b78 100644 |
--- a/content/browser/loader/navigation_resource_handler.cc |
+++ b/content/browser/loader/navigation_resource_handler.cc |
@@ -15,7 +15,10 @@ |
#include "content/public/browser/stream_handle.h" |
#include "content/public/common/resource_response.h" |
#include "net/base/net_errors.h" |
+#include "net/url_request/redirect_info.h" |
#include "net/url_request/url_request.h" |
+#include "net/url_request/url_request_context.h" |
+#include "net/url_request/url_request_job_factory.h" |
namespace content { |
@@ -62,7 +65,9 @@ bool NavigationResourceHandler::OnRequestRedirected( |
// TODO(davidben): Perform a CSP check here, and anything else that would have |
// been done renderer-side. |
DevToolsNetLogObserver::PopulateResponseInfo(request(), response); |
- core_->NotifyRequestRedirected(redirect_info, response); |
+ bool is_external_protocol = |
+ !request()->context()->job_factory()->IsHandledURL(redirect_info.new_url); |
+ core_->NotifyRequestRedirected(redirect_info, response, is_external_protocol); |
*defer = true; |
return true; |
} |