Index: Source/web/WebFileChooserCompletionImpl.cpp |
diff --git a/Source/web/WebFileChooserCompletionImpl.cpp b/Source/web/WebFileChooserCompletionImpl.cpp |
index 0791fb08cb1feb5541904464c54bd6350174914f..3a1f4b3743133a522f5bd50315ba949eb2a4ebc3 100644 |
--- a/Source/web/WebFileChooserCompletionImpl.cpp |
+++ b/Source/web/WebFileChooserCompletionImpl.cpp |
@@ -30,6 +30,7 @@ |
#include "config.h" |
#include "web/WebFileChooserCompletionImpl.h" |
+#include "platform/FileMetadata.h" |
namespace blink { |
@@ -55,8 +56,17 @@ void WebFileChooserCompletionImpl::didChooseFile(const WebVector<WebString>& fil |
void WebFileChooserCompletionImpl::didChooseFile(const WebVector<SelectedFileInfo>& files) |
{ |
Vector<FileChooserFileInfo> fileInfo; |
- for (size_t i = 0; i < files.size(); ++i) |
- fileInfo.append(FileChooserFileInfo(files[i].path, files[i].displayName)); |
+ for (size_t i = 0; i < files.size(); ++i) { |
+ if (files[i].fileSystemURL.isEmpty()) { |
+ fileInfo.append(FileChooserFileInfo(files[i].path, files[i].displayName)); |
+ } else { |
+ FileMetadata metadata; |
+ metadata.modificationTime = files[i].modificationTime; |
+ metadata.length = files[i].length; |
+ metadata.type = files[i].isDirectory ? FileMetadata::TypeDirectory : FileMetadata::TypeFile; |
+ fileInfo.append(FileChooserFileInfo(files[i].fileSystemURL, metadata)); |
+ } |
+ } |
m_fileChooser->chooseFiles(fileInfo); |
// This object is no longer needed. |
delete this; |