Index: webkit/fileapi/test_mount_point_provider.cc |
diff --git a/webkit/fileapi/test_mount_point_provider.cc b/webkit/fileapi/test_mount_point_provider.cc |
index c44ff598a1d0c3426acfd7bee88bc746aec16ee3..1dcb169d5363450721b3890d91d371169c2436a8 100644 |
--- a/webkit/fileapi/test_mount_point_provider.cc |
+++ b/webkit/fileapi/test_mount_point_provider.cc |
@@ -72,7 +72,8 @@ TestMountPointProvider::TestMountPointProvider( |
: base_path_(base_path), |
task_runner_(task_runner), |
local_file_util_(new AsyncFileUtilAdapter(new LocalFileUtil())), |
- quota_util_(new QuotaUtil) { |
+ quota_util_(new QuotaUtil), |
+ require_copy_or_move_validator_(false) { |
UpdateObserverList::Source source; |
source.AddObserver(quota_util_.get(), task_runner_); |
observers_ = UpdateObserverList(source); |
@@ -121,12 +122,22 @@ TestMountPointProvider::GetCopyOrMoveFileValidatorFactory( |
FileSystemType type, base::PlatformFileError* error_code) { |
DCHECK(error_code); |
*error_code = base::PLATFORM_FILE_OK; |
+ if (require_copy_or_move_validator_) { |
+ if (!copy_or_move_file_validator_factory_) |
+ *error_code = base::PLATFORM_FILE_ERROR_SECURITY; |
+ return copy_or_move_file_validator_factory_.get(); |
+ } |
return NULL; |
} |
void TestMountPointProvider::InitializeCopyOrMoveFileValidatorFactory( |
FileSystemType type, scoped_ptr<CopyOrMoveFileValidatorFactory> factory) { |
- DCHECK(!factory); |
+ if (!require_copy_or_move_validator_) { |
+ DCHECK(!factory); |
+ return; |
+ } |
+ if (!copy_or_move_file_validator_factory_) |
+ copy_or_move_file_validator_factory_ = factory.Pass(); |
} |
FilePermissionPolicy TestMountPointProvider::GetPermissionPolicy( |