Chromium Code Reviews| Index: Source/web/WebDragData.cpp |
| diff --git a/Source/web/WebDragData.cpp b/Source/web/WebDragData.cpp |
| index 899d0a51dcc913b2aaa676070e7e3ddae0db016a..835b1eff576301c4ff96542b5d1231f26297b89d 100644 |
| --- a/Source/web/WebDragData.cpp |
| +++ b/Source/web/WebDragData.cpp |
| @@ -101,23 +101,31 @@ WebVector<WebDragData::Item> WebDragData::items() const |
| RefPtrWillBeRawPtr<WebCore::Blob> blob = originalItem->getAsFile(); |
| if (blob->isFile()) { |
| File* file = toFile(blob.get()); |
| - if (!file->path().isEmpty()) { |
| - 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(); |
| + 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(); |
| + } |
| } else { |
| - ASSERT_NOT_REACHED(); |
| + // FIXME: support dragging constructed Files across renderers, see http://crbug.com/394955 |
|
tkent
2014/07/23 01:19:59
nit: recommend to wrap code comments in 80 columns
|
| + item.storageType = Item::StorageTypeString; |
| + item.stringType = "text/plain"; |
| + item.stringData = file->name(); |
| } |
| - } else |
| + } else { |
| ASSERT_NOT_REACHED(); |
| - } else |
| + } |
| + } else { |
| ASSERT_NOT_REACHED(); |
| - } else |
| + } |
| + } else { |
| ASSERT_NOT_REACHED(); |
| + } |
| item.title = originalItem->title(); |
| item.baseURL = originalItem->baseURL(); |
| itemList.append(item); |