void GetFileOrDirectoryTask::SetSuccessRequestResult(const FileSystemResponseValue& aValue) { MOZ_ASSERT(NS_IsMainThread(), "Only call on main thread!"); switch (aValue.type()) { case FileSystemResponseValue::TFileSystemFileResponse: { FileSystemFileResponse r = aValue; BlobChild* actor = static_cast<BlobChild*>(r.blobChild()); nsCOMPtr<nsIDOMBlob> blob = actor->GetBlob(); mTargetFile = do_QueryInterface(blob); mIsDirectory = false; break; } case FileSystemResponseValue::TFileSystemDirectoryResponse: { FileSystemDirectoryResponse r = aValue; mTargetRealPath = r.realPath(); mIsDirectory = true; break; } default: { NS_RUNTIMEABORT("not reached"); break; } } }
void GetFileOrDirectoryTaskChild::SetSuccessRequestResult(const FileSystemResponseValue& aValue, ErrorResult& aRv) { MOZ_ASSERT(NS_IsMainThread(), "Only call on main thread!"); switch (aValue.type()) { case FileSystemResponseValue::TFileSystemFileResponse: { FileSystemFileResponse r = aValue; aRv = NS_NewLocalFile(r.realPath(), true, getter_AddRefs(mTargetPath)); if (NS_WARN_IF(aRv.Failed())) { return; } mIsDirectory = false; break; } case FileSystemResponseValue::TFileSystemDirectoryResponse: { FileSystemDirectoryResponse r = aValue; aRv = NS_NewLocalFile(r.realPath(), true, getter_AddRefs(mTargetPath)); if (NS_WARN_IF(aRv.Failed())) { return; } mIsDirectory = true; break; } default: { MOZ_CRASH("not reached"); break; } } }
void GetFileOrDirectoryTaskChild::SetSuccessRequestResult(const FileSystemResponseValue& aValue, ErrorResult& aRv) { MOZ_ASSERT(NS_IsMainThread(), "Only call on main thread!"); switch (aValue.type()) { case FileSystemResponseValue::TFileSystemFileResponse: { FileSystemFileResponse r = aValue; RefPtr<BlobImpl> blobImpl = static_cast<BlobChild*>(r.blobChild())->GetBlobImpl(); MOZ_ASSERT(blobImpl); mResultFile = File::Create(mFileSystem->GetParentObject(), blobImpl); MOZ_ASSERT(mResultFile); break; } case FileSystemResponseValue::TFileSystemDirectoryResponse: { FileSystemDirectoryResponse r = aValue; nsCOMPtr<nsIFile> file; aRv = NS_NewLocalFile(r.realPath(), true, getter_AddRefs(file)); if (NS_WARN_IF(aRv.Failed())) { return; } mResultDirectory = Directory::Create(mFileSystem->GetParentObject(), file, mFileSystem); MOZ_ASSERT(mResultDirectory); break; } default: { MOZ_CRASH("not reached"); break; } } }