Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(549)

Unified Diff: content/browser/loader/navigation_resource_handler.cc

Issue 2510083003: PlzNavigate: properly update NavigationHandle for 204/205 and download responses (Closed)
Patch Set: address comments of clamy@ Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 c9e212fdf82d8f97041514da70a62e2c7f4478ef..450cc8e61f49c8410c7e22dbef53d06edcea3df6 100644
--- a/content/browser/loader/navigation_resource_handler.cc
+++ b/content/browser/loader/navigation_resource_handler.cc
@@ -94,16 +94,6 @@ bool NavigationResourceHandler::OnResponseStarted(ResourceResponse* response,
ResourceRequestInfoImpl* info = GetRequestInfo();
- // If the MimeTypeResourceHandler intercepted this request and converted it
- // into a download, it will still call OnResponseStarted and immediately
- // cancel. Ignore the call; OnReadCompleted will happen shortly.
- //
- // TODO(davidben): Move the dispatch out of MimeTypeResourceHandler. Perhaps
- // all the way to the UI thread. Downloads, user certificates, etc., should be
- // dispatched at the navigation layer.
- if (info->IsDownload())
- return true;
-
StreamContext* stream_context =
GetStreamContextForResourceContext(info->GetContext());
writer_.InitializeStream(stream_context->registry(),
@@ -132,14 +122,19 @@ bool NavigationResourceHandler::OnResponseStarted(ResourceResponse* response,
ssl_status, std::move(cloned_data),
info->GetGlobalRequestID(), info->IsDownload(),
info->is_stream());
- // Don't defer stream based requests. This includes requests initiated via
- // mime type sniffing, etc.
+
+ // Don't defer stream based or download requests. This includes requests
+ // initiated via mime type sniffing, etc.
// TODO(ananta)
// Make sure that the requests go through the throttle checks. Currently this
// does not work as the InterceptingResourceHandler is above us and hence it
// does not expect the old handler to defer the request.
- if (!info->is_stream())
+ if (!info->is_stream() && !info->IsDownload())
*defer = true;
+
+ if (info->IsDownload())
+ DetachFromCore();
+
return true;
}
« no previous file with comments | « content/browser/frame_host/navigation_request.cc ('k') | content/browser/loader/resource_dispatcher_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698