OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 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/android/url_request_content_job.h" | 5 #include "content/browser/android/url_request_content_job.h" |
6 | 6 |
7 #include "base/android/content_uri_utils.h" | 7 #include "base/android/content_uri_utils.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 NotifyDone(net::URLRequestStatus(net::URLRequestStatus::FAILED, | 170 NotifyDone(net::URLRequestStatus(net::URLRequestStatus::FAILED, |
171 net::ERR_REQUEST_RANGE_NOT_SATISFIABLE)); | 171 net::ERR_REQUEST_RANGE_NOT_SATISFIABLE)); |
172 return; | 172 return; |
173 } | 173 } |
174 | 174 |
175 remaining_bytes_ = byte_range_.last_byte_position() - | 175 remaining_bytes_ = byte_range_.last_byte_position() - |
176 byte_range_.first_byte_position() + 1; | 176 byte_range_.first_byte_position() + 1; |
177 DCHECK_GE(remaining_bytes_, 0); | 177 DCHECK_GE(remaining_bytes_, 0); |
178 | 178 |
179 if (remaining_bytes_ > 0 && byte_range_.first_byte_position() != 0) { | 179 if (remaining_bytes_ > 0 && byte_range_.first_byte_position() != 0) { |
180 int rv = stream_->Seek(base::File::FROM_BEGIN, | 180 int rv = stream_->Seek(byte_range_.first_byte_position(), |
181 byte_range_.first_byte_position(), | |
182 base::Bind(&URLRequestContentJob::DidSeek, | 181 base::Bind(&URLRequestContentJob::DidSeek, |
183 weak_ptr_factory_.GetWeakPtr())); | 182 weak_ptr_factory_.GetWeakPtr())); |
184 if (rv != net::ERR_IO_PENDING) { | 183 if (rv != net::ERR_IO_PENDING) { |
185 // stream_->Seek() failed, so pass an intentionally erroneous value | 184 // stream_->Seek() failed, so pass an intentionally erroneous value |
186 // into DidSeek(). | 185 // into DidSeek(). |
187 DidSeek(-1); | 186 DidSeek(-1); |
188 } | 187 } |
189 } else { | 188 } else { |
190 // We didn't need to call stream_->Seek() at all, so we pass to DidSeek() | 189 // We didn't need to call stream_->Seek() at all, so we pass to DidSeek() |
191 // the value that would mean seek success. This way we skip the code | 190 // the value that would mean seek success. This way we skip the code |
(...skipping 27 matching lines...) Expand all Loading... |
219 if (result == 0) { | 218 if (result == 0) { |
220 NotifyDone(net::URLRequestStatus()); | 219 NotifyDone(net::URLRequestStatus()); |
221 } else if (result < 0) { | 220 } else if (result < 0) { |
222 NotifyDone(net::URLRequestStatus(net::URLRequestStatus::FAILED, result)); | 221 NotifyDone(net::URLRequestStatus(net::URLRequestStatus::FAILED, result)); |
223 } | 222 } |
224 | 223 |
225 NotifyReadComplete(result); | 224 NotifyReadComplete(result); |
226 } | 225 } |
227 | 226 |
228 } // namespace content | 227 } // namespace content |
OLD | NEW |