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

Side by Side Diff: chrome/browser/media_galleries/fileapi/native_media_file_util.cc

Issue 18580012: Cleanup: return value and null-callback fixups on AsyncFileUtil interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 months 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 "chrome/browser/media_galleries/fileapi/native_media_file_util.h" 5 #include "chrome/browser/media_galleries/fileapi/native_media_file_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 128
129 if (StartsWithASCII(mime_type, "image/", true) || 129 if (StartsWithASCII(mime_type, "image/", true) ||
130 StartsWithASCII(mime_type, "audio/", true) || 130 StartsWithASCII(mime_type, "audio/", true) ||
131 StartsWithASCII(mime_type, "video/", true) || 131 StartsWithASCII(mime_type, "video/", true) ||
132 mime_type == "application/x-shockwave-flash") { 132 mime_type == "application/x-shockwave-flash") {
133 return base::PLATFORM_FILE_OK; 133 return base::PLATFORM_FILE_OK;
134 } 134 }
135 return base::PLATFORM_FILE_ERROR_SECURITY; 135 return base::PLATFORM_FILE_ERROR_SECURITY;
136 } 136 }
137 137
138 bool NativeMediaFileUtil::CreateOrOpen( 138 void NativeMediaFileUtil::CreateOrOpen(
139 scoped_ptr<fileapi::FileSystemOperationContext> context, 139 scoped_ptr<fileapi::FileSystemOperationContext> context,
140 const fileapi::FileSystemURL& url, 140 const fileapi::FileSystemURL& url,
141 int file_flags, 141 int file_flags,
142 const CreateOrOpenCallback& callback) { 142 const CreateOrOpenCallback& callback) {
143 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 143 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
144 // Only called by NaCl, which should not have access to media file systems. 144 // Only called by NaCl, which should not have access to media file systems.
145 base::PlatformFile invalid_file(base::kInvalidPlatformFileValue); 145 base::PlatformFile invalid_file(base::kInvalidPlatformFileValue);
146 if (!callback.is_null()) { 146 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY,
147 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY, 147 base::PassPlatformFile(&invalid_file));
148 base::PassPlatformFile(&invalid_file));
149 }
150 return true;
151 } 148 }
152 149
153 bool NativeMediaFileUtil::EnsureFileExists( 150 void NativeMediaFileUtil::EnsureFileExists(
154 scoped_ptr<fileapi::FileSystemOperationContext> context, 151 scoped_ptr<fileapi::FileSystemOperationContext> context,
155 const fileapi::FileSystemURL& url, 152 const fileapi::FileSystemURL& url,
156 const EnsureFileExistsCallback& callback) { 153 const EnsureFileExistsCallback& callback) {
157 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 154 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
158 if (!callback.is_null()) 155 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY, false);
159 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY, false);
160 return true;
161 } 156 }
162 157
163 bool NativeMediaFileUtil::CreateDirectory( 158 void NativeMediaFileUtil::CreateDirectory(
164 scoped_ptr<fileapi::FileSystemOperationContext> context, 159 scoped_ptr<fileapi::FileSystemOperationContext> context,
165 const fileapi::FileSystemURL& url, 160 const fileapi::FileSystemURL& url,
166 bool exclusive, 161 bool exclusive,
167 bool recursive, 162 bool recursive,
168 const StatusCallback& callback) { 163 const StatusCallback& callback) {
169 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 164 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
170 fileapi::FileSystemOperationContext* context_ptr = context.get(); 165 fileapi::FileSystemOperationContext* context_ptr = context.get();
171 return context_ptr->task_runner()->PostTask( 166 const bool success = context_ptr->task_runner()->PostTask(
172 FROM_HERE, 167 FROM_HERE,
173 base::Bind(&NativeMediaFileUtil::CreateDirectoryOnTaskRunnerThread, 168 base::Bind(&NativeMediaFileUtil::CreateDirectoryOnTaskRunnerThread,
174 weak_factory_.GetWeakPtr(), base::Passed(&context), 169 weak_factory_.GetWeakPtr(), base::Passed(&context),
175 url, exclusive, recursive, callback)); 170 url, exclusive, recursive, callback));
171 DCHECK(success);
176 } 172 }
177 173
178 bool NativeMediaFileUtil::GetFileInfo( 174 void NativeMediaFileUtil::GetFileInfo(
179 scoped_ptr<fileapi::FileSystemOperationContext> context, 175 scoped_ptr<fileapi::FileSystemOperationContext> context,
180 const fileapi::FileSystemURL& url, 176 const fileapi::FileSystemURL& url,
181 const GetFileInfoCallback& callback) { 177 const GetFileInfoCallback& callback) {
182 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 178 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
183 fileapi::FileSystemOperationContext* context_ptr = context.get(); 179 fileapi::FileSystemOperationContext* context_ptr = context.get();
184 return context_ptr->task_runner()->PostTask( 180 const bool success = context_ptr->task_runner()->PostTask(
185 FROM_HERE, 181 FROM_HERE,
186 base::Bind(&NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread, 182 base::Bind(&NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread,
187 weak_factory_.GetWeakPtr(), base::Passed(&context), 183 weak_factory_.GetWeakPtr(), base::Passed(&context),
188 url, callback)); 184 url, callback));
185 DCHECK(success);
189 } 186 }
190 187
191 bool NativeMediaFileUtil::ReadDirectory( 188 void NativeMediaFileUtil::ReadDirectory(
192 scoped_ptr<fileapi::FileSystemOperationContext> context, 189 scoped_ptr<fileapi::FileSystemOperationContext> context,
193 const fileapi::FileSystemURL& url, 190 const fileapi::FileSystemURL& url,
194 const ReadDirectoryCallback& callback) { 191 const ReadDirectoryCallback& callback) {
195 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 192 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
196 fileapi::FileSystemOperationContext* context_ptr = context.get(); 193 fileapi::FileSystemOperationContext* context_ptr = context.get();
197 return context_ptr->task_runner()->PostTask( 194 const bool success = context_ptr->task_runner()->PostTask(
198 FROM_HERE, 195 FROM_HERE,
199 base::Bind(&NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread, 196 base::Bind(&NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread,
200 weak_factory_.GetWeakPtr(), base::Passed(&context), 197 weak_factory_.GetWeakPtr(), base::Passed(&context),
201 url, callback)); 198 url, callback));
199 DCHECK(success);
202 } 200 }
203 201
204 bool NativeMediaFileUtil::Touch( 202 void NativeMediaFileUtil::Touch(
205 scoped_ptr<fileapi::FileSystemOperationContext> context, 203 scoped_ptr<fileapi::FileSystemOperationContext> context,
206 const fileapi::FileSystemURL& url, 204 const fileapi::FileSystemURL& url,
207 const base::Time& last_access_time, 205 const base::Time& last_access_time,
208 const base::Time& last_modified_time, 206 const base::Time& last_modified_time,
209 const StatusCallback& callback) { 207 const StatusCallback& callback) {
210 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 208 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
211 if (!callback.is_null()) 209 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
212 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
213 return true;
214 } 210 }
215 211
216 bool NativeMediaFileUtil::Truncate( 212 void NativeMediaFileUtil::Truncate(
217 scoped_ptr<fileapi::FileSystemOperationContext> context, 213 scoped_ptr<fileapi::FileSystemOperationContext> context,
218 const fileapi::FileSystemURL& url, 214 const fileapi::FileSystemURL& url,
219 int64 length, 215 int64 length,
220 const StatusCallback& callback) { 216 const StatusCallback& callback) {
221 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 217 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
222 if (!callback.is_null()) 218 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
223 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
224 return true;
225 } 219 }
226 220
227 bool NativeMediaFileUtil::CopyFileLocal( 221 void NativeMediaFileUtil::CopyFileLocal(
228 scoped_ptr<fileapi::FileSystemOperationContext> context, 222 scoped_ptr<fileapi::FileSystemOperationContext> context,
229 const fileapi::FileSystemURL& src_url, 223 const fileapi::FileSystemURL& src_url,
230 const fileapi::FileSystemURL& dest_url, 224 const fileapi::FileSystemURL& dest_url,
231 const StatusCallback& callback) { 225 const StatusCallback& callback) {
232 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 226 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
233 fileapi::FileSystemOperationContext* context_ptr = context.get(); 227 fileapi::FileSystemOperationContext* context_ptr = context.get();
234 return context_ptr->task_runner()->PostTask( 228 const bool success = context_ptr->task_runner()->PostTask(
235 FROM_HERE, 229 FROM_HERE,
236 base::Bind(&NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread, 230 base::Bind(&NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread,
237 weak_factory_.GetWeakPtr(), base::Passed(&context), 231 weak_factory_.GetWeakPtr(), base::Passed(&context),
238 src_url, dest_url, true /* copy */, callback)); 232 src_url, dest_url, true /* copy */, callback));
233 DCHECK(success);
239 } 234 }
240 235
241 bool NativeMediaFileUtil::MoveFileLocal( 236 void NativeMediaFileUtil::MoveFileLocal(
242 scoped_ptr<fileapi::FileSystemOperationContext> context, 237 scoped_ptr<fileapi::FileSystemOperationContext> context,
243 const fileapi::FileSystemURL& src_url, 238 const fileapi::FileSystemURL& src_url,
244 const fileapi::FileSystemURL& dest_url, 239 const fileapi::FileSystemURL& dest_url,
245 const StatusCallback& callback) { 240 const StatusCallback& callback) {
246 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 241 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
247 fileapi::FileSystemOperationContext* context_ptr = context.get(); 242 fileapi::FileSystemOperationContext* context_ptr = context.get();
248 return context_ptr->task_runner()->PostTask( 243 const bool success = context_ptr->task_runner()->PostTask(
249 FROM_HERE, 244 FROM_HERE,
250 base::Bind(&NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread, 245 base::Bind(&NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread,
251 weak_factory_.GetWeakPtr(), base::Passed(&context), 246 weak_factory_.GetWeakPtr(), base::Passed(&context),
252 src_url, dest_url, false /* copy */, callback)); 247 src_url, dest_url, false /* copy */, callback));
248 DCHECK(success);
253 } 249 }
254 250
255 bool NativeMediaFileUtil::CopyInForeignFile( 251 void NativeMediaFileUtil::CopyInForeignFile(
256 scoped_ptr<fileapi::FileSystemOperationContext> context, 252 scoped_ptr<fileapi::FileSystemOperationContext> context,
257 const base::FilePath& src_file_path, 253 const base::FilePath& src_file_path,
258 const fileapi::FileSystemURL& dest_url, 254 const fileapi::FileSystemURL& dest_url,
259 const StatusCallback& callback) { 255 const StatusCallback& callback) {
260 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 256 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
261 fileapi::FileSystemOperationContext* context_ptr = context.get(); 257 fileapi::FileSystemOperationContext* context_ptr = context.get();
262 return context_ptr->task_runner()->PostTask( 258 const bool success = context_ptr->task_runner()->PostTask(
263 FROM_HERE, 259 FROM_HERE,
264 base::Bind(&NativeMediaFileUtil::CopyInForeignFileOnTaskRunnerThread, 260 base::Bind(&NativeMediaFileUtil::CopyInForeignFileOnTaskRunnerThread,
265 weak_factory_.GetWeakPtr(), base::Passed(&context), 261 weak_factory_.GetWeakPtr(), base::Passed(&context),
266 src_file_path, dest_url, callback)); 262 src_file_path, dest_url, callback));
263 DCHECK(success);
267 } 264 }
268 265
269 bool NativeMediaFileUtil::DeleteFile( 266 void NativeMediaFileUtil::DeleteFile(
270 scoped_ptr<fileapi::FileSystemOperationContext> context, 267 scoped_ptr<fileapi::FileSystemOperationContext> context,
271 const fileapi::FileSystemURL& url, 268 const fileapi::FileSystemURL& url,
272 const StatusCallback& callback) { 269 const StatusCallback& callback) {
273 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 270 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
274 if (!callback.is_null()) 271 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
275 callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
276 return true;
277 } 272 }
278 273
279 // This is needed to support Copy and Move. 274 // This is needed to support Copy and Move.
280 bool NativeMediaFileUtil::DeleteDirectory( 275 void NativeMediaFileUtil::DeleteDirectory(
281 scoped_ptr<fileapi::FileSystemOperationContext> context, 276 scoped_ptr<fileapi::FileSystemOperationContext> context,
282 const fileapi::FileSystemURL& url, 277 const fileapi::FileSystemURL& url,
283 const StatusCallback& callback) { 278 const StatusCallback& callback) {
284 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 279 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
285 fileapi::FileSystemOperationContext* context_ptr = context.get(); 280 fileapi::FileSystemOperationContext* context_ptr = context.get();
286 return context_ptr->task_runner()->PostTask( 281 const bool success = context_ptr->task_runner()->PostTask(
287 FROM_HERE, 282 FROM_HERE,
288 base::Bind(&NativeMediaFileUtil::DeleteDirectoryOnTaskRunnerThread, 283 base::Bind(&NativeMediaFileUtil::DeleteDirectoryOnTaskRunnerThread,
289 weak_factory_.GetWeakPtr(), base::Passed(&context), 284 weak_factory_.GetWeakPtr(), base::Passed(&context),
290 url, callback)); 285 url, callback));
286 DCHECK(success);
291 } 287 }
292 288
293 bool NativeMediaFileUtil::DeleteRecursively( 289 void NativeMediaFileUtil::DeleteRecursively(
294 scoped_ptr<fileapi::FileSystemOperationContext> context, 290 scoped_ptr<fileapi::FileSystemOperationContext> context,
295 const fileapi::FileSystemURL& url, 291 const fileapi::FileSystemURL& url,
296 const StatusCallback& callback) { 292 const StatusCallback& callback) {
297 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 293 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
298 if (!callback.is_null()) 294 callback.Run(base::PLATFORM_FILE_ERROR_INVALID_OPERATION);
299 callback.Run(base::PLATFORM_FILE_ERROR_INVALID_OPERATION);
300 return true;
301 } 295 }
302 296
303 bool NativeMediaFileUtil::CreateSnapshotFile( 297 void NativeMediaFileUtil::CreateSnapshotFile(
304 scoped_ptr<fileapi::FileSystemOperationContext> context, 298 scoped_ptr<fileapi::FileSystemOperationContext> context,
305 const fileapi::FileSystemURL& url, 299 const fileapi::FileSystemURL& url,
306 const CreateSnapshotFileCallback& callback) { 300 const CreateSnapshotFileCallback& callback) {
307 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 301 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
308 fileapi::FileSystemOperationContext* context_ptr = context.get(); 302 fileapi::FileSystemOperationContext* context_ptr = context.get();
309 return context_ptr->task_runner()->PostTask( 303 const bool success = context_ptr->task_runner()->PostTask(
310 FROM_HERE, 304 FROM_HERE,
311 base::Bind(&NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread, 305 base::Bind(&NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread,
312 weak_factory_.GetWeakPtr(), base::Passed(&context), 306 weak_factory_.GetWeakPtr(), base::Passed(&context),
313 url, callback)); 307 url, callback));
308 DCHECK(success);
314 } 309 }
315 310
316 void NativeMediaFileUtil::CreateDirectoryOnTaskRunnerThread( 311 void NativeMediaFileUtil::CreateDirectoryOnTaskRunnerThread(
317 scoped_ptr<fileapi::FileSystemOperationContext> context, 312 scoped_ptr<fileapi::FileSystemOperationContext> context,
318 const fileapi::FileSystemURL& url, 313 const fileapi::FileSystemURL& url,
319 bool exclusive, 314 bool exclusive,
320 bool recursive, 315 bool recursive,
321 const StatusCallback& callback) { 316 const StatusCallback& callback) {
322 DCHECK(IsOnTaskRunnerThread(context.get())); 317 DCHECK(IsOnTaskRunnerThread(context.get()));
323 base::PlatformFileError error = 318 base::PlatformFileError error =
324 CreateDirectorySync(context.get(), url, exclusive, recursive); 319 CreateDirectorySync(context.get(), url, exclusive, recursive);
325 if (callback.is_null())
326 return;
327 content::BrowserThread::PostTask( 320 content::BrowserThread::PostTask(
328 content::BrowserThread::IO, 321 content::BrowserThread::IO,
329 FROM_HERE, 322 FROM_HERE,
330 base::Bind(callback, error)); 323 base::Bind(callback, error));
331 } 324 }
332 325
333 void NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread( 326 void NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread(
334 scoped_ptr<fileapi::FileSystemOperationContext> context, 327 scoped_ptr<fileapi::FileSystemOperationContext> context,
335 const fileapi::FileSystemURL& url, 328 const fileapi::FileSystemURL& url,
336 const GetFileInfoCallback& callback) { 329 const GetFileInfoCallback& callback) {
337 DCHECK(IsOnTaskRunnerThread(context.get())); 330 DCHECK(IsOnTaskRunnerThread(context.get()));
338 base::PlatformFileInfo file_info; 331 base::PlatformFileInfo file_info;
339 // TODO(thestig): remove this. 332 // TODO(thestig): remove this.
340 base::FilePath platform_path; 333 base::FilePath platform_path;
341 base::PlatformFileError error = 334 base::PlatformFileError error =
342 GetFileInfoSync(context.get(), url, &file_info, &platform_path); 335 GetFileInfoSync(context.get(), url, &file_info, &platform_path);
343 if (callback.is_null())
344 return;
345 content::BrowserThread::PostTask( 336 content::BrowserThread::PostTask(
346 content::BrowserThread::IO, 337 content::BrowserThread::IO,
347 FROM_HERE, 338 FROM_HERE,
348 base::Bind(callback, error, file_info)); 339 base::Bind(callback, error, file_info));
349 } 340 }
350 341
351 void NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread( 342 void NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread(
352 scoped_ptr<fileapi::FileSystemOperationContext> context, 343 scoped_ptr<fileapi::FileSystemOperationContext> context,
353 const fileapi::FileSystemURL& url, 344 const fileapi::FileSystemURL& url,
354 const ReadDirectoryCallback& callback) { 345 const ReadDirectoryCallback& callback) {
355 DCHECK(IsOnTaskRunnerThread(context.get())); 346 DCHECK(IsOnTaskRunnerThread(context.get()));
356 EntryList entry_list; 347 EntryList entry_list;
357 base::PlatformFileError error = 348 base::PlatformFileError error =
358 ReadDirectorySync(context.get(), url, &entry_list); 349 ReadDirectorySync(context.get(), url, &entry_list);
359 if (callback.is_null())
360 return;
361 content::BrowserThread::PostTask( 350 content::BrowserThread::PostTask(
362 content::BrowserThread::IO, 351 content::BrowserThread::IO,
363 FROM_HERE, 352 FROM_HERE,
364 base::Bind(callback, error, entry_list, false /* has_more */)); 353 base::Bind(callback, error, entry_list, false /* has_more */));
365 } 354 }
366 355
367 void NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread( 356 void NativeMediaFileUtil::CopyOrMoveFileLocalOnTaskRunnerThread(
368 scoped_ptr<fileapi::FileSystemOperationContext> context, 357 scoped_ptr<fileapi::FileSystemOperationContext> context,
369 const fileapi::FileSystemURL& src_url, 358 const fileapi::FileSystemURL& src_url,
370 const fileapi::FileSystemURL& dest_url, 359 const fileapi::FileSystemURL& dest_url,
371 bool copy, 360 bool copy,
372 const StatusCallback& callback) { 361 const StatusCallback& callback) {
373 DCHECK(IsOnTaskRunnerThread(context.get())); 362 DCHECK(IsOnTaskRunnerThread(context.get()));
374 base::PlatformFileError error = 363 base::PlatformFileError error =
375 CopyOrMoveFileSync(context.get(), src_url, dest_url, copy); 364 CopyOrMoveFileSync(context.get(), src_url, dest_url, copy);
376 if (callback.is_null())
377 return;
378 content::BrowserThread::PostTask( 365 content::BrowserThread::PostTask(
379 content::BrowserThread::IO, 366 content::BrowserThread::IO,
380 FROM_HERE, 367 FROM_HERE,
381 base::Bind(callback, error)); 368 base::Bind(callback, error));
382 } 369 }
383 370
384 void NativeMediaFileUtil::CopyInForeignFileOnTaskRunnerThread( 371 void NativeMediaFileUtil::CopyInForeignFileOnTaskRunnerThread(
385 scoped_ptr<fileapi::FileSystemOperationContext> context, 372 scoped_ptr<fileapi::FileSystemOperationContext> context,
386 const base::FilePath& src_file_path, 373 const base::FilePath& src_file_path,
387 const fileapi::FileSystemURL& dest_url, 374 const fileapi::FileSystemURL& dest_url,
388 const StatusCallback& callback) { 375 const StatusCallback& callback) {
389 DCHECK(IsOnTaskRunnerThread(context.get())); 376 DCHECK(IsOnTaskRunnerThread(context.get()));
390 base::PlatformFileError error = 377 base::PlatformFileError error =
391 CopyInForeignFileSync(context.get(), src_file_path, dest_url); 378 CopyInForeignFileSync(context.get(), src_file_path, dest_url);
392 if (callback.is_null())
393 return;
394 content::BrowserThread::PostTask( 379 content::BrowserThread::PostTask(
395 content::BrowserThread::IO, 380 content::BrowserThread::IO,
396 FROM_HERE, 381 FROM_HERE,
397 base::Bind(callback, error)); 382 base::Bind(callback, error));
398 } 383 }
399 384
400 void NativeMediaFileUtil::DeleteDirectoryOnTaskRunnerThread( 385 void NativeMediaFileUtil::DeleteDirectoryOnTaskRunnerThread(
401 scoped_ptr<fileapi::FileSystemOperationContext> context, 386 scoped_ptr<fileapi::FileSystemOperationContext> context,
402 const fileapi::FileSystemURL& url, 387 const fileapi::FileSystemURL& url,
403 const StatusCallback& callback) { 388 const StatusCallback& callback) {
404 DCHECK(IsOnTaskRunnerThread(context.get())); 389 DCHECK(IsOnTaskRunnerThread(context.get()));
405 base::PlatformFileError error = DeleteDirectorySync(context.get(), url); 390 base::PlatformFileError error = DeleteDirectorySync(context.get(), url);
406 if (callback.is_null())
407 return;
408 content::BrowserThread::PostTask( 391 content::BrowserThread::PostTask(
409 content::BrowserThread::IO, 392 content::BrowserThread::IO,
410 FROM_HERE, 393 FROM_HERE,
411 base::Bind(callback, error)); 394 base::Bind(callback, error));
412 } 395 }
413 396
414 void NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread( 397 void NativeMediaFileUtil::CreateSnapshotFileOnTaskRunnerThread(
415 scoped_ptr<fileapi::FileSystemOperationContext> context, 398 scoped_ptr<fileapi::FileSystemOperationContext> context,
416 const fileapi::FileSystemURL& url, 399 const fileapi::FileSystemURL& url,
417 const CreateSnapshotFileCallback& callback) { 400 const CreateSnapshotFileCallback& callback) {
418 DCHECK(IsOnTaskRunnerThread(context.get())); 401 DCHECK(IsOnTaskRunnerThread(context.get()));
419 base::PlatformFileInfo file_info; 402 base::PlatformFileInfo file_info;
420 base::FilePath platform_path; 403 base::FilePath platform_path;
421 scoped_refptr<webkit_blob::ShareableFileReference> file_ref; 404 scoped_refptr<webkit_blob::ShareableFileReference> file_ref;
422 base::PlatformFileError error = 405 base::PlatformFileError error =
423 CreateSnapshotFileSync(context.get(), url, &file_info, &platform_path, 406 CreateSnapshotFileSync(context.get(), url, &file_info, &platform_path,
424 &file_ref); 407 &file_ref);
425 if (callback.is_null())
426 return;
427 content::BrowserThread::PostTask( 408 content::BrowserThread::PostTask(
428 content::BrowserThread::IO, 409 content::BrowserThread::IO,
429 FROM_HERE, 410 FROM_HERE,
430 base::Bind(callback, error, file_info, platform_path, file_ref)); 411 base::Bind(callback, error, file_info, platform_path, file_ref));
431 } 412 }
432 413
433 base::PlatformFileError NativeMediaFileUtil::CreateDirectorySync( 414 base::PlatformFileError NativeMediaFileUtil::CreateDirectorySync(
434 fileapi::FileSystemOperationContext* context, 415 fileapi::FileSystemOperationContext* context,
435 const fileapi::FileSystemURL& url, 416 const fileapi::FileSystemURL& url,
436 bool exclusive, 417 bool exclusive,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 if (!file_info.is_directory && 638 if (!file_info.is_directory &&
658 !GetMediaPathFilter(context)->Match(file_path)) { 639 !GetMediaPathFilter(context)->Match(file_path)) {
659 return failure_error; 640 return failure_error;
660 } 641 }
661 642
662 *local_file_path = file_path; 643 *local_file_path = file_path;
663 return base::PLATFORM_FILE_OK; 644 return base::PLATFORM_FILE_OK;
664 } 645 }
665 646
666 } // namespace chrome 647 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698