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

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

Issue 251723004: No media-file validation mode for DeviceMediaAsyncUtil. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed review #2 Created 6 years, 8 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/device_media_async_file_util.h" 5 #include "chrome/browser/media_galleries/fileapi/device_media_async_file_util.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/task_runner_util.h" 10 #include "base/task_runner_util.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 return snapshot_file_path; 57 return snapshot_file_path;
58 } 58 }
59 59
60 } // namespace 60 } // namespace
61 61
62 DeviceMediaAsyncFileUtil::~DeviceMediaAsyncFileUtil() { 62 DeviceMediaAsyncFileUtil::~DeviceMediaAsyncFileUtil() {
63 } 63 }
64 64
65 // static 65 // static
66 DeviceMediaAsyncFileUtil* DeviceMediaAsyncFileUtil::Create( 66 DeviceMediaAsyncFileUtil* DeviceMediaAsyncFileUtil::Create(
67 const base::FilePath& profile_path) { 67 const base::FilePath& profile_path,
68 MediaFileValidationType validation_type) {
68 DCHECK(!profile_path.empty()); 69 DCHECK(!profile_path.empty());
69 return new DeviceMediaAsyncFileUtil(profile_path); 70 return new DeviceMediaAsyncFileUtil(profile_path, validation_type);
70 } 71 }
71 72
72 bool DeviceMediaAsyncFileUtil::SupportsStreaming( 73 bool DeviceMediaAsyncFileUtil::SupportsStreaming(
73 const fileapi::FileSystemURL& url) { 74 const fileapi::FileSystemURL& url) {
74 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 75 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
75 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); 76 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url);
76 if (!delegate) 77 if (!delegate)
77 return false; 78 return false;
78 return delegate->IsStreaming(); 79 return delegate->IsStreaming();
79 } 80 }
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 int64 offset, 277 int64 offset,
277 const base::Time& expected_modification_time, 278 const base::Time& expected_modification_time,
278 fileapi::FileSystemContext* context) { 279 fileapi::FileSystemContext* context) {
279 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url); 280 MTPDeviceAsyncDelegate* delegate = GetMTPDeviceDelegate(url);
280 if (!delegate) 281 if (!delegate)
281 return scoped_ptr<webkit_blob::FileStreamReader>(); 282 return scoped_ptr<webkit_blob::FileStreamReader>();
282 283
283 DCHECK(delegate->IsStreaming()); 284 DCHECK(delegate->IsStreaming());
284 return scoped_ptr<webkit_blob::FileStreamReader>( 285 return scoped_ptr<webkit_blob::FileStreamReader>(
285 new ReadaheadFileStreamReader(new MTPFileStreamReader( 286 new ReadaheadFileStreamReader(new MTPFileStreamReader(
286 context, url, offset, expected_modification_time))); 287 context, url, offset, expected_modification_time,
288 validation_type_ == APPLY_MEDIA_FILE_VALIDATION)));
287 } 289 }
288 290
289 DeviceMediaAsyncFileUtil::DeviceMediaAsyncFileUtil( 291 DeviceMediaAsyncFileUtil::DeviceMediaAsyncFileUtil(
290 const base::FilePath& profile_path) 292 const base::FilePath& profile_path,
293 MediaFileValidationType validation_type)
291 : profile_path_(profile_path), 294 : profile_path_(profile_path),
295 validation_type_(validation_type),
292 weak_ptr_factory_(this) { 296 weak_ptr_factory_(this) {
293 } 297 }
294 298
295 void DeviceMediaAsyncFileUtil::OnDidGetFileInfo( 299 void DeviceMediaAsyncFileUtil::OnDidGetFileInfo(
296 const AsyncFileUtil::GetFileInfoCallback& callback, 300 const AsyncFileUtil::GetFileInfoCallback& callback,
297 const base::File::Info& file_info) { 301 const base::File::Info& file_info) {
298 callback.Run(base::File::FILE_OK, file_info); 302 callback.Run(base::File::FILE_OK, file_info);
299 } 303 }
300 304
301 void DeviceMediaAsyncFileUtil::OnGetFileInfoError( 305 void DeviceMediaAsyncFileUtil::OnGetFileInfoError(
(...skipping 13 matching lines...) Expand all
315 const AsyncFileUtil::ReadDirectoryCallback& callback, 319 const AsyncFileUtil::ReadDirectoryCallback& callback,
316 base::File::Error error) { 320 base::File::Error error) {
317 callback.Run(error, AsyncFileUtil::EntryList(), false /*no more*/); 321 callback.Run(error, AsyncFileUtil::EntryList(), false /*no more*/);
318 } 322 }
319 323
320 void DeviceMediaAsyncFileUtil::OnDidCreateSnapshotFile( 324 void DeviceMediaAsyncFileUtil::OnDidCreateSnapshotFile(
321 const AsyncFileUtil::CreateSnapshotFileCallback& callback, 325 const AsyncFileUtil::CreateSnapshotFileCallback& callback,
322 base::SequencedTaskRunner* media_task_runner, 326 base::SequencedTaskRunner* media_task_runner,
323 const base::File::Info& file_info, 327 const base::File::Info& file_info,
324 const base::FilePath& platform_path) { 328 const base::FilePath& platform_path) {
325 base::PostTaskAndReplyWithResult( 329 scoped_refptr<webkit_blob::ShareableFileReference> file =
326 media_task_runner, 330 ShareableFileReference::GetOrCreate(
327 FROM_HERE, 331 platform_path,
328 base::Bind(&NativeMediaFileUtil::IsMediaFile, platform_path), 332 ShareableFileReference::DELETE_ON_FINAL_RELEASE,
329 base::Bind(&DeviceMediaAsyncFileUtil::OnDidCheckMedia, 333 media_task_runner);
330 weak_ptr_factory_.GetWeakPtr(), 334
331 callback, 335 if (validation_type_ == APPLY_MEDIA_FILE_VALIDATION) {
332 file_info, 336 base::PostTaskAndReplyWithResult(
333 ShareableFileReference::GetOrCreate( 337 media_task_runner,
334 platform_path, 338 FROM_HERE,
335 ShareableFileReference::DELETE_ON_FINAL_RELEASE, 339 base::Bind(&NativeMediaFileUtil::IsMediaFile, platform_path),
336 media_task_runner))); 340 base::Bind(&DeviceMediaAsyncFileUtil::OnDidCheckMedia,
341 weak_ptr_factory_.GetWeakPtr(),
342 callback,
343 file_info,
344 file));
345 } else {
346 OnDidCheckMedia(callback, file_info, file, base::File::FILE_OK);
347 }
337 } 348 }
338 349
339 void DeviceMediaAsyncFileUtil::OnDidCheckMedia( 350 void DeviceMediaAsyncFileUtil::OnDidCheckMedia(
340 const AsyncFileUtil::CreateSnapshotFileCallback& callback, 351 const AsyncFileUtil::CreateSnapshotFileCallback& callback,
341 const base::File::Info& file_info, 352 const base::File::Info& file_info,
342 scoped_refptr<webkit_blob::ShareableFileReference> platform_file, 353 scoped_refptr<webkit_blob::ShareableFileReference> platform_file,
343 base::File::Error error) { 354 base::File::Error error) {
344 base::FilePath platform_path(platform_file.get()->path()); 355 base::FilePath platform_path(platform_file.get()->path());
345 if (error != base::File::FILE_OK) 356 if (error != base::File::FILE_OK)
346 platform_file = NULL; 357 platform_file = NULL;
(...skipping 26 matching lines...) Expand all
373 url.path(), // device file path 384 url.path(), // device file path
374 snapshot_file_path, 385 snapshot_file_path,
375 base::Bind(&DeviceMediaAsyncFileUtil::OnDidCreateSnapshotFile, 386 base::Bind(&DeviceMediaAsyncFileUtil::OnDidCreateSnapshotFile,
376 weak_ptr_factory_.GetWeakPtr(), 387 weak_ptr_factory_.GetWeakPtr(),
377 callback, 388 callback,
378 make_scoped_refptr(context->task_runner())), 389 make_scoped_refptr(context->task_runner())),
379 base::Bind(&DeviceMediaAsyncFileUtil::OnCreateSnapshotFileError, 390 base::Bind(&DeviceMediaAsyncFileUtil::OnCreateSnapshotFileError,
380 weak_ptr_factory_.GetWeakPtr(), 391 weak_ptr_factory_.GetWeakPtr(),
381 callback)); 392 callback));
382 } 393 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698