OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "chrome/browser/renderer_host/download_resource_handler.h" | 5 #include "chrome/browser/renderer_host/download_resource_handler.h" |
6 | 6 |
| 7 #include "base/logging.h" |
7 #include "chrome/browser/download/download_file.h" | 8 #include "chrome/browser/download/download_file.h" |
8 #include "chrome/browser/download/download_manager.h" | 9 #include "chrome/browser/download/download_manager.h" |
9 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" | 10 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" |
10 #include "net/base/io_buffer.h" | 11 #include "net/base/io_buffer.h" |
11 #include "net/url_request/url_request_context.h" | 12 #include "net/url_request/url_request_context.h" |
12 | 13 |
13 DownloadResourceHandler::DownloadResourceHandler(ResourceDispatcherHost* rdh, | 14 DownloadResourceHandler::DownloadResourceHandler(ResourceDispatcherHost* rdh, |
14 int render_process_host_id, | 15 int render_process_host_id, |
15 int render_view_id, | 16 int render_view_id, |
16 int request_id, | 17 int request_id, |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 // Create a new buffer, which will be handed to the download thread for file | 77 // Create a new buffer, which will be handed to the download thread for file |
77 // writing and deletion. | 78 // writing and deletion. |
78 bool DownloadResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf, | 79 bool DownloadResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf, |
79 int* buf_size, int min_size) { | 80 int* buf_size, int min_size) { |
80 DCHECK(buf && buf_size); | 81 DCHECK(buf && buf_size); |
81 if (!read_buffer_) { | 82 if (!read_buffer_) { |
82 *buf_size = min_size < 0 ? kReadBufSize : min_size; | 83 *buf_size = min_size < 0 ? kReadBufSize : min_size; |
83 read_buffer_ = new net::IOBuffer(*buf_size); | 84 read_buffer_ = new net::IOBuffer(*buf_size); |
84 } | 85 } |
85 *buf = read_buffer_.get(); | 86 *buf = read_buffer_.get(); |
| 87 // TODO(willchan): Remove after debugging bug 16371. |
| 88 CHECK(read_buffer_->data()); |
86 return true; | 89 return true; |
87 } | 90 } |
88 | 91 |
89 // Pass the buffer to the download file writer. | 92 // Pass the buffer to the download file writer. |
90 bool DownloadResourceHandler::OnReadCompleted(int request_id, int* bytes_read) { | 93 bool DownloadResourceHandler::OnReadCompleted(int request_id, int* bytes_read) { |
91 if (!*bytes_read) | 94 if (!*bytes_read) |
92 return true; | 95 return true; |
93 DCHECK(read_buffer_); | 96 DCHECK(read_buffer_); |
94 AutoLock auto_lock(buffer_->lock); | 97 AutoLock auto_lock(buffer_->lock); |
95 bool need_update = buffer_->contents.empty(); | 98 bool need_update = buffer_->contents.empty(); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 should_pause); | 169 should_pause); |
167 is_paused_ = should_pause; | 170 is_paused_ = should_pause; |
168 } | 171 } |
169 } | 172 } |
170 | 173 |
171 void DownloadResourceHandler::StartPauseTimer() { | 174 void DownloadResourceHandler::StartPauseTimer() { |
172 if (!pause_timer_.IsRunning()) | 175 if (!pause_timer_.IsRunning()) |
173 pause_timer_.Start(base::TimeDelta::FromMilliseconds(kThrottleTimeMs), this, | 176 pause_timer_.Start(base::TimeDelta::FromMilliseconds(kThrottleTimeMs), this, |
174 &DownloadResourceHandler::CheckWriteProgress); | 177 &DownloadResourceHandler::CheckWriteProgress); |
175 } | 178 } |
OLD | NEW |