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

Side by Side Diff: content/browser/download/download_resource_handler.cc

Issue 1544603003: [Downloads] Do not store error responses during resumption. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@unify-downloader-core
Patch Set: Created 4 years, 11 months 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/download/download_resource_handler.h" 5 #include "content/browser/download/download_resource_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 BrowserThread::PostTask( 122 BrowserThread::PostTask(
123 BrowserThread::UI, FROM_HERE, 123 BrowserThread::UI, FROM_HERE,
124 base::Bind(&DeleteOnUIThread, base::Passed(&tab_info_))); 124 base::Bind(&DeleteOnUIThread, base::Passed(&tab_info_)));
125 } 125 }
126 } 126 }
127 127
128 bool DownloadResourceHandler::OnRequestRedirected( 128 bool DownloadResourceHandler::OnRequestRedirected(
129 const net::RedirectInfo& redirect_info, 129 const net::RedirectInfo& redirect_info,
130 ResourceResponse* response, 130 ResourceResponse* response,
131 bool* defer) { 131 bool* defer) {
132 return true; 132 DownloadInterruptReason result = core_.OnRequestRedirected(redirect_info);
133 if (result == DOWNLOAD_INTERRUPT_REASON_NONE)
134 return true;
135
136 // Allow the interrupt reason to propagate up the stack before we receive the
137 // OnResponseCompleted() call. The ResourceLoader will treat this as an ABORT,
138 // hence OnResponseCompleted() may conclude a more generic interrupt reason.
139 // We want the specific interrupt reason to be dispatched instead.
140 CallStartedCB(result);
141 return false;
133 } 142 }
134 143
135 // Send the download creation information to the download thread. 144 // Send the download creation information to the download thread.
136 bool DownloadResourceHandler::OnResponseStarted( 145 bool DownloadResourceHandler::OnResponseStarted(
137 ResourceResponse* response, 146 ResourceResponse* response,
138 bool* defer) { 147 bool* defer) {
139 scoped_ptr<DownloadCreateInfo> create_info; 148 scoped_ptr<DownloadCreateInfo> create_info;
140 scoped_ptr<ByteStreamReader> stream_reader; 149 scoped_ptr<ByteStreamReader> stream_reader;
141 150
142 core_.OnResponseStarted(&create_info, &stream_reader); 151 DownloadInterruptReason result =
152 core_.OnResponseStarted(&create_info, &stream_reader);
153 if (result != DOWNLOAD_INTERRUPT_REASON_NONE) {
154 CallStartedCB(result);
155 return false;
156 }
143 157
144 const ResourceRequestInfoImpl* request_info = GetRequestInfo(); 158 const ResourceRequestInfoImpl* request_info = GetRequestInfo();
145 create_info->download_id = download_id_; 159 create_info->download_id = download_id_;
146 create_info->has_user_gesture = request_info->HasUserGesture(); 160 create_info->has_user_gesture = request_info->HasUserGesture();
147 create_info->transition_type = request_info->GetPageTransition(); 161 create_info->transition_type = request_info->GetPageTransition();
148 create_info->request_handle.reset(new DownloadRequestHandle( 162 create_info->request_handle.reset(new DownloadRequestHandle(
149 AsWeakPtr(), request_info->GetChildID(), request_info->GetRouteID(), 163 AsWeakPtr(), request_info->GetChildID(), request_info->GetRouteID(),
150 request_info->GetRequestID(), request_info->frame_tree_node_id())); 164 request_info->GetRequestID(), request_info->frame_tree_node_id()));
151 165
152 // The MIME type in ResourceResponse is the product of 166 // The MIME type in ResourceResponse is the product of
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 " }", 254 " }",
241 request() ? 255 request() ?
242 request()->url().spec().c_str() : 256 request()->url().spec().c_str() :
243 "<NULL request>", 257 "<NULL request>",
244 info->GetChildID(), 258 info->GetChildID(),
245 info->GetRequestID(), 259 info->GetRequestID(),
246 info->GetRouteID()); 260 info->GetRouteID());
247 } 261 }
248 262
249 } // namespace content 263 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698