Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(930)

Side by Side Diff: webkit/fileapi/media/device_media_file_util.cc

Issue 11358243: Redesigned and refactored ScopedMTPDeviceMapEntry, MTPDeviceMapService & MTPDeviceDelegate classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/fileapi/media/device_media_file_util.h" 5 #include "webkit/fileapi/media/device_media_file_util.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/message_loop_proxy.h" 8 #include "base/message_loop_proxy.h"
9 #include "webkit/fileapi/file_system_operation_context.h" 9 #include "webkit/fileapi/file_system_operation_context.h"
10 #include "webkit/fileapi/file_system_url.h" 10 #include "webkit/fileapi/file_system_url.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 bool exclusive, 56 bool exclusive,
57 bool recursive) { 57 bool recursive) {
58 return base::PLATFORM_FILE_ERROR_SECURITY; 58 return base::PLATFORM_FILE_ERROR_SECURITY;
59 } 59 }
60 60
61 PlatformFileError DeviceMediaFileUtil::GetFileInfo( 61 PlatformFileError DeviceMediaFileUtil::GetFileInfo(
62 FileSystemOperationContext* context, 62 FileSystemOperationContext* context,
63 const FileSystemURL& url, 63 const FileSystemURL& url,
64 PlatformFileInfo* file_info, 64 PlatformFileInfo* file_info,
65 FilePath* platform_path) { 65 FilePath* platform_path) {
66 DCHECK(context->mtp_device_delegate()); 66 if (!context->mtp_device_delegate().get())
67 return base::PLATFORM_FILE_ERROR_NOT_FOUND;
Lei Zhang 2012/11/21 01:33:30 Perhaps PLATFORM_FILE_ERROR_FAILED is more appropr
kmadhusu 2012/11/21 04:09:53 kinuko preferred base::PLATFORM_FILE_ERROR_NOT_FOU
68
67 PlatformFileError error = 69 PlatformFileError error =
68 context->mtp_device_delegate()->GetFileInfo(url.path(), file_info); 70 context->mtp_device_delegate()->GetFileInfo(url.path(), file_info);
69 if (error != base::PLATFORM_FILE_OK) 71 if (error != base::PLATFORM_FILE_OK)
70 return error; 72 return error;
71 73
72 if (file_info->is_directory || 74 if (file_info->is_directory ||
73 context->media_path_filter()->Match(url.path())) 75 context->media_path_filter()->Match(url.path()))
74 return base::PLATFORM_FILE_OK; 76 return base::PLATFORM_FILE_OK;
75 return base::PLATFORM_FILE_ERROR_NOT_FOUND; 77 return base::PLATFORM_FILE_ERROR_NOT_FOUND;
76 } 78 }
77 79
78 scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> 80 scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
79 DeviceMediaFileUtil::CreateFileEnumerator( 81 DeviceMediaFileUtil::CreateFileEnumerator(
80 FileSystemOperationContext* context, 82 FileSystemOperationContext* context,
81 const FileSystemURL& url, 83 const FileSystemURL& url,
82 bool recursive) { 84 bool recursive) {
83 DCHECK(context->mtp_device_delegate()); 85 if (!context->mtp_device_delegate().get())
86 return make_scoped_ptr(new FileSystemFileUtil::EmptyFileEnumerator())
87 .PassAs<FileSystemFileUtil::AbstractFileEnumerator>();
kinuko 2012/11/20 06:25:33 nit: hmm... if we're just creating a new scoped_pt
kmadhusu 2012/11/21 04:09:53 Done.
84 return make_scoped_ptr(new FilteringFileEnumerator( 88 return make_scoped_ptr(new FilteringFileEnumerator(
85 context->mtp_device_delegate()->CreateFileEnumerator(url.path(), 89 context->mtp_device_delegate()->CreateFileEnumerator(url.path(),
86 recursive), 90 recursive),
87 context->media_path_filter())) 91 context->media_path_filter()))
88 .PassAs<FileSystemFileUtil::AbstractFileEnumerator>(); 92 .PassAs<FileSystemFileUtil::AbstractFileEnumerator>();
89 } 93 }
90 94
91 PlatformFileError DeviceMediaFileUtil::GetLocalFilePath( 95 PlatformFileError DeviceMediaFileUtil::GetLocalFilePath(
92 FileSystemOperationContext* context, 96 FileSystemOperationContext* context,
93 const FileSystemURL& file_system_url, 97 const FileSystemURL& file_system_url,
(...skipping 12 matching lines...) Expand all
106 PlatformFileError DeviceMediaFileUtil::Truncate( 110 PlatformFileError DeviceMediaFileUtil::Truncate(
107 FileSystemOperationContext* context, 111 FileSystemOperationContext* context,
108 const FileSystemURL& url, 112 const FileSystemURL& url,
109 int64 length) { 113 int64 length) {
110 return base::PLATFORM_FILE_ERROR_FAILED; 114 return base::PLATFORM_FILE_ERROR_FAILED;
111 } 115 }
112 116
113 bool DeviceMediaFileUtil::IsDirectoryEmpty( 117 bool DeviceMediaFileUtil::IsDirectoryEmpty(
114 FileSystemOperationContext* context, 118 FileSystemOperationContext* context,
115 const FileSystemURL& url) { 119 const FileSystemURL& url) {
116 DCHECK(context->mtp_device_delegate()); 120 if (!context->mtp_device_delegate().get())
121 return false;
122
117 scoped_ptr<AbstractFileEnumerator> enumerator( 123 scoped_ptr<AbstractFileEnumerator> enumerator(
118 CreateFileEnumerator(context, url, false)); 124 CreateFileEnumerator(context, url, false));
119 FilePath path; 125 FilePath path;
120 while (!(path = enumerator->Next()).empty()) { 126 while (!(path = enumerator->Next()).empty()) {
121 if (enumerator->IsDirectory() || 127 if (enumerator->IsDirectory() ||
122 context->media_path_filter()->Match(path)) 128 context->media_path_filter()->Match(path))
123 return false; 129 return false;
124 } 130 }
125 return true; 131 return true;
126 } 132 }
(...skipping 27 matching lines...) Expand all
154 160
155 base::PlatformFileError DeviceMediaFileUtil::CreateSnapshotFile( 161 base::PlatformFileError DeviceMediaFileUtil::CreateSnapshotFile(
156 FileSystemOperationContext* context, 162 FileSystemOperationContext* context,
157 const FileSystemURL& url, 163 const FileSystemURL& url,
158 base::PlatformFileInfo* file_info, 164 base::PlatformFileInfo* file_info,
159 FilePath* local_path, 165 FilePath* local_path,
160 SnapshotFilePolicy* snapshot_policy) { 166 SnapshotFilePolicy* snapshot_policy) {
161 DCHECK(file_info); 167 DCHECK(file_info);
162 DCHECK(local_path); 168 DCHECK(local_path);
163 DCHECK(snapshot_policy); 169 DCHECK(snapshot_policy);
164 DCHECK(context->mtp_device_delegate()); 170 if (!context->mtp_device_delegate().get())
171 return base::PLATFORM_FILE_ERROR_NOT_FOUND;
165 172
166 // We return a temporary file as a snapshot. 173 // We return a temporary file as a snapshot.
167 *snapshot_policy = FileSystemFileUtil::kSnapshotFileTemporary; 174 *snapshot_policy = FileSystemFileUtil::kSnapshotFileTemporary;
168 175
169 // Create a temp file in "profile_path_/kDeviceMediaFileUtilTempDir". 176 // Create a temp file in "profile_path_/kDeviceMediaFileUtilTempDir".
170 FilePath isolated_media_file_system_dir_path = 177 FilePath isolated_media_file_system_dir_path =
171 profile_path_.Append(kDeviceMediaFileUtilTempDir); 178 profile_path_.Append(kDeviceMediaFileUtilTempDir);
172 bool dir_exists = file_util::DirectoryExists( 179 bool dir_exists = file_util::DirectoryExists(
173 isolated_media_file_system_dir_path); 180 isolated_media_file_system_dir_path);
174 if (!dir_exists && 181 if (!dir_exists &&
175 !file_util::CreateDirectory(isolated_media_file_system_dir_path)) { 182 !file_util::CreateDirectory(isolated_media_file_system_dir_path)) {
176 LOG(WARNING) << "Could not create a directory for media snapshot file " 183 LOG(WARNING) << "Could not create a directory for media snapshot file "
177 << isolated_media_file_system_dir_path.value(); 184 << isolated_media_file_system_dir_path.value();
178 return base::PLATFORM_FILE_ERROR_FAILED; 185 return base::PLATFORM_FILE_ERROR_FAILED;
179 } 186 }
180 187
181 bool file_created = file_util::CreateTemporaryFileInDir( 188 bool file_created = file_util::CreateTemporaryFileInDir(
182 isolated_media_file_system_dir_path, local_path); 189 isolated_media_file_system_dir_path, local_path);
183 if (!file_created) { 190 if (!file_created) {
184 LOG(WARNING) << "Could not create a temporary file for media snapshot in " 191 LOG(WARNING) << "Could not create a temporary file for media snapshot in "
185 << isolated_media_file_system_dir_path.value(); 192 << isolated_media_file_system_dir_path.value();
186 return base::PLATFORM_FILE_ERROR_FAILED; 193 return base::PLATFORM_FILE_ERROR_FAILED;
187 } 194 }
188 return context->mtp_device_delegate()->CreateSnapshotFile( 195 return context->mtp_device_delegate()->CreateSnapshotFile(
189 url.path(), *local_path, file_info); 196 url.path(), *local_path, file_info);
190 } 197 }
191 198
192 } // namespace fileapi 199 } // namespace fileapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698