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

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

Issue 10310124: Implement a ResourceThrottle for URL overriding in Chrome on Android. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: moved back to src/chrome, not using WebContentsDelegate Created 8 years, 6 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/logging.h" 10 #include "base/logging.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 &content_disposition); 142 &content_disposition);
143 SetContentDisposition(content_disposition); 143 SetContentDisposition(content_disposition);
144 SetContentLength(response->content_length); 144 SetContentLength(response->content_length);
145 145
146 const ResourceRequestInfoImpl* request_info = 146 const ResourceRequestInfoImpl* request_info =
147 ResourceRequestInfoImpl::ForRequest(request_); 147 ResourceRequestInfoImpl::ForRequest(request_);
148 148
149 // Deleted in DownloadManager. 149 // Deleted in DownloadManager.
150 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo( 150 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo(
151 base::Time::Now(), 0, content_length_, DownloadItem::IN_PROGRESS, 151 base::Time::Now(), 0, content_length_, DownloadItem::IN_PROGRESS,
152 request_->net_log(), request_info->has_user_gesture(), 152 request_->net_log(), request_info->HasUserGesture(),
153 request_info->transition_type())); 153 request_info->transition_type()));
154 154
155 // Create the ByteStream for sending data to the download sink. 155 // Create the ByteStream for sending data to the download sink.
156 scoped_ptr<content::ByteStreamReader> stream_reader; 156 scoped_ptr<content::ByteStreamReader> stream_reader;
157 CreateByteStream( 157 CreateByteStream(
158 base::MessageLoopProxy::current(), 158 base::MessageLoopProxy::current(),
159 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE), 159 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
160 kDownloadByteStreamSize, &stream_writer_, &stream_reader); 160 kDownloadByteStreamSize, &stream_writer_, &stream_reader);
161 stream_writer_->RegisterCallback( 161 stream_writer_->RegisterCallback(
162 base::Bind(&DownloadResourceHandler::ResumeRequest, AsWeakPtr())); 162 base::Bind(&DownloadResourceHandler::ResumeRequest, AsWeakPtr()));
163 163
164 info->url_chain = request_->url_chain(); 164 info->url_chain = request_->url_chain();
165 info->referrer_url = GURL(request_->referrer()); 165 info->referrer_url = GURL(request_->referrer());
166 info->start_time = base::Time::Now(); 166 info->start_time = base::Time::Now();
167 info->received_bytes = save_info_.offset; 167 info->received_bytes = save_info_.offset;
168 info->total_bytes = content_length_; 168 info->total_bytes = content_length_;
169 info->state = DownloadItem::IN_PROGRESS; 169 info->state = DownloadItem::IN_PROGRESS;
170 info->has_user_gesture = request_info->has_user_gesture(); 170 info->has_user_gesture = request_info->HasUserGesture();
171 info->content_disposition = content_disposition_; 171 info->content_disposition = content_disposition_;
172 info->mime_type = response->mime_type; 172 info->mime_type = response->mime_type;
173 info->remote_address = request_->GetSocketAddress().host(); 173 info->remote_address = request_->GetSocketAddress().host();
174 download_stats::RecordDownloadMimeType(info->mime_type); 174 download_stats::RecordDownloadMimeType(info->mime_type);
175 175
176 DownloadRequestHandle request_handle(AsWeakPtr(), global_id_.child_id, 176 DownloadRequestHandle request_handle(AsWeakPtr(), global_id_.child_id,
177 render_view_id_, global_id_.request_id); 177 render_view_id_, global_id_.request_id);
178 178
179 // Get the last modified time and etag. 179 // Get the last modified time and etag.
180 const net::HttpResponseHeaders* headers = request_->response_headers(); 180 const net::HttpResponseHeaders* headers = request_->response_headers();
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 // false somewhere in the chain of resource handlers. 452 // false somewhere in the chain of resource handlers.
453 CallStartedCB(DownloadId(), net::ERR_ACCESS_DENIED); 453 CallStartedCB(DownloadId(), net::ERR_ACCESS_DENIED);
454 454
455 // Remove output stream callback if a stream exists. 455 // Remove output stream callback if a stream exists.
456 if (stream_writer_.get()) 456 if (stream_writer_.get())
457 stream_writer_->RegisterCallback(base::Closure()); 457 stream_writer_->RegisterCallback(base::Closure());
458 458
459 UMA_HISTOGRAM_TIMES("SB2.DownloadDuration", 459 UMA_HISTOGRAM_TIMES("SB2.DownloadDuration",
460 base::TimeTicks::Now() - download_start_time_); 460 base::TimeTicks::Now() - download_start_time_);
461 } 461 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698