| Index: chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc | 
| diff --git a/chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc b/chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc | 
| index 9ca5faa5666629aab1716916516a56d8da987518..18f3018cfc29eab86ee1e56364411c36c02b439b 100644 | 
| --- a/chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc | 
| +++ b/chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc | 
| @@ -64,9 +64,10 @@ DeviceMediaAsyncFileUtil::~DeviceMediaAsyncFileUtil() { | 
|  | 
| // static | 
| DeviceMediaAsyncFileUtil* DeviceMediaAsyncFileUtil::Create( | 
| -    const base::FilePath& profile_path) { | 
| +    const base::FilePath& profile_path, | 
| +    MediaFileValidationType validation_type) { | 
| DCHECK(!profile_path.empty()); | 
| -  return new DeviceMediaAsyncFileUtil(profile_path); | 
| +  return new DeviceMediaAsyncFileUtil(profile_path, validation_type); | 
| } | 
|  | 
| bool DeviceMediaAsyncFileUtil::SupportsStreaming( | 
| @@ -283,12 +284,15 @@ DeviceMediaAsyncFileUtil::GetFileStreamReader( | 
| DCHECK(delegate->IsStreaming()); | 
| return scoped_ptr<webkit_blob::FileStreamReader>( | 
| new ReadaheadFileStreamReader(new MTPFileStreamReader( | 
| -          context, url, offset, expected_modification_time))); | 
| +          context, url, offset, expected_modification_time, | 
| +          validation_type_ == APPLY_MEDIA_FILE_VALIDATION))); | 
| } | 
|  | 
| DeviceMediaAsyncFileUtil::DeviceMediaAsyncFileUtil( | 
| -    const base::FilePath& profile_path) | 
| +    const base::FilePath& profile_path, | 
| +    MediaFileValidationType validation_type) | 
| : profile_path_(profile_path), | 
| +      validation_type_(validation_type), | 
| weak_ptr_factory_(this) { | 
| } | 
|  | 
| @@ -322,18 +326,25 @@ void DeviceMediaAsyncFileUtil::OnDidCreateSnapshotFile( | 
| base::SequencedTaskRunner* media_task_runner, | 
| const base::File::Info& file_info, | 
| const base::FilePath& platform_path) { | 
| -  base::PostTaskAndReplyWithResult( | 
| -      media_task_runner, | 
| -      FROM_HERE, | 
| -      base::Bind(&NativeMediaFileUtil::IsMediaFile, platform_path), | 
| -      base::Bind(&DeviceMediaAsyncFileUtil::OnDidCheckMedia, | 
| -                 weak_ptr_factory_.GetWeakPtr(), | 
| -                 callback, | 
| -                 file_info, | 
| -                 ShareableFileReference::GetOrCreate( | 
| -                     platform_path, | 
| -                     ShareableFileReference::DELETE_ON_FINAL_RELEASE, | 
| -                     media_task_runner))); | 
| +  scoped_refptr<webkit_blob::ShareableFileReference> file = | 
| +      ShareableFileReference::GetOrCreate( | 
| +                             platform_path, | 
| +                             ShareableFileReference::DELETE_ON_FINAL_RELEASE, | 
| +                             media_task_runner); | 
| + | 
| +  if (validation_type_ == APPLY_MEDIA_FILE_VALIDATION) { | 
| +    base::PostTaskAndReplyWithResult( | 
| +        media_task_runner, | 
| +        FROM_HERE, | 
| +        base::Bind(&NativeMediaFileUtil::IsMediaFile, platform_path), | 
| +        base::Bind(&DeviceMediaAsyncFileUtil::OnDidCheckMedia, | 
| +                   weak_ptr_factory_.GetWeakPtr(), | 
| +                   callback, | 
| +                   file_info, | 
| +                   file)); | 
| +  } else { | 
| +    OnDidCheckMedia(callback, file_info, file, base::File::FILE_OK); | 
| +  } | 
| } | 
|  | 
| void DeviceMediaAsyncFileUtil::OnDidCheckMedia( | 
|  |