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

Unified Diff: content/browser/download/download_resource_handler.h

Issue 10332130: Use defer out-params instead of ResourceDispatcherHostImpl::PauseRequest(...true) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/download/download_resource_handler.h
===================================================================
--- content/browser/download/download_resource_handler.h (revision 137742)
+++ content/browser/download/download_resource_handler.h (working copy)
@@ -60,7 +60,8 @@
// Send the download creation information to the download thread.
virtual bool OnResponseStarted(int request_id,
- content::ResourceResponse* response) OVERRIDE;
+ content::ResourceResponse* response,
+ bool* defer) OVERRIDE;
// Pass-through implementation.
virtual bool OnWillStart(int request_id,
@@ -74,22 +75,18 @@
int* buf_size,
int min_size) OVERRIDE;
- virtual bool OnReadCompleted(int request_id, int* bytes_read) OVERRIDE;
+ virtual bool OnReadCompleted(int request_id, int* bytes_read,
+ bool* defer) OVERRIDE;
virtual bool OnResponseCompleted(int request_id,
const net::URLRequestStatus& status,
const std::string& security_info) OVERRIDE;
virtual void OnRequestClosed() OVERRIDE;
- // If the content-length header is not present (or contains something other
- // than numbers), the incoming content_length is -1 (unknown size).
- // Set the content length to 0 to indicate unknown size to DownloadManager.
- void set_content_length(const int64& content_length);
+ void PauseRequest();
+ void ResumeRequest();
+ void CancelRequest();
- void set_content_disposition(const std::string& content_disposition);
-
- void CheckWriteProgress();
-
std::string DebugString() const;
private:
@@ -100,14 +97,23 @@
const std::string& security_info,
int response_code);
- void StartPauseTimer();
+ void CheckWriteProgressLater();
+ void CheckWriteProgress();
+ void MaybeResumeRequest();
void CallStartedCB(content::DownloadId id, net::Error error);
// Generates a DownloadId and calls DownloadFileManager.
void StartOnUIThread(scoped_ptr<DownloadCreateInfo> info,
const DownloadRequestHandle& handle);
- void set_download_id(content::DownloadId id);
+ void SetDownloadID(content::DownloadId id);
+ // If the content-length header is not present (or contains something other
+ // than numbers), the incoming content_length is -1 (unknown size).
+ // Set the content length to 0 to indicate unknown size to DownloadManager.
+ void SetContentLength(const int64& content_length);
+
+ void SetContentDisposition(const std::string& content_disposition);
+
content::DownloadId download_id_;
content::GlobalRequestID global_id_;
int render_view_id_;
@@ -120,8 +126,7 @@
OnStartedCallback started_cb_;
content::DownloadSaveInfo save_info_;
scoped_refptr<content::DownloadBuffer> buffer_;
- bool is_paused_;
- base::OneShotTimer<DownloadResourceHandler> pause_timer_;
+ base::OneShotTimer<DownloadResourceHandler> check_write_progress_timer_;
// The following are used to collect stats.
base::TimeTicks download_start_time_;
@@ -130,6 +135,9 @@
int64 bytes_read_;
std::string accept_ranges_;
+ int pause_count_;
+ bool was_deferred_;
+
static const int kReadBufSize = 32768; // bytes
static const int kThrottleTimeMs = 200; // milliseconds
« no previous file with comments | « content/browser/download/download_request_handle.cc ('k') | content/browser/download/download_resource_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698