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

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

Issue 18284005: Make ByteStream independent from DownloadInterruptReason (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rdsmith's comments Created 7 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « content/browser/download/download_resource_handler.h ('k') | content/browser/streams/stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 if (started_cb.is_null()) 43 if (started_cb.is_null())
44 return; 44 return;
45 started_cb.Run(item, error); 45 started_cb.Run(item, error);
46 } 46 }
47 47
48 // Static function in order to prevent any accidental accesses to 48 // Static function in order to prevent any accidental accesses to
49 // DownloadResourceHandler members from the UI thread. 49 // DownloadResourceHandler members from the UI thread.
50 static void StartOnUIThread( 50 static void StartOnUIThread(
51 scoped_ptr<DownloadCreateInfo> info, 51 scoped_ptr<DownloadCreateInfo> info,
52 scoped_ptr<ByteStreamReader> stream, 52 scoped_ptr<ByteStreamReader<DownloadInterruptReason> > stream,
53 const DownloadUrlParameters::OnStartedCallback& started_cb) { 53 const DownloadUrlParameters::OnStartedCallback& started_cb) {
54 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 54 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
55 55
56 DownloadManager* download_manager = info->request_handle.GetDownloadManager(); 56 DownloadManager* download_manager = info->request_handle.GetDownloadManager();
57 if (!download_manager) { 57 if (!download_manager) {
58 // NULL in unittests or if the page closed right after starting the 58 // NULL in unittests or if the page closed right after starting the
59 // download. 59 // download.
60 if (!started_cb.is_null()) 60 if (!started_cb.is_null())
61 started_cb.Run(NULL, net::ERR_ACCESS_DENIED); 61 started_cb.Run(NULL, net::ERR_ACCESS_DENIED);
62 return; 62 return;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 const ResourceRequestInfoImpl* request_info = 136 const ResourceRequestInfoImpl* request_info =
137 ResourceRequestInfoImpl::ForRequest(request_); 137 ResourceRequestInfoImpl::ForRequest(request_);
138 138
139 // Deleted in DownloadManager. 139 // Deleted in DownloadManager.
140 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo( 140 scoped_ptr<DownloadCreateInfo> info(new DownloadCreateInfo(
141 base::Time::Now(), content_length_, 141 base::Time::Now(), content_length_,
142 request_->net_log(), request_info->HasUserGesture(), 142 request_->net_log(), request_info->HasUserGesture(),
143 request_info->GetPageTransition())); 143 request_info->GetPageTransition()));
144 144
145 // Create the ByteStream for sending data to the download sink. 145 // Create the ByteStream for sending data to the download sink.
146 scoped_ptr<ByteStreamReader> stream_reader; 146 scoped_ptr<ByteStreamReader<DownloadInterruptReason> > stream_reader;
147 CreateByteStream( 147 CreateByteStream<DownloadInterruptReason>(
148 base::MessageLoopProxy::current(), 148 base::MessageLoopProxy::current(),
149 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE), 149 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
150 kDownloadByteStreamSize, &stream_writer_, &stream_reader); 150 kDownloadByteStreamSize, &stream_writer_, &stream_reader);
151 stream_writer_->RegisterCallback( 151 stream_writer_->RegisterCallback(
152 base::Bind(&DownloadResourceHandler::ResumeRequest, AsWeakPtr())); 152 base::Bind(&DownloadResourceHandler::ResumeRequest, AsWeakPtr()));
153 153
154 info->download_id = download_id_; 154 info->download_id = download_id_;
155 info->url_chain = request_->url_chain(); 155 info->url_chain = request_->url_chain();
156 info->referrer_url = GURL(request_->referrer()); 156 info->referrer_url = GURL(request_->referrer());
157 info->start_time = base::Time::Now(); 157 info->start_time = base::Time::Now();
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 482
483 // Remove output stream callback if a stream exists. 483 // Remove output stream callback if a stream exists.
484 if (stream_writer_) 484 if (stream_writer_)
485 stream_writer_->RegisterCallback(base::Closure()); 485 stream_writer_->RegisterCallback(base::Closure());
486 486
487 UMA_HISTOGRAM_TIMES("SB2.DownloadDuration", 487 UMA_HISTOGRAM_TIMES("SB2.DownloadDuration",
488 base::TimeTicks::Now() - download_start_time_); 488 base::TimeTicks::Now() - download_start_time_);
489 } 489 }
490 490
491 } // namespace content 491 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/download/download_resource_handler.h ('k') | content/browser/streams/stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698