Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / WebDragData.cpp
index 62b295f..e2005f5 100644 (file)
@@ -96,19 +96,17 @@ WebVector<WebDragData::Item> WebDragData::items() const
                 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;
@@ -159,9 +157,10 @@ void WebDragData::addItem(const Item& item)
         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;
     }