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_throttling_resource_handler.h" | 5 #include "chrome/browser/renderer_host/download_throttling_resource_handler.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "chrome/browser/renderer_host/download_resource_handler.h" | 8 #include "chrome/browser/renderer_host/download_resource_handler.h" |
9 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" | 9 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" |
10 #include "net/base/io_buffer.h" | 10 #include "net/base/io_buffer.h" |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 NOTREACHED(); | 123 NOTREACHED(); |
124 return true; | 124 return true; |
125 } | 125 } |
126 | 126 |
127 void DownloadThrottlingResourceHandler::CancelDownload() { | 127 void DownloadThrottlingResourceHandler::CancelDownload() { |
128 host_->CancelRequest(render_process_host_id_, request_id_, false); | 128 host_->CancelRequest(render_process_host_id_, request_id_, false); |
129 } | 129 } |
130 | 130 |
131 void DownloadThrottlingResourceHandler::ContinueDownload() { | 131 void DownloadThrottlingResourceHandler::ContinueDownload() { |
132 DCHECK(!download_handler_.get()); | 132 DCHECK(!download_handler_.get()); |
| 133 FilePath save_file_path; |
133 download_handler_ = | 134 download_handler_ = |
134 new DownloadResourceHandler(host_, | 135 new DownloadResourceHandler(host_, |
135 render_process_host_id_, | 136 render_process_host_id_, |
136 render_view_id_, | 137 render_view_id_, |
137 request_id_, | 138 request_id_, |
138 url_, | 139 url_, |
139 host_->download_file_manager(), | 140 host_->download_file_manager(), |
140 request_, | 141 request_, |
141 false); | 142 false, |
| 143 save_file_path); |
142 if (response_.get()) | 144 if (response_.get()) |
143 download_handler_->OnResponseStarted(request_id_, response_.get()); | 145 download_handler_->OnResponseStarted(request_id_, response_.get()); |
144 | 146 |
145 if (tmp_buffer_length_) | 147 if (tmp_buffer_length_) |
146 CopyTmpBufferToDownloadHandler(); | 148 CopyTmpBufferToDownloadHandler(); |
147 | 149 |
148 // And let the request continue. | 150 // And let the request continue. |
149 host_->PauseRequest(render_process_host_id_, request_id_, false); | 151 host_->PauseRequest(render_process_host_id_, request_id_, false); |
150 } | 152 } |
151 | 153 |
152 int DownloadThrottlingResourceHandler::GetRequestId() { | 154 int DownloadThrottlingResourceHandler::GetRequestId() { |
153 return request_id_; | 155 return request_id_; |
154 } | 156 } |
155 | 157 |
156 void DownloadThrottlingResourceHandler::CopyTmpBufferToDownloadHandler() { | 158 void DownloadThrottlingResourceHandler::CopyTmpBufferToDownloadHandler() { |
157 // Copy over the tmp buffer. | 159 // Copy over the tmp buffer. |
158 net::IOBuffer* buffer; | 160 net::IOBuffer* buffer; |
159 int buf_size; | 161 int buf_size; |
160 if (download_handler_->OnWillRead(request_id_, &buffer, &buf_size, | 162 if (download_handler_->OnWillRead(request_id_, &buffer, &buf_size, |
161 tmp_buffer_length_)) { | 163 tmp_buffer_length_)) { |
162 CHECK(buf_size >= tmp_buffer_length_); | 164 CHECK(buf_size >= tmp_buffer_length_); |
163 memcpy(buffer->data(), tmp_buffer_->data(), tmp_buffer_length_); | 165 memcpy(buffer->data(), tmp_buffer_->data(), tmp_buffer_length_); |
164 download_handler_->OnReadCompleted(request_id_, &tmp_buffer_length_); | 166 download_handler_->OnReadCompleted(request_id_, &tmp_buffer_length_); |
165 } | 167 } |
166 tmp_buffer_length_ = 0; | 168 tmp_buffer_length_ = 0; |
167 tmp_buffer_ = NULL; | 169 tmp_buffer_ = NULL; |
168 } | 170 } |
OLD | NEW |