OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h" | 5 #include "chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/numerics/safe_conversions.h" | 9 #include "base/numerics/safe_conversions.h" |
10 #include "chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h" | 10 #include "chrome/browser/media_galleries/fileapi/mtp_device_async_delegate.h" |
11 #include "chrome/browser/media_galleries/fileapi/mtp_device_map_service.h" | 11 #include "chrome/browser/media_galleries/fileapi/mtp_device_map_service.h" |
12 #include "chrome/browser/media_galleries/fileapi/native_media_file_util.h" | 12 #include "chrome/browser/media_galleries/fileapi/native_media_file_util.h" |
13 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
14 #include "net/base/io_buffer.h" | 14 #include "net/base/io_buffer.h" |
15 #include "net/base/mime_sniffer.h" | 15 #include "net/base/mime_sniffer.h" |
16 #include "net/base/net_errors.h" | 16 #include "net/base/net_errors.h" |
17 #include "webkit/browser/fileapi/file_system_context.h" | 17 #include "storage/browser/fileapi/file_system_context.h" |
18 | 18 |
19 using webkit_blob::FileStreamReader; | 19 using storage::FileStreamReader; |
20 | 20 |
21 namespace { | 21 namespace { |
22 | 22 |
23 // Called on the IO thread. | 23 // Called on the IO thread. |
24 MTPDeviceAsyncDelegate* GetMTPDeviceDelegate( | 24 MTPDeviceAsyncDelegate* GetMTPDeviceDelegate( |
25 const fileapi::FileSystemURL& url) { | 25 const storage::FileSystemURL& url) { |
26 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 26 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
27 return MTPDeviceMapService::GetInstance()->GetMTPDeviceAsyncDelegate( | 27 return MTPDeviceMapService::GetInstance()->GetMTPDeviceAsyncDelegate( |
28 url.filesystem_id()); | 28 url.filesystem_id()); |
29 } | 29 } |
30 | 30 |
31 void CallCompletionCallbackWithPlatformFileError( | 31 void CallCompletionCallbackWithPlatformFileError( |
32 const net::CompletionCallback& callback, | 32 const net::CompletionCallback& callback, |
33 base::File::Error file_error) { | 33 base::File::Error file_error) { |
34 callback.Run(net::FileErrorToNetError(file_error)); | 34 callback.Run(net::FileErrorToNetError(file_error)); |
35 } | 35 } |
36 | 36 |
37 void CallInt64CompletionCallbackWithPlatformFileError( | 37 void CallInt64CompletionCallbackWithPlatformFileError( |
38 const net::Int64CompletionCallback& callback, | 38 const net::Int64CompletionCallback& callback, |
39 base::File::Error file_error) { | 39 base::File::Error file_error) { |
40 callback.Run(net::FileErrorToNetError(file_error)); | 40 callback.Run(net::FileErrorToNetError(file_error)); |
41 } | 41 } |
42 | 42 |
43 void ReadBytes( | 43 void ReadBytes( |
44 const fileapi::FileSystemURL& url, net::IOBuffer* buf, int64 offset, | 44 const storage::FileSystemURL& url, |
| 45 net::IOBuffer* buf, |
| 46 int64 offset, |
45 int buf_len, | 47 int buf_len, |
46 const MTPDeviceAsyncDelegate::ReadBytesSuccessCallback& success_callback, | 48 const MTPDeviceAsyncDelegate::ReadBytesSuccessCallback& success_callback, |
47 const net::CompletionCallback& error_callback) { | 49 const net::CompletionCallback& error_callback) { |
48 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); | 50 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); |
49 if (!delegate) { | 51 if (!delegate) { |
50 error_callback.Run(net::ERR_FAILED); | 52 error_callback.Run(net::ERR_FAILED); |
51 return; | 53 return; |
52 } | 54 } |
53 | 55 |
54 delegate->ReadBytes( | 56 delegate->ReadBytes( |
55 url.path(), | 57 url.path(), |
56 make_scoped_refptr(buf), | 58 make_scoped_refptr(buf), |
57 offset, | 59 offset, |
58 buf_len, | 60 buf_len, |
59 success_callback, | 61 success_callback, |
60 base::Bind(&CallCompletionCallbackWithPlatformFileError, error_callback)); | 62 base::Bind(&CallCompletionCallbackWithPlatformFileError, error_callback)); |
61 } | 63 } |
62 | 64 |
63 } // namespace | 65 } // namespace |
64 | 66 |
65 MTPFileStreamReader::MTPFileStreamReader( | 67 MTPFileStreamReader::MTPFileStreamReader( |
66 fileapi::FileSystemContext* file_system_context, | 68 storage::FileSystemContext* file_system_context, |
67 const fileapi::FileSystemURL& url, | 69 const storage::FileSystemURL& url, |
68 int64 initial_offset, | 70 int64 initial_offset, |
69 const base::Time& expected_modification_time, | 71 const base::Time& expected_modification_time, |
70 bool do_media_header_validation) | 72 bool do_media_header_validation) |
71 : file_system_context_(file_system_context), | 73 : file_system_context_(file_system_context), |
72 url_(url), | 74 url_(url), |
73 current_offset_(initial_offset), | 75 current_offset_(initial_offset), |
74 expected_modification_time_(expected_modification_time), | 76 expected_modification_time_(expected_modification_time), |
75 media_header_validated_(!do_media_header_validation), | 77 media_header_validated_(!do_media_header_validation), |
76 weak_factory_(this) { | 78 weak_factory_(this) { |
77 } | 79 } |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 const base::File::Info& file_info) { | 188 const base::File::Info& file_info) { |
187 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); | 189 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
188 | 190 |
189 if (!VerifySnapshotTime(expected_modification_time_, file_info)) { | 191 if (!VerifySnapshotTime(expected_modification_time_, file_info)) { |
190 callback.Run(net::ERR_UPLOAD_FILE_CHANGED); | 192 callback.Run(net::ERR_UPLOAD_FILE_CHANGED); |
191 return; | 193 return; |
192 } | 194 } |
193 | 195 |
194 callback.Run(file_info.size); | 196 callback.Run(file_info.size); |
195 } | 197 } |
OLD | NEW |