OLD | NEW |
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 "webkit/browser/blob/blob_url_request_job.h" | 5 #include "webkit/browser/blob/blob_url_request_job.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "net/http/http_response_info.h" | 21 #include "net/http/http_response_info.h" |
22 #include "net/http/http_util.h" | 22 #include "net/http/http_util.h" |
23 #include "net/url_request/url_request.h" | 23 #include "net/url_request/url_request.h" |
24 #include "net/url_request/url_request_context.h" | 24 #include "net/url_request/url_request_context.h" |
25 #include "net/url_request/url_request_error_job.h" | 25 #include "net/url_request/url_request_error_job.h" |
26 #include "net/url_request/url_request_status.h" | 26 #include "net/url_request/url_request_status.h" |
27 #include "webkit/browser/blob/file_stream_reader.h" | 27 #include "webkit/browser/blob/file_stream_reader.h" |
28 #include "webkit/browser/fileapi/file_system_context.h" | 28 #include "webkit/browser/fileapi/file_system_context.h" |
29 #include "webkit/browser/fileapi/file_system_url.h" | 29 #include "webkit/browser/fileapi/file_system_url.h" |
30 | 30 |
| 31 #if defined(OS_ANDROID) |
| 32 #include "webkit/browser/blob/content_url_stream_reader_android.h" |
| 33 #endif |
| 34 |
31 namespace webkit_blob { | 35 namespace webkit_blob { |
32 | 36 |
33 namespace { | 37 namespace { |
34 | 38 |
35 bool IsFileType(BlobData::Item::Type type) { | 39 bool IsFileType(BlobData::Item::Type type) { |
36 switch (type) { | 40 switch (type) { |
37 case BlobData::Item::TYPE_FILE: | 41 case BlobData::Item::TYPE_FILE: |
38 case BlobData::Item::TYPE_FILE_FILESYSTEM: | 42 case BlobData::Item::TYPE_FILE_FILESYSTEM: |
| 43 #if defined(OS_ANDROID) |
| 44 case BlobData::Item::TYPE_CONTENT_URL: |
| 45 #endif |
39 return true; | 46 return true; |
40 default: | 47 default: |
41 return false; | 48 return false; |
42 } | 49 } |
43 } | 50 } |
44 | 51 |
45 } // namespace | 52 } // namespace |
46 | 53 |
47 BlobURLRequestJob::BlobURLRequestJob( | 54 BlobURLRequestJob::BlobURLRequestJob( |
48 net::URLRequest* request, | 55 net::URLRequest* request, |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 item.offset() + additional_offset, | 564 item.offset() + additional_offset, |
558 item.expected_modification_time()); | 565 item.expected_modification_time()); |
559 break; | 566 break; |
560 case BlobData::Item::TYPE_FILE_FILESYSTEM: | 567 case BlobData::Item::TYPE_FILE_FILESYSTEM: |
561 reader = file_system_context_->CreateFileStreamReader( | 568 reader = file_system_context_->CreateFileStreamReader( |
562 fileapi::FileSystemURL( | 569 fileapi::FileSystemURL( |
563 file_system_context_->CrackURL(item.filesystem_url())), | 570 file_system_context_->CrackURL(item.filesystem_url())), |
564 item.offset() + additional_offset, | 571 item.offset() + additional_offset, |
565 item.expected_modification_time()).release(); | 572 item.expected_modification_time()).release(); |
566 break; | 573 break; |
| 574 #if defined(OS_ANDROID) |
| 575 case BlobData::Item::TYPE_CONTENT_URL: |
| 576 reader = FileStreamReader::CreateForContentUrl( |
| 577 file_thread_proxy_.get(), |
| 578 item.content_url(), |
| 579 item.offset() + additional_offset); |
| 580 break; |
| 581 #endif |
567 default: | 582 default: |
568 NOTREACHED(); | 583 NOTREACHED(); |
569 } | 584 } |
570 DCHECK(reader); | 585 DCHECK(reader); |
571 index_to_reader_[index] = reader; | 586 index_to_reader_[index] = reader; |
572 } | 587 } |
573 | 588 |
574 } // namespace webkit_blob | 589 } // namespace webkit_blob |
OLD | NEW |