item.storageType = Item::StorageTypeBinaryData;
item.binaryData = originalItem->sharedBuffer();
} else if (originalItem->isFilename()) {
- RefPtrWillBeRawPtr<Blob> blob = originalItem->getAsFile();
+ Blob* blob = originalItem->getAsFile();
if (blob->isFile()) {
- File* file = toFile(blob.get());
+ File* file = toFile(blob);
if (file->hasBackingFile()) {
- if (file->userVisibility() == File::IsUserVisible) {
- item.storageType = Item::StorageTypeFilename;
- item.filenameData = file->path();
- item.displayNameData = file->name();
- } else {
- item.storageType = Item::StorageTypeFileSystemFile;
- item.fileSystemURL = file->fileSystemURL();
- item.fileSystemFileSize = file->size();
- }
+ item.storageType = Item::StorageTypeFilename;
+ item.filenameData = file->path();
+ item.displayNameData = file->name();
+ } else if (!file->fileSystemURL().isEmpty()) {
+ item.storageType = Item::StorageTypeFileSystemFile;
+ item.fileSystemURL = file->fileSystemURL();
+ item.fileSystemFileSize = file->size();
} else {
// FIXME: support dragging constructed Files across renderers, see http://crbug.com/394955
item.storageType = Item::StorageTypeString;
return;
case Item::StorageTypeFileSystemFile:
{
+ // FIXME: The file system URL may refer a user visible file, see http://crbug.com/429077
FileMetadata fileMetadata;
fileMetadata.length = item.fileSystemFileSize;
- m_private->add(File::createForFileSystemFile(item.fileSystemURL, fileMetadata));
+ m_private->add(File::createForFileSystemFile(item.fileSystemURL, fileMetadata, File::IsNotUserVisible));
}
return;
}